From a994041db36c9a6058fe591c7ccd018ed7affc76 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Thu, 21 Jan 2016 11:18:45 +0000 Subject: [PATCH] gdb: Respect CXXFLAGS when building with C++ compiler Currently, even when built with --enable-build-with-cxx, gdb uses CFLAGS instead of CXXFLAGS. This commit fixes it. CXXFLAGS set in the environment when configure was run is now honored in the generated gdb/Makefile, and you can also override CXXFLAGS in the command like at make time, with the usual 'make CXXFLAGS="..."' Objects built with a C compiler (e.g., gnulib) still honor CFLAGS instead. gdb/ChangeLog: 2016-01-21 Pedro Alves * Makefile.in (COMPILER_CFLAGS): New. (CXXFLAGS): Get it from configure. (INTERNAL_CFLAGS_BASE, INTERNAL_LDFLAGS): Use COMPILER_CFLAGS instead of CFLAGS. * build-with-cxx.m4 (GDB_AC_BUILD_WITH_CXX): Set and AC_SUBST COMPILER_CFLAGS. * configure: Regenerate. gdb/gdbserver/ChangeLog: 2016-01-21 Pedro Alves * Makefile.in (COMPILER_CFLAGS, CXXFLAGS): New. (INTERNAL_CFLAGS_BASE): Use COMPILER_CFLAGS instead of CFLAGS. * configure: Regenerate. --- gdb/ChangeLog | 10 ++++++++++ gdb/Makefile.in | 18 +++++++++--------- gdb/build-with-cxx.m4 | 3 +++ gdb/configure | 4 ++++ gdb/gdbserver/ChangeLog | 6 ++++++ gdb/gdbserver/Makefile.in | 7 +++++-- gdb/gdbserver/configure | 4 ++++ 7 files changed, 41 insertions(+), 11 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index a377a322984..68d10ad0acb 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,13 @@ +2016-01-21 Pedro Alves + + * Makefile.in (COMPILER_CFLAGS): New. + (CXXFLAGS): Get it from configure. + (INTERNAL_CFLAGS_BASE, INTERNAL_LDFLAGS): Use COMPILER_CFLAGS + instead of CFLAGS. + * build-with-cxx.m4 (GDB_AC_BUILD_WITH_CXX): Set and AC_SUBST + COMPILER_CFLAGS. + * configure: Regenerate. + 2016-01-21 Joel Brobecker * location.h (new_address_location): Add new parameters diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 895ece68661..5e8eb9aa039 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -81,6 +81,8 @@ CATALOGS = @CATALOGS@ # The name of the compiler to use. COMPILER = @COMPILER@ +# Set to CFLAGS or CXXFLAGS, depending on compiler/language. +COMPILER_CFLAGS = @COMPILER_CFLAGS@ # If you are compiling with GCC, make sure that either 1) You have the # fixed include files where GCC can reach them, or 2) You use the @@ -551,9 +553,10 @@ GLOBAL_CFLAGS = $(MH_CFLAGS) PROFILE_CFLAGS = @PROFILE_CFLAGS@ -# CFLAGS is specifically reserved for setting from the command line -# when running make. I.E. "make CFLAGS=-Wmissing-prototypes". +# These are specifically reserved for setting from the command line +# when running make. I.E.: "make CFLAGS=-Wmissing-prototypes". CFLAGS = @CFLAGS@ +CXXFLAGS = @CXXFLAGS@ # Set by configure, for e.g. expat. Python installations are such that # C headers are included using their basename (for example, we #include @@ -563,14 +566,9 @@ CFLAGS = @CFLAGS@ # a bit the consequences by putting the Python includes last in the list. INTERNAL_CPPFLAGS = @CPPFLAGS@ @GUILE_CPPFLAGS@ @PYTHON_CPPFLAGS@ -# Need to pass this to testsuite for "make check". Probably should be -# consistent with top-level Makefile.in and gdb/testsuite/Makefile.in -# so "make check" has the same result no matter where it is run. -CXXFLAGS = -g -O - # INTERNAL_CFLAGS is the aggregate of all other *CFLAGS macros. INTERNAL_CFLAGS_BASE = \ - $(CFLAGS) $(GLOBAL_CFLAGS) $(PROFILE_CFLAGS) \ + $(COMPILER_CFLAGS) $(GLOBAL_CFLAGS) $(PROFILE_CFLAGS) \ $(GDB_CFLAGS) $(OPCODES_CFLAGS) $(READLINE_CFLAGS) $(ZLIBINC) \ $(BFD_CFLAGS) $(INCLUDE_CFLAGS) $(LIBDECNUMBER_CFLAGS) \ $(INTL_CFLAGS) $(INCGNU) $(ENABLE_CFLAGS) $(INTERNAL_CPPFLAGS) @@ -585,7 +583,9 @@ LDFLAGS = @LDFLAGS@ # I think it's perfectly reasonable for a user to set -pg in CFLAGS # and have it work; that's why CFLAGS is here. # PROFILE_CFLAGS is _not_ included, however, because we use monstartup. -INTERNAL_LDFLAGS = $(CFLAGS) $(GLOBAL_CFLAGS) $(MH_LDFLAGS) $(LDFLAGS) $(CONFIG_LDFLAGS) +INTERNAL_LDFLAGS = \ + $(COMPILER_CFLAGS) $(GLOBAL_CFLAGS) $(MH_LDFLAGS) \ + $(LDFLAGS) $(CONFIG_LDFLAGS) # If your system is missing alloca(), or, more likely, it's there but # it doesn't work, then refer to libiberty. diff --git a/gdb/build-with-cxx.m4 b/gdb/build-with-cxx.m4 index d282092b127..6eb91434791 100644 --- a/gdb/build-with-cxx.m4 +++ b/gdb/build-with-cxx.m4 @@ -33,8 +33,11 @@ AC_DEFUN([GDB_AC_BUILD_WITH_CXX], if test "$enable_build_with_cxx" = "yes"; then COMPILER='$(CXX)' + COMPILER_CFLAGS='$(CXXFLAGS)' else COMPILER='$(CC)' + COMPILER_CFLAGS='$(CFLAGS)' fi AC_SUBST(COMPILER) + AC_SUBST(COMPILER_CFLAGS) ]) diff --git a/gdb/configure b/gdb/configure index 701cfcb0239..26a00d8f224 100755 --- a/gdb/configure +++ b/gdb/configure @@ -731,6 +731,7 @@ MAKE CCDEPMODE DEPDIR am__leading_dot +COMPILER_CFLAGS COMPILER INSTALL_STRIP_PROGRAM STRIP @@ -5015,12 +5016,15 @@ fi if test "$enable_build_with_cxx" = "yes"; then COMPILER='$(CXX)' + COMPILER_CFLAGS='$(CXXFLAGS)' else COMPILER='$(CC)' + COMPILER_CFLAGS='$(CFLAGS)' fi + # Dependency checking. rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index c33c5d33d25..9c42fcf97ff 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,9 @@ +2016-01-21 Pedro Alves + + * Makefile.in (COMPILER_CFLAGS, CXXFLAGS): New. + (INTERNAL_CFLAGS_BASE): Use COMPILER_CFLAGS instead of CFLAGS. + * configure: Regenerate. + 2016-01-21 Yao Qi * linux-arm-low.c (arm_sigreturn_next_pc): Add parameter diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in index 4719e48576a..f9b9dbe79a3 100644 --- a/gdb/gdbserver/Makefile.in +++ b/gdb/gdbserver/Makefile.in @@ -51,6 +51,8 @@ RANLIB = @RANLIB@ # The name of the compiler to use. COMPILER = @COMPILER@ +# Set to CFLAGS or CXXFLAGS, depending on compiler/language. +COMPILER_CFLAGS = @COMPILER_CFLAGS@ CC = @CC@ CXX = @CXX@ @@ -129,13 +131,14 @@ WERROR_CFLAGS = @WERROR_CFLAGS@ WARN_CFLAGS_NO_FORMAT = `echo " $(WARN_CFLAGS) " \ | sed "s/ -Wformat-nonliteral / -Wno-format-nonliteral /g"` -# CFLAGS is specifically reserved for setting from the command line +# These are specifically reserved for setting from the command line # when running make. I.E. "make CFLAGS=-Wmissing-prototypes". CFLAGS = @CFLAGS@ +CXXFLAGS = @CXXFLAGS@ CPPFLAGS = @CPPFLAGS@ # INTERNAL_CFLAGS is the aggregate of all other *CFLAGS macros. -INTERNAL_CFLAGS_BASE = ${CFLAGS} ${GLOBAL_CFLAGS} \ +INTERNAL_CFLAGS_BASE = ${COMPILER_CFLAGS} ${GLOBAL_CFLAGS} \ ${PROFILE_CFLAGS} ${INCLUDE_CFLAGS} ${CPPFLAGS} INTERNAL_WARN_CFLAGS = ${INTERNAL_CFLAGS_BASE} $(WARN_CFLAGS) INTERNAL_CFLAGS = ${INTERNAL_WARN_CFLAGS} $(WERROR_CFLAGS) -DGDBSERVER diff --git a/gdb/gdbserver/configure b/gdb/gdbserver/configure index 763c77db069..4a6f26badf9 100755 --- a/gdb/gdbserver/configure +++ b/gdb/gdbserver/configure @@ -615,6 +615,7 @@ DEPDIR am__leading_dot host_noncanonical target_noncanonical +COMPILER_CFLAGS COMPILER RANLIB AR @@ -4834,12 +4835,15 @@ fi if test "$enable_build_with_cxx" = "yes"; then COMPILER='$(CXX)' + COMPILER_CFLAGS='$(CXXFLAGS)' else COMPILER='$(CC)' + COMPILER_CFLAGS='$(CFLAGS)' fi + # Set the 'development' global. . $srcdir/../../bfd/development.sh -- 2.30.2