@@ -372,7 +372,9 @@ case $host in
372372esac
373373
374374if test "x$enable_debug" = xyes; then
375- dnl Clear default -g -O2 flags
375+ dnl If debugging is enabled, and the user hasn't overriden CXXFLAGS, clear
376+ dnl them, to prevent autoconfs "-g -O2" being added. Otherwise we'd end up
377+ dnl with "-O0 -g3 -g -O2".
376378 if test "x$CXXFLAGS_overridden" = xno; then
377379 CXXFLAGS=""
378380 fi
@@ -532,7 +534,7 @@ if test "x$CXXFLAGS_overridden" = "xno"; then
532534fi
533535
534536dnl Don't allow extended (non-ASCII) symbols in identifiers. This is easier for code review.
535- AX_CHECK_COMPILE_FLAG ( [ -fno-extended-identifiers] ,[ [ CXXFLAGS ="$CXXFLAGS -fno-extended-identifiers"] ] ,,[ [ $CXXFLAG_WERROR] ] )
537+ AX_CHECK_COMPILE_FLAG ( [ -fno-extended-identifiers] ,[ [ CORE_CXXFLAGS ="$CORE_CXXFLAGS -fno-extended-identifiers"] ] ,,[ [ $CXXFLAG_WERROR] ] )
536538
537539enable_arm_crc=no
538540enable_arm_shani=no
@@ -683,7 +685,7 @@ CXXFLAGS="$TEMP_CXXFLAGS"
683685
684686fi
685687
686- CPPFLAGS ="$CPPFLAGS -DHAVE_BUILD_INFO -DGSL_NO_IOSTREAMS"
688+ CORE_CPPFLAGS ="$CORE_CPPFLAGS -DHAVE_BUILD_INFO -DGSL_NO_IOSTREAMS"
687689
688690AC_ARG_WITH ( [ utils] ,
689691 [ AS_HELP_STRING ( [ --with-utils] ,
@@ -755,7 +757,7 @@ case $host in
755757 AC_MSG_ERROR ( "windres not found" )
756758 fi
757759
758- CPPFLAGS ="$CPPFLAGS -D_MT -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0601 -D_WIN32_IE=0x0501 -DWIN32_LEAN_AND_MEAN"
760+ CORE_CPPFLAGS ="$CORE_CPPFLAGS -D_MT -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0601 -D_WIN32_IE=0x0501 -DWIN32_LEAN_AND_MEAN"
759761
760762 dnl libtool insists upon adding -nostdlib and a list of objects/libs to link against.
761763 dnl That breaks our ability to build dll's with static libgcc/libstdc++/libssp. Override
@@ -766,14 +768,14 @@ case $host in
766768 postdeps_CXX=
767769
768770 dnl We require Windows 7 (NT 6.1) or later
769- AX_CHECK_LINK_FLAG ( [ [ -Wl,--major-subsystem-version -Wl,6 -Wl,--minor-subsystem-version -Wl,1] ] ,[ LDFLAGS ="$LDFLAGS -Wl,--major-subsystem-version -Wl,6 -Wl,--minor-subsystem-version -Wl,1"] ,,[ [ $LDFLAG_WERROR] ] )
771+ AX_CHECK_LINK_FLAG ( [ [ -Wl,--major-subsystem-version -Wl,6 -Wl,--minor-subsystem-version -Wl,1] ] ,[ CORE_LDFLAGS ="$CORE_LDFLAGS -Wl,--major-subsystem-version -Wl,6 -Wl,--minor-subsystem-version -Wl,1"] ,,[ [ $LDFLAG_WERROR] ] )
770772 ;;
771773 *darwin*)
772774 TARGET_OS=darwin
773775 if test x$cross_compiling != xyes; then
774776 BUILD_OS=darwin
775777
776- AX_CHECK_LINK_FLAG ( [ [ -Wl,-headerpad_max_install_names] ] , [ LDFLAGS ="$LDFLAGS -Wl,-headerpad_max_install_names"] ,, [ [ $LDFLAG_WERROR] ] )
778+ AX_CHECK_LINK_FLAG ( [ [ -Wl,-headerpad_max_install_names] ] , [ CORE_LDFLAGS ="$CORE_LDFLAGS -Wl,-headerpad_max_install_names"] ,, [ [ $LDFLAG_WERROR] ] )
777779
778780 AC_CHECK_PROG ( [ BREW] ,brew , brew )
779781 if test x$BREW = xbrew; then
@@ -800,8 +802,8 @@ case $host in
800802
801803 gmp_prefix=$($BREW --prefix gmp 2>/dev/null)
802804 if test x$gmp_prefix != x; then
803- CPPFLAGS ="$CPPFLAGS -I$gmp_prefix/include"
804- LDFLAGS ="$LDFLAGS -L$gmp_prefix/lib"
805+ CORE_CPPFLAGS ="$CORE_CPPFLAGS -I$gmp_prefix/include"
806+ CORE_LDFLAGS ="$CORE_LDFLAGS -L$gmp_prefix/lib"
805807 fi
806808
807809 case $host in
@@ -813,20 +815,20 @@ case $host in
813815 if test "x$use_upnp" != xno && $BREW list --versions miniupnpc >/dev/null; then
814816 miniupnpc_prefix=$($BREW --prefix miniupnpc 2>/dev/null)
815817 if test "x$suppress_external_warnings" != xno; then
816- CPPFLAGS ="$CPPFLAGS -isystem $miniupnpc_prefix/include"
818+ CORE_CPPFLAGS ="$CORE_CPPFLAGS -isystem $miniupnpc_prefix/include"
817819 else
818- CPPFLAGS ="$CPPFLAGS -I$miniupnpc_prefix/include"
820+ CORE_CPPFLAGS ="$CORE_CPPFLAGS -I$miniupnpc_prefix/include"
819821 fi
820- LDFLAGS ="$LDFLAGS -L$miniupnpc_prefix/lib"
822+ CORE_LDFLAGS ="$CORE_LDFLAGS -L$miniupnpc_prefix/lib"
821823 fi
822824 if test "x$use_natpmp" != xno && $BREW list --versions libnatpmp >/dev/null; then
823825 libnatpmp_prefix=$($BREW --prefix libnatpmp 2>/dev/null)
824826 if test "x$suppress_external_warnings" != xno; then
825- CPPFLAGS ="$CPPFLAGS -isystem $libnatpmp_prefix/include"
827+ CORE_CPPFLAGS ="$CORE_CPPFLAGS -isystem $libnatpmp_prefix/include"
826828 else
827- CPPFLAGS ="$CPPFLAGS -I$libnatpmp_prefix/include"
829+ CORE_CPPFLAGS ="$CORE_CPPFLAGS -I$libnatpmp_prefix/include"
828830 fi
829- LDFLAGS ="$LDFLAGS -L$libnatpmp_prefix/lib"
831+ CORE_LDFLAGS ="$CORE_LDFLAGS -L$libnatpmp_prefix/lib"
830832 fi
831833 ;;
832834 esac
@@ -849,7 +851,7 @@ case $host in
849851 esac
850852 fi
851853
852- CPPFLAGS ="$CPPFLAGS -DMAC_OSX -DOBJC_OLD_DISPATCH_PROTOTYPES=0"
854+ CORE_CPPFLAGS ="$CORE_CPPFLAGS -DMAC_OSX -DOBJC_OLD_DISPATCH_PROTOTYPES=0"
853855 OBJCXXFLAGS="$CXXFLAGS"
854856 ;;
855857 *android*)
@@ -912,11 +914,17 @@ if test x$use_lcov = xyes; then
912914 AC_SUBST ( COV_TOOL_WRAPPER , "cov_tool_wrapper.sh" )
913915 LCOV="$LCOV --gcov-tool $(pwd)/$COV_TOOL_WRAPPER"
914916
915- AX_CHECK_LINK_FLAG ( [ [ --coverage] ] , [ LDFLAGS ="$LDFLAGS --coverage"] ,
917+ AX_CHECK_LINK_FLAG ( [ [ --coverage] ] , [ CORE_LDFLAGS ="$CORE_LDFLAGS --coverage"] ,
916918 [ AC_MSG_ERROR ( "lcov testing requested but -- coverage linker flag does not work" ) ] )
917- AX_CHECK_COMPILE_FLAG ( [ --coverage] ,[ CXXFLAGS ="$CXXFLAGS --coverage"] ,
919+ AX_CHECK_COMPILE_FLAG ( [ --coverage] ,[ CORE_CXXFLAGS ="$CORE_CXXFLAGS --coverage"] ,
918920 [ AC_MSG_ERROR ( "lcov testing requested but -- coverage flag does not work" ) ] )
919- CXXFLAGS="$CXXFLAGS -Og"
921+ dnl If coverage is enabled, and the user hasn't overriden CXXFLAGS, clear
922+ dnl them, to prevent autoconfs "-g -O2" being added. Otherwise we'd end up
923+ dnl with "--coverage -Og -O0 -g -O2".
924+ if test "$CXXFLAGS_overridden" = "no"; then
925+ CXXFLAGS=""
926+ fi
927+ CORE_CXXFLAGS="$CORE_CXXFLAGS -Og -O0"
920928fi
921929
922930if test x$use_lcov_branch != xno; then
@@ -942,13 +950,13 @@ AC_FUNC_STRERROR_R
942950if test x$ac_cv_sys_file_offset_bits != x &&
943951 test x$ac_cv_sys_file_offset_bits != xno &&
944952 test x$ac_cv_sys_file_offset_bits != xunknown; then
945- CPPFLAGS ="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
953+ CORE_CPPFLAGS ="$CORE_CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
946954fi
947955
948956if test x$ac_cv_sys_large_files != x &&
949957 test x$ac_cv_sys_large_files != xno &&
950958 test x$ac_cv_sys_large_files != xunknown; then
951- CPPFLAGS ="$CPPFLAGS -D_LARGE_FILES=$ac_cv_sys_large_files"
959+ CORE_CPPFLAGS ="$CORE_CPPFLAGS -D_LARGE_FILES=$ac_cv_sys_large_files"
952960fi
953961
954962if test "x$enable_gprof" = xyes; then
@@ -1037,8 +1045,8 @@ dnl These flags are specific to ld64, and may cause issues with other linkers.
10371045dnl For example: GNU ld will interpret -dead_strip as -de and then try and use
10381046dnl "ad_strip" as the symbol for the entry point.
10391047if test x$TARGET_OS = xdarwin; then
1040- AX_CHECK_LINK_FLAG ( [ [ -Wl,-dead_strip] ] , [ LDFLAGS ="$LDFLAGS -Wl,-dead_strip"] ,, [ [ $LDFLAG_WERROR] ] )
1041- AX_CHECK_LINK_FLAG ( [ [ -Wl,-dead_strip_dylibs] ] , [ LDFLAGS ="$LDFLAGS -Wl,-dead_strip_dylibs"] ,, [ [ $LDFLAG_WERROR] ] )
1048+ AX_CHECK_LINK_FLAG ( [ [ -Wl,-dead_strip] ] , [ CORE_LDFLAGS ="$CORE_LDFLAGS -Wl,-dead_strip"] ,, [ [ $LDFLAG_WERROR] ] )
1049+ AX_CHECK_LINK_FLAG ( [ [ -Wl,-dead_strip_dylibs] ] , [ CORE_LDFLAGS ="$CORE_LDFLAGS -Wl,-dead_strip_dylibs"] ,, [ [ $LDFLAG_WERROR] ] )
10421050 AX_CHECK_LINK_FLAG ( [ [ -Wl,-fixup_chains] ] , [ HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,-fixup_chains"] , [ ] , [ [ $LDFLAG_WERROR] ] )
10431051fi
10441052
@@ -1360,7 +1368,7 @@ if test "x$enable_fuzz" = "xyes"; then
13601368 [ [ -fsanitize=$use_sanitizers] ] ,
13611369 [ AC_MSG_RESULT ( [ no] ) ] ,
13621370 [ AC_MSG_RESULT ( [ yes] )
1363- CPPFLAGS ="$CPPFLAGS -DPROVIDE_FUZZ_MAIN_FUNCTION"] ,
1371+ CORE_CPPFLAGS ="$CORE_CPPFLAGS -DPROVIDE_FUZZ_MAIN_FUNCTION"] ,
13641372 [ ] ,
13651373 [ AC_LANG_PROGRAM ( [ [
13661374 #include <cstdint>
@@ -1384,7 +1392,7 @@ else
13841392 QT_TEST_INCLUDES=SUPPRESS_WARNINGS($QT_TEST_INCLUDES)
13851393 fi
13861394
1387- CPPFLAGS ="$CPPFLAGS -DPROVIDE_FUZZ_MAIN_FUNCTION"
1395+ CORE_CPPFLAGS ="$CORE_CPPFLAGS -DPROVIDE_FUZZ_MAIN_FUNCTION"
13881396fi
13891397
13901398if test x$enable_wallet != xno; then
15171525
15181526dnl Check for reduced exports
15191527if test x$use_reduce_exports = xyes; then
1520- AX_CHECK_COMPILE_FLAG ( [ -fvisibility=hidden] ,[ CXXFLAGS ="$CXXFLAGS -fvisibility=hidden"] ,
1528+ AX_CHECK_COMPILE_FLAG ( [ -fvisibility=hidden] ,[ CORE_CXXFLAGS ="$CORE_CXXFLAGS -fvisibility=hidden"] ,
15211529 [ AC_MSG_ERROR ( [ Cannot set hidden symbol visibility. Use --disable-reduce-exports.] ) ] ,[ [ $CXXFLAG_WERROR] ] )
15221530 AX_CHECK_LINK_FLAG ( [ [ -Wl,--exclude-libs,ALL] ] ,[ RELDFLAGS="-Wl,--exclude-libs,ALL"] ,,[ [ $LDFLAG_WERROR] ] )
15231531 AX_CHECK_LINK_FLAG ( [ -Wl,-no_exported_symbols] , [ LIBTOOL_APP_LDFLAGS="$LIBTOOL_APP_LDFLAGS -Wl,-no_exported_symbols"] , [ ] , [ $LDFLAG_WERROR] )
@@ -1869,6 +1877,9 @@ AC_SUBST(BITCOIN_MP_NODE_NAME)
18691877AC_SUBST ( BITCOIN_MP_GUI_NAME )
18701878
18711879AC_SUBST ( RELDFLAGS )
1880+ AC_SUBST ( CORE_LDFLAGS )
1881+ AC_SUBST ( CORE_CPPFLAGS )
1882+ AC_SUBST ( CORE_CXXFLAGS )
18721883AC_SUBST ( DEBUG_CPPFLAGS )
18731884AC_SUBST ( WARN_CXXFLAGS )
18741885AC_SUBST ( NOWARN_CXXFLAGS )
@@ -1995,9 +2006,9 @@ echo " build os = $build_os"
19952006echo
19962007echo " CC = $CC"
19972008echo " CFLAGS = $PTHREAD_CFLAGS $CFLAGS"
1998- echo " CPPFLAGS = $DEBUG_CPPFLAGS $HARDENED_CPPFLAGS $CPPFLAGS"
2009+ echo " CPPFLAGS = $DEBUG_CPPFLAGS $HARDENED_CPPFLAGS $CORE_CPPFLAGS $ CPPFLAGS"
19992010echo " CXX = $CXX"
2000- echo " CXXFLAGS = $DEBUG_CXXFLAGS $HARDENED_CXXFLAGS $WARN_CXXFLAGS $NOWARN_CXXFLAGS $ERROR_CXXFLAGS $GPROF_CXXFLAGS $CXXFLAGS"
2001- echo " LDFLAGS = $PTHREAD_LIBS $HARDENED_LDFLAGS $GPROF_LDFLAGS $LDFLAGS"
2011+ echo " CXXFLAGS = $DEBUG_CXXFLAGS $HARDENED_CXXFLAGS $WARN_CXXFLAGS $NOWARN_CXXFLAGS $ERROR_CXXFLAGS $GPROF_CXXFLAGS $CORE_CXXFLAGS $ CXXFLAGS"
2012+ echo " LDFLAGS = $PTHREAD_LIBS $HARDENED_LDFLAGS $GPROF_LDFLAGS $CORE_LDFLAGS $ LDFLAGS"
20022013echo " ARFLAGS = $ARFLAGS"
20032014echo
0 commit comments