gdb: Respect CXXFLAGS when building with C++ compiler

Message ID 1453288024-19890-1-git-send-email-palves@redhat.com
State New, archived
Headers

Commit Message

Pedro Alves Jan. 20, 2016, 11:07 a.m. UTC
  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-20  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-20  Pedro Alves  <palves@redhat.com>

	* Makefile.in (COMPILER_CFLAGS, CXXFLAGS): New.
	(INTERNAL_CFLAGS_BASE, INTERNAL_LDFLAGS): Use COMPILER_CFLAGS
	instead of CFLAGS.
	* configure: Regenerate.
---
 gdb/Makefile.in           | 18 +++++++++---------
 gdb/build-with-cxx.m4     |  3 +++
 gdb/configure             |  4 ++++
 gdb/gdbserver/Makefile.in |  7 +++++--
 gdb/gdbserver/configure   |  4 ++++
 5 files changed, 25 insertions(+), 11 deletions(-)
  

Comments

Simon Marchi Jan. 20, 2016, 8:05 p.m. UTC | #1
On 16-01-20 06:07 AM, Pedro Alves wrote:
> 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-20  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-20  Pedro Alves  <palves@redhat.com>
> 
> 	* Makefile.in (COMPILER_CFLAGS, CXXFLAGS): New.
> 	(INTERNAL_CFLAGS_BASE, INTERNAL_LDFLAGS): Use COMPILER_CFLAGS
> 	instead of CFLAGS.
> 	* configure: Regenerate.
> ---
>  gdb/Makefile.in           | 18 +++++++++---------
>  gdb/build-with-cxx.m4     |  3 +++
>  gdb/configure             |  4 ++++
>  gdb/gdbserver/Makefile.in |  7 +++++--
>  gdb/gdbserver/configure   |  4 ++++
>  5 files changed, 25 insertions(+), 11 deletions(-)
> 
> diff --git a/gdb/Makefile.in b/gdb/Makefile.in
> index 895ece6..5e8eb9a 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 d282092..6eb9143 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 56deb9c..34d6539 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/Makefile.in b/gdb/gdbserver/Makefile.in
> index 4719e48..f9b9dbe 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@

Maybe call this COMPILER_FLAGS?

Otherwise, LGTM.
  
Pedro Alves Jan. 20, 2016, 8:40 p.m. UTC | #2
On 01/20/2016 08:05 PM, Simon Marchi wrote:
> On 16-01-20 06:07 AM, Pedro Alves wrote:
>> 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-20  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-20  Pedro Alves  <palves@redhat.com>
>>
>> 	* Makefile.in (COMPILER_CFLAGS, CXXFLAGS): New.
>> 	(INTERNAL_CFLAGS_BASE, INTERNAL_LDFLAGS): Use COMPILER_CFLAGS
>> 	instead of CFLAGS.
>> 	* configure: Regenerate.
>> ---
>>  gdb/Makefile.in           | 18 +++++++++---------
>>  gdb/build-with-cxx.m4     |  3 +++
>>  gdb/configure             |  4 ++++
>>  gdb/gdbserver/Makefile.in |  7 +++++--
>>  gdb/gdbserver/configure   |  4 ++++
>>  5 files changed, 25 insertions(+), 11 deletions(-)
>>
>> diff --git a/gdb/Makefile.in b/gdb/Makefile.in
>> index 895ece6..5e8eb9a 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 d282092..6eb9143 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 56deb9c..34d6539 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/Makefile.in b/gdb/gdbserver/Makefile.in
>> index 4719e48..f9b9dbe 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@
> 
> Maybe call this COMPILER_FLAGS?

Yeah, it crossed my mind too, but then all others end up _CFLAGS,
like INTERNAL_CFLAGS, GLOBAL_CFLAGS, GDB_WERROR_CFLAGS,
INTERNAL_WARN_CFLAGS, etc., which are used in c++ too,
that I thought it ended up looking the odd one out.  WDYT?

> 
> Otherwise, LGTM.
> 

Thanks,
Pedro Alves
  
Simon Marchi Jan. 20, 2016, 10:52 p.m. UTC | #3
On 16-01-20 03:40 PM, Pedro Alves wrote:
> Yeah, it crossed my mind too, but then all others end up _CFLAGS,
> like INTERNAL_CFLAGS, GLOBAL_CFLAGS, GDB_WERROR_CFLAGS,
> INTERNAL_WARN_CFLAGS, etc., which are used in c++ too,
> that I thought it ended up looking the odd one out.  WDYT?

Then you can change the others too :)

INTERNAL_CFLAGS -> INTERNAL_COMPILER_FLAGS
GLOBAL_CFLAGS -> GLOBAL_COMPILER_FLAGS
GDB_WERROR_CFLAGS -> GDB_WERROR_COMPILER_FLAGS
etc...

But it's a minor detail and probably temporary too, so I'm fine
with COMPILER_CFLAGS.
  
Pedro Alves Jan. 21, 2016, 11:37 a.m. UTC | #4
On 01/20/2016 10:52 PM, Simon Marchi wrote:
> On 16-01-20 03:40 PM, Pedro Alves wrote:
>> Yeah, it crossed my mind too, but then all others end up _CFLAGS,
>> like INTERNAL_CFLAGS, GLOBAL_CFLAGS, GDB_WERROR_CFLAGS,
>> INTERNAL_WARN_CFLAGS, etc., which are used in c++ too,
>> that I thought it ended up looking the odd one out.  WDYT?
> 
> Then you can change the others too :)
> 
> INTERNAL_CFLAGS -> INTERNAL_COMPILER_FLAGS
> GLOBAL_CFLAGS -> GLOBAL_COMPILER_FLAGS
> GDB_WERROR_CFLAGS -> GDB_WERROR_COMPILER_FLAGS
> etc...
> 
> But it's a minor detail and probably temporary too, so I'm fine
> with COMPILER_CFLAGS.

Yeah, I'd rather not change everything.  Maybe we'll rename all
those to INTERNAL_CXXFLAGS, etc. soon enough.  :-)

I've pushed the patch in now.

Thanks,
Pedro Alves
  

Patch

diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index 895ece6..5e8eb9a 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 d282092..6eb9143 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 56deb9c..34d6539 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/Makefile.in b/gdb/gdbserver/Makefile.in
index 4719e48..f9b9dbe 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 84630ad..2748eb8 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