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  <palves@redhat.com>

	* 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  <palves@redhat.com>

	* Makefile.in (COMPILER_CFLAGS, CXXFLAGS): New.
	(INTERNAL_CFLAGS_BASE): Use COMPILER_CFLAGS instead of CFLAGS.
	* configure: Regenerate.
This commit is contained in:
Pedro Alves 2016-01-21 11:18:45 +00:00
parent aebf9be708
commit a994041db3
7 changed files with 41 additions and 11 deletions

View file

@ -1,3 +1,13 @@
2016-01-21 Pedro Alves <palves@redhat.com>
* 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 <brobecker@adacore.com>
* location.h (new_address_location): Add new parameters

View file

@ -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.

View file

@ -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)
])

4
gdb/configure vendored
View file

@ -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

View file

@ -1,3 +1,9 @@
2016-01-21 Pedro Alves <palves@redhat.com>
* Makefile.in (COMPILER_CFLAGS, CXXFLAGS): New.
(INTERNAL_CFLAGS_BASE): Use COMPILER_CFLAGS instead of CFLAGS.
* configure: Regenerate.
2016-01-21 Yao Qi <yao.qi@linaro.org>
* linux-arm-low.c (arm_sigreturn_next_pc): Add parameter

View file

@ -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

View file

@ -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