This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
RFA: No CPP_PREDEFINES for mcore
- From: Neil Booth <neil at daikokuya dot co dot uk>
- To: gcc-patches at gcc dot gnu dot org
- Date: Wed, 12 Mar 2003 07:01:44 +0000
- Subject: RFA: No CPP_PREDEFINES for mcore
Tested on mcore-elf. OK?
Neil.
* config/mcore/mcore-elf.h (CPP_PREDEFINES): Replace with
TARGET_OS_CPP_BUILTINS.
* config/mcore/mcore-pe.h: Similarly.
* config/mcore/mcore.h: Replace CPP_PREDEFINES and part of
CPP_SPEC with TARGET_CPU_CPP_BUILTINS.
Index: mcore-elf.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mcore/mcore-elf.h,v
retrieving revision 1.13
diff -u -p -r1.13 mcore-elf.h
--- mcore-elf.h 29 Aug 2002 21:40:15 -0000 1.13
+++ mcore-elf.h 12 Mar 2003 06:52:33 -0000
@@ -25,7 +25,12 @@ Boston, MA 02111-1307, USA. */
/* Run-time Target Specification. */
#define TARGET_VERSION fputs (" (Motorola MCORE/elf)", stderr)
-#define SUBTARGET_CPP_PREDEFINES " -D__ELF__"
+#define TARGET_OS_CPP_BUILTINS() \
+ do \
+ { \
+ builtin_define ("__ELF__"); \
+ } \
+ while (0)
/* Use DWARF2 debugging info. */
#define DWARF2_DEBUGGING_INFO 1
Index: mcore-pe.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mcore/mcore-pe.h,v
retrieving revision 1.15
diff -u -p -r1.15 mcore-pe.h
--- mcore-pe.h 16 Dec 2002 18:21:34 -0000 1.15
+++ mcore-pe.h 12 Mar 2003 06:52:33 -0000
@@ -22,7 +22,12 @@ Boston, MA 02111-1307, USA. */
/* Run-time Target Specification. */
#define TARGET_VERSION fputs (" (MCORE/pe)", stderr)
-#define SUBTARGET_CPP_PREDEFINES " -D__pe__"
+#define TARGET_OS_CPP_BUILTINS() \
+ do \
+ { \
+ builtin_define ("__pe__"); \
+ } \
+ while (0)
/* The MCore ABI says that bitfields are unsigned by default. */
/* The EPOC C++ environment does not support exceptions. */
Index: mcore.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mcore/mcore.h,v
retrieving revision 1.44
diff -u -p -r1.44 mcore.h
--- mcore.h 28 Jan 2003 18:08:51 -0000 1.44
+++ mcore.h 12 Mar 2003 06:52:33 -0000
@@ -46,28 +46,28 @@ Boston, MA 02111-1307, USA. */
predefined attributes later on. This can be solved by using one attribute,
say __declspec__, and passing args to it. The problem with that approach
is that args are not accumulated: each new appearance would clobber any
- existing args. XXX- FIXME the definition below relies upon string
- concatenation, which is non-portable. */
-#define CPP_PREDEFINES \
- "-D__mcore__ -D__MCORE__=1 -D__declspec(x)=__attribute__((x))" SUBTARGET_CPP_PREDEFINES
+ existing args. */
+#define TARGET_CPU_CPP_BUILTINS() \
+ do \
+ { \
+ builtin_define ("__mcore__"); \
+ builtin_define ("__MCORE__"); \
+ builtin_define ("__declspec(x)=__attribute__((x))"); \
+ if (TARGET_LITTLE_END) \
+ builtin_define ("__MCORELE__"); \
+ else \
+ builtin_define ("__MCOREBE__"); \
+ if (TARGET_M340) \
+ builtin_define ("__M340__"); \
+ else \
+ builtin_define ("__M210__"); \
+ } \
+ while (0)
-/* If -m4align is ever re-enabled then uncomment this line as well:
- #define CPP_SPEC "%{!m4align:-D__MCORE_ALIGN_8__} %{m4align:-D__MCORE__ALIGN_4__}" */
-
-#undef CPP_SPEC
-#define CPP_SPEC " \
-%{mbig-endian: \
- %{mlittle-endian:%echoose either big or little endian, not both} \
- -D__MCOREBE__} \
-%{m210: \
- %{m340:%echoose either m340 or m210 not both} \
- %{mlittle-endian:%ethe m210 does not have little endian support} \
- -D__M210__} \
-%{!mbig-endian: -D__MCORELE__} \
-%{!m210: -D__M340__} \
-"
/* If -m4align is ever re-enabled then add this line to the definition of CPP_SPEC
%{!m4align:-D__MCORE_ALIGN_8__} %{m4align:-D__MCORE__ALIGN_4__} */
+#undef CPP_SPEC
+#define CPP_SPEC "%{m210:%{mlittle-endian:%ethe m210 does not have little endian support}}";
/* We don't have a -lg library, so don't put it in the list. */
#undef LIB_SPEC