Skip to content

Commit 11323c3

Browse files
committed
merge bitcoin#24391: stop overriding user autoconf flags
1 parent 548121d commit 11323c3

File tree

3 files changed

+47
-36
lines changed

3 files changed

+47
-36
lines changed

build-aux/m4/bitcoin_qt.m4

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,8 @@ AC_DEFUN([BITCOIN_QT_CONFIGURE],[
116116
BITCOIN_QT_CHECK([
117117
TEMP_CPPFLAGS=$CPPFLAGS
118118
TEMP_CXXFLAGS=$CXXFLAGS
119-
CPPFLAGS="$QT_INCLUDES $CPPFLAGS"
120-
CXXFLAGS="$PIC_FLAGS $CXXFLAGS"
119+
CPPFLAGS="$QT_INCLUDES $CORE_CPPFLAGS $CPPFLAGS"
120+
CXXFLAGS="$PIC_FLAGS $CORE_CXXFLAGS $CXXFLAGS"
121121
_BITCOIN_QT_IS_STATIC
122122
if test "x$bitcoin_cv_static_qt" = xyes; then
123123
_BITCOIN_QT_CHECK_STATIC_LIBS
@@ -177,8 +177,8 @@ AC_DEFUN([BITCOIN_QT_CONFIGURE],[
177177
AC_MSG_CHECKING(whether -fPIE can be used with this Qt config)
178178
TEMP_CPPFLAGS=$CPPFLAGS
179179
TEMP_CXXFLAGS=$CXXFLAGS
180-
CPPFLAGS="$QT_INCLUDES $CPPFLAGS"
181-
CXXFLAGS="$PIE_FLAGS $CXXFLAGS"
180+
CPPFLAGS="$QT_INCLUDES $CORE_CPPFLAGS $CPPFLAGS"
181+
CXXFLAGS="$PIE_FLAGS $CORE_CXXFLAGS $CXXFLAGS"
182182
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
183183
#include <QtCore/qconfig.h>
184184
#ifndef QT_VERSION
@@ -200,7 +200,7 @@ AC_DEFUN([BITCOIN_QT_CONFIGURE],[
200200
BITCOIN_QT_CHECK([
201201
AC_MSG_CHECKING(whether -fPIC is needed with this Qt config)
202202
TEMP_CPPFLAGS=$CPPFLAGS
203-
CPPFLAGS="$QT_INCLUDES $CPPFLAGS"
203+
CPPFLAGS="$QT_INCLUDES $CORE_CPPFLAGS $CPPFLAGS"
204204
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
205205
#include <QtCore/qconfig.h>
206206
#ifndef QT_VERSION

configure.ac

Lines changed: 39 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,9 @@ case $host in
372372
esac
373373

374374
if 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
532534
fi
533535

534536
dnl 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

537539
enable_arm_crc=no
538540
enable_arm_shani=no
@@ -683,7 +685,7 @@ CXXFLAGS="$TEMP_CXXFLAGS"
683685

684686
fi
685687

686-
CPPFLAGS="$CPPFLAGS -DHAVE_BUILD_INFO -DGSL_NO_IOSTREAMS"
688+
CORE_CPPFLAGS="$CORE_CPPFLAGS -DHAVE_BUILD_INFO -DGSL_NO_IOSTREAMS"
687689

688690
AC_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"
920928
fi
921929

922930
if test x$use_lcov_branch != xno; then
@@ -942,13 +950,13 @@ AC_FUNC_STRERROR_R
942950
if 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"
946954
fi
947955

948956
if 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"
952960
fi
953961

954962
if test "x$enable_gprof" = xyes; then
@@ -1037,8 +1045,8 @@ dnl These flags are specific to ld64, and may cause issues with other linkers.
10371045
dnl For example: GNU ld will interpret -dead_strip as -de and then try and use
10381046
dnl "ad_strip" as the symbol for the entry point.
10391047
if 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]])
10431051
fi
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"
13881396
fi
13891397

13901398
if test x$enable_wallet != xno; then
@@ -1517,7 +1525,7 @@ fi
15171525

15181526
dnl Check for reduced exports
15191527
if 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)
18691877
AC_SUBST(BITCOIN_MP_GUI_NAME)
18701878

18711879
AC_SUBST(RELDFLAGS)
1880+
AC_SUBST(CORE_LDFLAGS)
1881+
AC_SUBST(CORE_CPPFLAGS)
1882+
AC_SUBST(CORE_CXXFLAGS)
18721883
AC_SUBST(DEBUG_CPPFLAGS)
18731884
AC_SUBST(WARN_CXXFLAGS)
18741885
AC_SUBST(NOWARN_CXXFLAGS)
@@ -1995,9 +2006,9 @@ echo " build os = $build_os"
19952006
echo
19962007
echo " CC = $CC"
19972008
echo " CFLAGS = $PTHREAD_CFLAGS $CFLAGS"
1998-
echo " CPPFLAGS = $DEBUG_CPPFLAGS $HARDENED_CPPFLAGS $CPPFLAGS"
2009+
echo " CPPFLAGS = $DEBUG_CPPFLAGS $HARDENED_CPPFLAGS $CORE_CPPFLAGS $CPPFLAGS"
19992010
echo " 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"
20022013
echo " ARFLAGS = $ARFLAGS"
20032014
echo

src/Makefile.am

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ print-%: FORCE
99

1010
DIST_SUBDIRS = secp256k1
1111

12-
AM_LDFLAGS = $(LIBTOOL_LDFLAGS) $(HARDENED_LDFLAGS) $(GPROF_LDFLAGS) $(SANITIZER_LDFLAGS)
13-
AM_CXXFLAGS = $(DEBUG_CXXFLAGS) $(HARDENED_CXXFLAGS) $(WARN_CXXFLAGS) $(NOWARN_CXXFLAGS) $(ERROR_CXXFLAGS) $(GPROF_CXXFLAGS) $(SANITIZER_CXXFLAGS)
14-
AM_CPPFLAGS = $(DEBUG_CPPFLAGS) $(HARDENED_CPPFLAGS)
12+
AM_LDFLAGS = $(LIBTOOL_LDFLAGS) $(HARDENED_LDFLAGS) $(GPROF_LDFLAGS) $(SANITIZER_LDFLAGS) $(CORE_LDFLAGS)
13+
AM_CXXFLAGS = $(DEBUG_CXXFLAGS) $(HARDENED_CXXFLAGS) $(WARN_CXXFLAGS) $(NOWARN_CXXFLAGS) $(ERROR_CXXFLAGS) $(GPROF_CXXFLAGS) $(SANITIZER_CXXFLAGS) $(CORE_CXXFLAGS)
14+
AM_CPPFLAGS = $(DEBUG_CPPFLAGS) $(HARDENED_CPPFLAGS) $(CORE_CPPFLAGS)
1515
AM_LIBTOOLFLAGS = --preserve-dup-deps
1616
PTHREAD_FLAGS = $(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
1717
EXTRA_LIBRARIES =

0 commit comments

Comments
 (0)