The defaults.h definition of
#define CPLUSPLUS_CPP_SPEC CPP_SPEC
does not do the right thing with the cpp spec picked up from a spec file,
which is now needed for -mmcu processing.
Also, a spec file can't override CPLUSPLUS_CPP_SPEC as such, since
that string is hard-coded into the compiler.
By setting CPLUSPLUS_CPP_SPEC to "%(cpp)", we let the cc1plus
preprocessor look up the actual value of the preprocessor specs.

OK to apply?
2014-11-09  Joern Rennecke  <joern.renne...@embecosm.com>

        * /config/avr/avr.h (CPLUSPLUS_CPP_SPEC): Define.

diff --git a/gcc/config/avr/avr.h b/gcc/config/avr/avr.h
index 0b48423..46ed0a4 100644
--- a/gcc/config/avr/avr.h
+++ b/gcc/config/avr/avr.h
@@ -505,6 +505,10 @@ typedef struct avr_args
 #define DRIVER_SELF_SPECS " %{mmcu=*:-specs=device-specs/specs-%*%s %<mmcu=*} "
 #define CPP_SPEC ""
 
+/* We want cc1plus used as a preprocessor to pick up the cpp spec from the
+   per-device spec files  */
+#define CPLUSPLUS_CPP_SPEC "%(cpp)"
+
 #define CC1_SPEC ""
 
 #define CC1PLUS_SPEC "%{!frtti:-fno-rtti} \

Reply via email to