[asterisk-bugs] [JIRA] (ASTERISK-25289) Build System does not respect CFLAGS and CXXFLAGS when building menuselect

abelbeck (JIRA) noreply at issues.asterisk.org
Tue Sep 6 16:17:01 CDT 2016


    [ https://issues.asterisk.org/jira/browse/ASTERISK-25289?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=232170#comment-232170 ] 

abelbeck commented on ASTERISK-25289:
-------------------------------------

ASTERISK-26342 is created to continue this discussion.

Alexander, in my testing AST_NATIVE_ARCH= (undefined) and AST_NATIVE_ARCH=0 appear to work the same wrt the menuselect command, except AST_NATIVE_ARCH=0 does not generate errors as AST_NATIVE_ARCH= does.

We make and call menuselect after ./configure is run, we have to patch configure.ac to keep menuselect from being called by ./configure and our asterisk.mk makes it work.  All needed because we cross-compile.

We call menuselect multiple times mostly because we support Asterisk 1.8, 11 and 13 all in one asterisk.mk and we enable or disable features per the Asterisk version and which external packages being enabled.


> Build System does not respect CFLAGS and CXXFLAGS when building menuselect
> --------------------------------------------------------------------------
>
>                 Key: ASTERISK-25289
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-25289
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Core/BuildSystem
>    Affects Versions: 11.22.0, 13.9.1
>         Environment: Fedora 22, x86_64; but any distro with a compiler with sanitizers will do (excpet maybe Clang, since it reject's the use of trampolines that Asterisk uses).
>            Reporter: Jeffrey Walton
>            Assignee: Alexander Traud
>      Target Release: 13.11.0, 14.0.0
>
>         Attachments: cflag_alternative_A.patch, cflag_alternative_B.patch, config.log
>
>
> GCC added sanitizers at 4.8. I'm attempting to build Asterisk with the UBsan (undefined behavior) and Asan (address) sanitizers enabled. UBsan is enabled with `-fsanitize=undefined`, and Asan is enabled with `-fsanitize=address`. (UBasan and Asan are mutually exclusive, so we repeat the steps below twice).
> localhost asterisk-13.4.0]$ export CFLAGS=-fsanitize=undefined
> localhost asterisk-13.4.0]$ export CXXFLAGS=-fsanitize=undefined
> localhost asterisk-13.4.0]$ ./configure
> ...
> Looking at the config.log, it appears the CFLAGS and CXXFLAGS were tested and accepted. Then:
> configure: Package configured for: 
> configure: OS type  : linux-gnu
> configure: Host CPU : x86_64
> configure: build-cpu:vendor:os: x86_64 : unknown : linux-gnu :
> configure: host-cpu:vendor:os: x86_64 : unknown : linux-gnu :
> localhost asterisk-13.4.0]$ make
> CC="cc" CXX="g++" LD="" AR="" RANLIB="" CFLAGS="" LDFLAGS="" make -C menuselect CONFIGURE_SILENT="--silent" makeopts
> make[1]: Entering directory '/home/jwalton/Desktop/asterisk-13.4.0/menuselect'
> make[1]: 'makeopts' is up to date.
> make[1]: Leaving directory '/home/jwalton/Desktop/asterisk-13.4.0/menuselect'
> CC="cc" CXX="g++" LD="" AR="" RANLIB="" CFLAGS="" LDFLAGS="" make -C menuselect CONFIGURE_SILENT="--silent" menuselect
> make[1]: Entering directory '/home/jwalton/Desktop/asterisk-13.4.0/menuselect'
> gcc  -g -D_GNU_SOURCE -Wall -I/usr/include/libxml2   -c -o menuselect.o menuselect.c
> gcc  -g -D_GNU_SOURCE -Wall   -c -o strcompat.o strcompat.c
> gcc  -g -D_GNU_SOURCE -Wall   -c -o menuselect_stub.o menuselect_stub.c
> gcc  -o menuselect menuselect.o strcompat.o menuselect_stub.o -lxml2 -lz -lm -ldl
> make[1]: Leaving directory '/home/jwalton/Desktop/asterisk-13.4.0/menuselect'
> Generating input for menuselect ...
> menuselect/menuselect --check-deps menuselect.makeopts
> Unknown value '' found in build_tools/menuselect-deps for NATIVE_ARCH
> ***********************************************************
>   The existing menuselect.makeopts file did not specify    
>   that 'BUILD_NATIVE' should not be included.  However, either some  
>   dependencies for this module were not found or a         
>   conflict exists.                                         
>                                                            
>   Either run 'make menuselect' or remove the existing      
>   menuselect.makeopts file to resolve this issue.          
> ***********************************************************
> Makefile:344: recipe for target 'menuselect.makeopts' failed
> make: *** [menuselect.makeopts] Error 255



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list