Use C for some rs6000 -D options.

Geoffrey Keating geoffk@romulus.sfbay.redhat.com
Tue Jun 11 15:58:00 GMT 2002


This starts converting the rs6000 port to the new way of making
preprocessor defines.

Tested on powerpc-eabisim, bootstrapped and tested on powerpc-aix4.3.

-- 
Geoff Keating <geoffk@redhat.com>

===File ~/patches/rs6000-cpucpp.patch=======================
2002-06-11  Geoffrey Keating  <geoffk@redhat.com>

	* config.gcc (powerpc*-*-*, rs6000-*-*-*): Don't bother including
	softfloat.h.
	* config/rs6000/vxppc.h (CPP_ENDIAN_BIG_SPEC): Delete.
	(CPP_ENDIAN_LITTLE_SPEC): Delete.
	* config/rs6000/sysv4le.h (CPP_ENDIAN_DEFAULT_SPEC): Delete.
	* config/rs6000/sysv4.h (CPP_SYSV_SPEC): Delete _SOFT_FLOAT setting,
	__LONG_DOUBLE_128__ setting, _CALL_* setting.
	(CPP_DEFAULT_SPEC): Delete.
	(CPP_FLOAT_DEFAULT_SPEC): Delete.
	(CPP_LONGDOUBLE_DEFAULT_SPEC): Delete.
	(CPP_SYSV_DEFAULT_SPEC): Delete.
	(CPP_ENDIAN_BIG_SPEC): Delete.
	(CPP_ENDIAN_LITTLE_SPEC): Delete.
	(CPP_ENDIAN_SPEC): Delete.
	(CPP_SPEC): Don't include cpp_endian, cpp_cpu.
	(SUBTARGET_EXTRA_SPECS): Delete cpp_sysv_default, cpp_endian_default,
	cpp_endian, cpp_endian_big, cpp_endian_little, cpp_float_default,
	cpp_longdouble_default.
	* config/rs6000/softfloat.h: Delete.
	* config/rs6000/rs6000.h (CPP_CPU_SPEC): Delete.
	(EXTRA_SPECS): Delete cpp_cpu.
	(TARGET_CPU_CPP_BUILTINS): New.
	* config/rs6000/rs6000-protos.h (rs6000_cpu_cpp_builtins): New
	prototype.
	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): New.
	* config/rs6000/linux64.h (CPP_PREDEFINES): Remove endianness defines.
	(CPP_DEFAULT_SPEC): Delete.
	* config/rs6000/eabiaix.h (CPP_SYSV_DEFAULT_SPEC): Delete.
	* config/rs6000/darwin.h (CPP_PREDEFINES): Don't define __BIG_ENDIAN__.
	* config/rs6000/beos.h (CPP_SPEC): Remove cpp_cpu.
	(CPP_DEFAULT_SPEC): Delete.
	* config/rs6000/aix51.h (CPP_SPEC): Remove cpp_cpu, -D_ARCH_PPC.
	(CPLUSPLUS_CPP_SPEC): Likewise.
	(CPP_CPU_SPEC): Delete.
	(CPP_DEFAULT_SPEC): Delete.
	* config/rs6000/aix43.h (CPP_SPEC): Remove cpp_cpu, -D_ARCH_PPC.
	(CPLUSPLUS_CPP_SPEC): Likewise.
	(CPP_CPU_SPEC): Delete.
	(CPP_DEFAULT_SPEC): Delete.
	* config/rs6000/aix41.h (CPP_SPEC): Remove cpp_cpu.
	(CPP_DEFAULT_SPEC): Delete.
	* config/rs6000/aix.h (CPP_SPEC): Remove cpp_cpu.
	(CPP_DEFAULT_SPEC): Delete.

Index: config.gcc
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config.gcc,v
retrieving revision 1.207
diff -p -u -p -r1.207 config.gcc
--- config.gcc	7 Jun 2002 23:31:04 -0000	1.207
+++ config.gcc	11 Jun 2002 22:53:37 -0000
@@ -2876,7 +2876,6 @@ powerpc*-*-* | rs6000-*-*)
 
 		x401 | x403 | x405 | xec603e | x801 | x821 | x823 | x860)
 			target_cpu_default2="\\\"$with_cpu\\\""
-			tm_file="$tm_file rs6000/softfloat.h"
 			;;
 
 		xyes | xno)
Index: config/rs6000/aix.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/aix.h,v
retrieving revision 1.28
diff -p -u -p -r1.28 aix.h
--- config/rs6000/aix.h	1 Mar 2002 06:00:36 -0000	1.28
+++ config/rs6000/aix.h	11 Jun 2002 22:53:40 -0000
@@ -48,11 +48,7 @@ Boston, MA 02111-1307, USA.  */
    target switches.  */
 
 #define CPP_SPEC "%{posix: -D_POSIX_SOURCE}\
-   %{ansi: -D_ANSI_C_SOURCE}\
-   %(cpp_cpu)"
-
-#undef CPP_DEFAULT_SPEC
-#define CPP_DEFAULT_SPEC "-D_ARCH_PWR"
+   %{ansi: -D_ANSI_C_SOURCE}"
 
 #undef ASM_DEFAULT_SPEC
 #define ASM_DEFAULT_SPEC ""
Index: config/rs6000/aix41.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/aix41.h,v
retrieving revision 1.15
diff -p -u -p -r1.15 aix41.h
--- config/rs6000/aix41.h	9 Jan 2001 20:46:11 -0000	1.15
+++ config/rs6000/aix41.h	11 Jun 2002 22:53:40 -0000
@@ -41,11 +41,7 @@ Boston, MA 02111-1307, USA.  */
 #define CPP_SPEC "%{posix: -D_POSIX_SOURCE}\
    %{ansi: -D_ANSI_C_SOURCE}\
    %{mpe: -I/usr/lpp/ppe.poe/include}\
-   %{pthread: -D_THREAD_SAFE}\
-   %(cpp_cpu)"
-
-#undef	CPP_DEFAULT_SPEC
-#define CPP_DEFAULT_SPEC "-D_ARCH_COM"
+   %{pthread: -D_THREAD_SAFE}"
 
 #undef TARGET_DEFAULT
 #define TARGET_DEFAULT MASK_NEW_MNEMONICS
Index: config/rs6000/aix43.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/aix43.h,v
retrieving revision 1.24
diff -p -u -p -r1.24 aix43.h
--- config/rs6000/aix43.h	9 Jun 2002 15:05:07 -0000	1.24
+++ config/rs6000/aix43.h	11 Jun 2002 22:53:40 -0000
@@ -103,10 +103,9 @@ do {									\
 #undef CPP_SPEC
 #define CPP_SPEC "%{posix: -D_POSIX_SOURCE}\
    %{ansi: -D_ANSI_C_SOURCE}\
-   %{maix64: -D__64BIT__ -D_ARCH_PPC -D__LONG_MAX__=9223372036854775807L}\
+   %{maix64: -D__64BIT__ -D__LONG_MAX__=9223372036854775807L}\
    %{mpe: -I/usr/lpp/ppe.poe/include}\
-   %{pthread: -D_THREAD_SAFE}\
-   %(cpp_cpu)"
+   %{pthread: -D_THREAD_SAFE}"
 
 /* The GNU C++ standard library requires that these macros be 
    defined.  */
@@ -116,42 +115,9 @@ do {									\
    -D_XOPEN_SOURCE_EXTENDED=1			\
    -D_LARGE_FILE_API				\
    -D_ALL_SOURCE                                \
-   %{maix64: -D__64BIT__ -D_ARCH_PPC -D__LONG_MAX__=9223372036854775807L}\
+   %{maix64: -D__64BIT__ -D__LONG_MAX__=9223372036854775807L}\
    %{mpe: -I/usr/lpp/ppe.poe/include}\
-   %{pthread: -D_THREAD_SAFE}\
-   %(cpp_cpu)"
-
-/* Common CPP definitions used by CPP_SPEC among the various targets
-   for handling -mcpu=xxx switches.  */
-#undef CPP_CPU_SPEC
-#define CPP_CPU_SPEC \
-"%{!mcpu*: %{!maix64: \
-  %{mpower: %{!mpower2: -D_ARCH_PWR}} \
-  %{mpower2: -D_ARCH_PWR2} \
-  %{mpowerpc*: -D_ARCH_PPC} \
-  %{!mpower*: %{!mpowerpc*: %(cpp_default)}}}} \
-%{mcpu=common: -D_ARCH_COM} \
-%{mcpu=power: -D_ARCH_PWR} \
-%{mcpu=power2: -D_ARCH_PWR2} \
-%{mcpu=power3: -D_ARCH_PPC} \
-%{mcpu=power4: -D_ARCH_PPC} \
-%{mcpu=powerpc: -D_ARCH_PPC} \
-%{mcpu=rios: -D_ARCH_PWR} \
-%{mcpu=rios1: -D_ARCH_PWR} \
-%{mcpu=rios2: -D_ARCH_PWR2} \
-%{mcpu=rsc: -D_ARCH_PWR} \
-%{mcpu=rsc1: -D_ARCH_PWR} \
-%{mcpu=rs64a: -D_ARCH_PPC} \
-%{mcpu=601: -D_ARCH_PPC -D_ARCH_PWR} \
-%{mcpu=602: -D_ARCH_PPC} \
-%{mcpu=603: -D_ARCH_PPC} \
-%{mcpu=603e: -D_ARCH_PPC} \
-%{mcpu=604: -D_ARCH_PPC} \
-%{mcpu=620: -D_ARCH_PPC} \
-%{mcpu=630: -D_ARCH_PPC}"
-
-#undef	CPP_DEFAULT_SPEC
-#define CPP_DEFAULT_SPEC "-D_ARCH_COM"
+   %{pthread: -D_THREAD_SAFE}"
 
 #undef TARGET_DEFAULT
 #define TARGET_DEFAULT MASK_NEW_MNEMONICS
Index: config/rs6000/aix51.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/aix51.h,v
retrieving revision 1.13
diff -p -u -p -r1.13 aix51.h
--- config/rs6000/aix51.h	9 Jun 2002 15:05:08 -0000	1.13
+++ config/rs6000/aix51.h	11 Jun 2002 22:53:40 -0000
@@ -103,10 +103,9 @@ do {									\
 #undef CPP_SPEC
 #define CPP_SPEC "%{posix: -D_POSIX_SOURCE}\
   %{ansi: -D_ANSI_C_SOURCE}\
-  %{maix64: -D__64BIT__ -D_ARCH_PPC -D__LONG_MAX__=9223372036854775807L}
+  %{maix64: -D__64BIT__ -D__LONG_MAX__=9223372036854775807L}
   %{mpe: -I/usr/lpp/ppe.poe/include}\
-  %{pthread: -D_THREAD_SAFE}\
-  %(cpp_cpu)"
+  %{pthread: -D_THREAD_SAFE}"
 
 /* The GNU C++ standard library requires that these macros be 
    defined.  */
@@ -116,42 +115,9 @@ do {									\
    -D_XOPEN_SOURCE_EXTENDED=1                   \
    -D_LARGE_FILE_API                            \
    -D_ALL_SOURCE                                \
-   %{maix64: -D__64BIT__ -D_ARCH_PPC -D__LONG_MAX__=9223372036854775807L}
+   %{maix64: -D__64BIT__ -D__LONG_MAX__=9223372036854775807L}
    %{mpe: -I/usr/lpp/ppe.poe/include}\
-   %{pthread: -D_THREAD_SAFE}\
-   %(cpp_cpu)"
-
-/* Common CPP definitions used by CPP_SPEC among the various targets
-   for handling -mcpu=xxx switches.  */
-#undef CPP_CPU_SPEC
-#define CPP_CPU_SPEC \
-"%{!mcpu*: %{!maix64: \
-  %{mpower: %{!mpower2: -D_ARCH_PWR}} \
-  %{mpower2: -D_ARCH_PWR2} \
-  %{mpowerpc*: -D_ARCH_PPC} \
-  %{!mpower*: %{!mpowerpc*: %(cpp_default)}}}} \
-%{mcpu=common: -D_ARCH_COM} \
-%{mcpu=power: -D_ARCH_PWR} \
-%{mcpu=power2: -D_ARCH_PWR2} \
-%{mcpu=power3: -D_ARCH_PPC} \
-%{mcpu=power4: -D_ARCH_PPC} \
-%{mcpu=powerpc: -D_ARCH_PPC} \
-%{mcpu=rios: -D_ARCH_PWR} \
-%{mcpu=rios1: -D_ARCH_PWR} \
-%{mcpu=rios2: -D_ARCH_PWR2} \
-%{mcpu=rsc: -D_ARCH_PWR} \
-%{mcpu=rsc1: -D_ARCH_PWR} \
-%{mcpu=rs64a: -D_ARCH_PPC} \
-%{mcpu=601: -D_ARCH_PPC -D_ARCH_PWR} \
-%{mcpu=602: -D_ARCH_PPC} \
-%{mcpu=603: -D_ARCH_PPC} \
-%{mcpu=603e: -D_ARCH_PPC} \
-%{mcpu=604: -D_ARCH_PPC} \
-%{mcpu=620: -D_ARCH_PPC} \
-%{mcpu=630: -D_ARCH_PPC}"
-
-#undef	CPP_DEFAULT_SPEC
-#define CPP_DEFAULT_SPEC "-D_ARCH_COM"
+   %{pthread: -D_THREAD_SAFE}"
 
 #undef TARGET_DEFAULT
 #define TARGET_DEFAULT MASK_NEW_MNEMONICS
Index: config/rs6000/beos.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/beos.h,v
retrieving revision 1.9
diff -p -u -p -r1.9 beos.h
--- config/rs6000/beos.h	10 Jan 2002 22:03:06 -0000	1.9
+++ config/rs6000/beos.h	11 Jun 2002 22:53:40 -0000
@@ -43,10 +43,7 @@ Boston, MA 02111-1307, USA.  */
 #define CPP_PREDEFINES "-D__BEOS__ -D__POWERPC__ -Asystem=beos -Acpu=powerpc -Amachine=powerpc"
 
 #undef CPP_SPEC
-#define CPP_SPEC "%{posix: -D_POSIX_SOURCE} %(cpp_cpu)"
-
-#undef	CPP_DEFAULT_SPEC
-#define CPP_DEFAULT_SPEC "-D_ARCH_PPC"
+#define CPP_SPEC "%{posix: -D_POSIX_SOURCE}"
 
 /* This is the easiest way to disable use of gcc's builtin alloca,
    which in the current BeOS release (DR9) is a problem because of the
Index: config/rs6000/darwin.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/darwin.h,v
retrieving revision 1.20
diff -p -u -p -r1.20 darwin.h
--- config/rs6000/darwin.h	19 May 2002 02:31:35 -0000	1.20
+++ config/rs6000/darwin.h	11 Jun 2002 22:53:40 -0000
@@ -44,7 +44,7 @@ Boston, MA 02111-1307, USA.  */
 #define SUBTARGET_OVERRIDE_OPTIONS  \
   rs6000_altivec_abi = 1;
 
-#define CPP_PREDEFINES "-D__ppc__ -D__POWERPC__ -D__NATURAL_ALIGNMENT__ -D__MACH__ -D__BIG_ENDIAN__ -D__APPLE__"
+#define CPP_PREDEFINES "-D__ppc__ -D__POWERPC__ -D__NATURAL_ALIGNMENT__ -D__MACH__ -D__APPLE__"
 
 /* We want -fPIC by default, unless we're using -static to compile for
    the kernel or some such.  */
Index: config/rs6000/eabiaix.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/eabiaix.h,v
retrieving revision 1.3
diff -p -u -p -r1.3 eabiaix.h
--- config/rs6000/eabiaix.h	5 Apr 2000 01:22:36 -0000	1.3
+++ config/rs6000/eabiaix.h	11 Jun 2002 22:53:40 -0000
@@ -23,9 +23,6 @@ Boston, MA 02111-1307, USA.  */
 #undef	RS6000_ABI_NAME
 #define RS6000_ABI_NAME "aix"
 
-#undef	CPP_SYSV_DEFAULT_SPEC
-#define	CPP_SYSV_DEFAULT_SPEC "-D_CALL_AIX"
-
 /* Define this macro as a C expression for the initializer of an
    array of string to tell the driver program which options are
    defaults for this target and thus do not need to be handled
Index: config/rs6000/linux64.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/linux64.h,v
retrieving revision 1.17
diff -p -u -p -r1.17 linux64.h
--- config/rs6000/linux64.h	9 Jun 2002 17:24:45 -0000	1.17
+++ config/rs6000/linux64.h	11 Jun 2002 22:53:40 -0000
@@ -36,9 +36,6 @@ Boston, MA 02111-1307, USA.  */
 #undef PROCESSOR_DEFAULT64
 #define PROCESSOR_DEFAULT64 PROCESSOR_PPC630
 
-#undef  CPP_DEFAULT_SPEC
-#define CPP_DEFAULT_SPEC "-D_ARCH_PPC64"
-
 #undef  ASM_DEFAULT_SPEC
 #define ASM_DEFAULT_SPEC "-mppc64"
 
@@ -112,7 +109,7 @@ Boston, MA 02111-1307, USA.  */
 #undef  CPP_PREDEFINES
 #define CPP_PREDEFINES \
  "-D_PPC_ -D__PPC__ -D_PPC64_ -D__PPC64__ -D__powerpc__ -D__powerpc64__ \
-  -D_PIC_ -D__PIC__ -D_BIG_ENDIAN -D__BIG_ENDIAN__ -D__ELF__ \
+  -D_PIC_ -D__PIC__ -D__ELF__ \
   -D__LONG_MAX__=9223372036854775807L \
   -Acpu=powerpc64 -Amachine=powerpc64"
 
Index: config/rs6000/rs6000-c.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000-c.c,v
retrieving revision 1.2
diff -p -u -p -r1.2 rs6000-c.c
--- config/rs6000/rs6000-c.c	25 May 2002 22:01:52 -0000	1.2
+++ config/rs6000/rs6000-c.c	11 Jun 2002 22:53:40 -0000
@@ -69,3 +69,61 @@ rs6000_pragma_longcall (pfile)
 
   rs6000_default_long_calls = (n == integer_one_node);
 }
+
+/* Handle defining many CPP flags based on TARGET_xxx.  As a general
+   policy, rather than trying to guess what flags a user might want a
+   #define for, it's better to define a flag for everything.  */
+
+#define builtin_define(TXT) cpp_define (pfile, TXT)
+#define builtin_assert(TXT) cpp_assert (pfile, TXT)
+
+void
+rs6000_cpu_cpp_builtins (pfile)
+     cpp_reader *pfile;
+{
+  if (TARGET_POWER2)
+    builtin_define ("_ARCH_PWR2");
+  else if (TARGET_POWER)
+    builtin_define ("_ARCH_PWR");
+  if (TARGET_POWERPC)
+    builtin_define ("_ARCH_PPC");
+  if (TARGET_POWERPC64)
+    builtin_define ("_ARCH_PPC64");
+  if (! TARGET_POWER && ! TARGET_POWER2 && ! TARGET_POWERPC)
+    builtin_define ("_ARCH_COM");
+  if (TARGET_ALTIVEC)
+    builtin_define ("__ALTIVEC__");
+  if (TARGET_SOFT_FLOAT)
+    builtin_define ("_SOFT_FLOAT");
+  if (BYTES_BIG_ENDIAN)
+    {
+      builtin_define ("__BIG_ENDIAN__");
+      builtin_define ("_BIG_ENDIAN");
+      builtin_assert ("machine=bigendian");
+    }
+  else
+    {
+      builtin_define ("__LITTLE_ENDIAN__");
+      builtin_define ("_LITTLE_ENDIAN");
+      builtin_assert ("machine=littleendian");
+    }
+  if (TARGET_LONG_DOUBLE_128)
+    builtin_define ("__LONG_DOUBLE_128__");
+
+  switch (rs6000_current_abi)
+    {
+    case ABI_V4:
+      builtin_define ("_CALL_SYSV");
+      break;
+    case ABI_AIX_NODESC:
+      builtin_define ("_CALL_AIX");
+      break;
+    case ABI_AIX:
+      builtin_define ("_CALL_AIXDESC");
+      builtin_define ("_CALL_AIX");
+      break;
+    case ABI_DARWIN:
+      builtin_define ("_CALL_DARWIN");
+      break;
+    }
+}
Index: config/rs6000/rs6000-protos.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000-protos.h,v
retrieving revision 1.36
diff -p -u -p -r1.36 rs6000-protos.h
--- config/rs6000/rs6000-protos.h	19 May 2002 05:23:20 -0000	1.36
+++ config/rs6000/rs6000-protos.h	11 Jun 2002 22:53:40 -0000
@@ -183,8 +183,11 @@ extern void debug_stack_info PARAMS ((rs
 
 extern void machopic_output_stub PARAMS ((FILE *, const char *, const char *));
 
+/* Declare functions in rs6000-c.c */
+
 #ifdef GCC_CPPLIB_H
 extern void rs6000_pragma_longcall PARAMS ((cpp_reader *));
+extern void rs6000_cpu_cpp_builtins PARAMS ((cpp_reader *));
 #endif
 
 #endif  /* rs6000-protos.h */
Index: config/rs6000/rs6000.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000.h,v
retrieving revision 1.207
diff -p -u -p -r1.207 rs6000.h
--- config/rs6000/rs6000.h	9 Jun 2002 15:05:08 -0000	1.207
+++ config/rs6000/rs6000.h	11 Jun 2002 22:53:41 -0000
@@ -46,48 +46,6 @@ Boston, MA 02111-1307, USA.  */
 #define TARGET_CPU_DEFAULT ((char *)0)
 #endif
 
-/* Common CPP definitions used by CPP_SPEC among the various targets
-   for handling -mcpu=xxx switches.  */
-#define CPP_CPU_SPEC \
-"%{!mcpu*: \
-  %{mpower: %{!mpower2: -D_ARCH_PWR}} \
-  %{mpower2: -D_ARCH_PWR2} \
-  %{mpowerpc*: -D_ARCH_PPC} \
-  %{mno-power: %{!mpowerpc*: -D_ARCH_COM}} \
-  %{!mno-power: %{!mpower2: %(cpp_default)}}} \
-%{mcpu=common: -D_ARCH_COM} \
-%{mcpu=power: -D_ARCH_PWR} \
-%{mcpu=power2: -D_ARCH_PWR2} \
-%{mcpu=power3: -D_ARCH_PPC} \
-%{mcpu=power4: -D_ARCH_PPC} \
-%{mcpu=powerpc: -D_ARCH_PPC} \
-%{mcpu=rios: -D_ARCH_PWR} \
-%{mcpu=rios1: -D_ARCH_PWR} \
-%{mcpu=rios2: -D_ARCH_PWR2} \
-%{mcpu=rsc: -D_ARCH_PWR} \
-%{mcpu=rsc1: -D_ARCH_PWR} \
-%{mcpu=401: -D_ARCH_PPC} \
-%{mcpu=403: -D_ARCH_PPC} \
-%{mcpu=405: -D_ARCH_PPC} \
-%{mcpu=505: -D_ARCH_PPC} \
-%{mcpu=601: -D_ARCH_PPC -D_ARCH_PWR} \
-%{mcpu=602: -D_ARCH_PPC} \
-%{mcpu=603: -D_ARCH_PPC} \
-%{mcpu=603e: -D_ARCH_PPC} \
-%{mcpu=ec603e: -D_ARCH_PPC} \
-%{mcpu=604: -D_ARCH_PPC} \
-%{mcpu=604e: -D_ARCH_PPC} \
-%{mcpu=620: -D_ARCH_PPC} \
-%{mcpu=740: -D_ARCH_PPC} \
-%{mcpu=7400: -D_ARCH_PPC} \
-%{mcpu=7450: -D_ARCH_PPC} \
-%{mcpu=750: -D_ARCH_PPC} \
-%{mcpu=801: -D_ARCH_PPC} \
-%{mcpu=821: -D_ARCH_PPC} \
-%{mcpu=823: -D_ARCH_PPC} \
-%{mcpu=860: -D_ARCH_PPC} \
-%{maltivec: -D__ALTIVEC__}"
-
 /* Common ASM definitions used by ASM_SPEC among the various targets
    for handling -mcpu=xxx switches.  */
 #define ASM_CPU_SPEC \
@@ -148,7 +106,6 @@ Boston, MA 02111-1307, USA.  */
 #define SUBTARGET_EXTRA_SPECS
 
 #define EXTRA_SPECS							\
-  { "cpp_cpu",			CPP_CPU_SPEC },				\
   { "cpp_default",		CPP_DEFAULT_SPEC },			\
   { "asm_cpu",			ASM_CPU_SPEC },				\
   { "asm_default",		ASM_DEFAULT_SPEC },			\
@@ -494,15 +451,19 @@ extern int rs6000_default_long_calls;
 /* Define this to change the optimizations performed by default.  */
 #define OPTIMIZATION_OPTIONS(LEVEL,SIZE) optimization_options(LEVEL,SIZE)
 
+/* Show we can debug even without a frame pointer.  */
+#define CAN_DEBUG_WITHOUT_FP
+
 /* Target pragma.  */
 #define REGISTER_TARGET_PRAGMAS(PFILE) do { \
   cpp_register_pragma (PFILE, 0, "longcall", rs6000_pragma_longcall); \
 } while (0)
 
-/* Show we can debug even without a frame pointer.  */
-#define CAN_DEBUG_WITHOUT_FP
+/* Target #defines.  */
+#define TARGET_CPU_CPP_BUILTINS() \
+  rs6000_cpu_cpp_builtins (pfile)
 
-/* target machine storage layout */
+/* Target machine storage layout.  */
 
 /* Define this macro if it is advisable to hold scalars in registers
    in a wider mode than that declared by the program.  In such cases,
Index: config/rs6000/softfloat.h
===================================================================
RCS file: config/rs6000/softfloat.h
diff -N config/rs6000/softfloat.h
--- config/rs6000/softfloat.h	13 Nov 2001 22:08:28 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,24 +0,0 @@
-/* Target definitions for GNU compiler for PowerPC defaulting to -msoft-float
-   Copyright (C) 2001
-   Free Software Foundation, Inc.
-   Contributed by Red Hat Inc.
-
-This file is part of GNU CC.
-
-GNU CC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU CC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING.  If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
-
-#undef CPP_FLOAT_DEFAULT_SPEC
-#define CPP_FLOAT_DEFAULT_SPEC "-D_SOFT_FLOAT"
Index: config/rs6000/sysv4.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/sysv4.h,v
retrieving revision 1.96
diff -p -u -p -r1.96 sysv4.h
--- config/rs6000/sysv4.h	19 May 2002 07:55:42 -0000	1.96
+++ config/rs6000/sysv4.h	11 Jun 2002 22:53:41 -0000
@@ -34,10 +34,6 @@ Boston, MA 02111-1307, USA.  */
 #undef	ASM_DEFAULT_SPEC
 #define	ASM_DEFAULT_SPEC "-mppc"
 
-/* Override rs6000.h definition.  */
-#undef	CPP_DEFAULT_SPEC
-#define	CPP_DEFAULT_SPEC "-D_ARCH_PPC"
-
 /* Small data support types.  */
 enum rs6000_sdata_type {
   SDATA_NONE,			/* No small data support.  */
@@ -969,55 +965,11 @@ do {						\
 #define CPP_SYSV_SPEC \
 "%{mrelocatable*: -D_RELOCATABLE} \
 %{fpic: -D__PIC__=1 -D__pic__=1} \
-%{!fpic: %{fPIC: -D__PIC__=2 -D__pic__=2}} \
-%{mlong-double-128: -D__LONG_DOUBLE_128__=1} \
-%{!mlong-double-64: %(cpp_longdouble_default)} \
-%{mcall-sysv: -D_CALL_SYSV} \
-%{mcall-aix: -D_CALL_AIX} %{mcall-aixdesc: -D_CALL_AIX -D_CALL_AIXDESC} \
-%{!mcall-sysv: %{!mcall-aix: %{!mcall-aixdesc: %(cpp_sysv_default) }}} \
-%{msoft-float: -D_SOFT_FLOAT} \
-%{!msoft-float: %{!mhard-float: \
-    %{mcpu=401: -D_SOFT_FLOAT} \
-    %{mcpu=403: -D_SOFT_FLOAT} \
-    %{mcpu=405: -D_SOFT_FLOAT} \
-    %{mcpu=ec603e: -D_SOFT_FLOAT} \
-    %{mcpu=801: -D_SOFT_FLOAT} \
-    %{mcpu=821: -D_SOFT_FLOAT} \
-    %{mcpu=823: -D_SOFT_FLOAT} \
-    %{mcpu=860: -D_SOFT_FLOAT} \
-    %{!mcpu*: %(cpp_float_default) }}}"
-
-/* Whether floating point is disabled by default.  */
-#define	CPP_FLOAT_DEFAULT_SPEC ""
-
-/* Whether 'long double' is 128 bits by default.  */
-#define	CPP_LONGDOUBLE_DEFAULT_SPEC ""
-
-#define	CPP_SYSV_DEFAULT_SPEC "-D_CALL_SYSV"
-
-#define CPP_ENDIAN_BIG_SPEC "-D_BIG_ENDIAN -D__BIG_ENDIAN__ -Amachine=bigendian"
-
-#define CPP_ENDIAN_LITTLE_SPEC "-D_LITTLE_ENDIAN -D__LITTLE_ENDIAN__ -Amachine=littleendian"
-
-#define	CPP_ENDIAN_SPEC \
-"%{mlittle: %(cpp_endian_little) } \
-%{mlittle-endian: %(cpp_endian_little) } \
-%{mbig: %(cpp_endian_big) } \
-%{mbig-endian: %(cpp_endian_big) } \
-%{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \
-    %{mcall-freebsd: %(cpp_endian_big) } \
-    %{mcall-linux: %(cpp_endian_big) } \
-    %{mcall-gnu: %(cpp_endian_big) } \
-    %{mcall-netbsd: %(cpp_endian_big) } \
-    %{mcall-i960-old: %(cpp_endian_little) } \
-    %{mcall-aixdesc:  %(cpp_endian_big) } \
-    %{!mcall-linux: %{!mcall-gnu: %{!mcall-freebsd: %{!mcall-netbsd: %{!mcall-aixdesc: %(cpp_endian_default) }}}}}}}}}"
-
-#define	CPP_ENDIAN_DEFAULT_SPEC "%(cpp_endian_big)"
+%{!fpic: %{fPIC: -D__PIC__=2 -D__pic__=2}}"
 
 /* Override rs6000.h definition.  */
 #undef	CPP_SPEC
-#define	CPP_SPEC "%{posix: -D_POSIX_SOURCE} %(cpp_sysv) %(cpp_endian) %(cpp_cpu) \
+#define	CPP_SPEC "%{posix: -D_POSIX_SOURCE} %(cpp_sysv) \
 %{mads: %(cpp_os_ads) } \
 %{myellowknife: %(cpp_os_yellowknife) } \
 %{mmvme: %(cpp_os_mvme) } \
@@ -1323,9 +1275,6 @@ ncrtn.o%s"
 #undef	SUBTARGET_EXTRA_SPECS
 #define	SUBTARGET_EXTRA_SPECS						\
   { "cpp_sysv",			CPP_SYSV_SPEC },			\
-  { "cpp_sysv_default",		CPP_SYSV_DEFAULT_SPEC },		\
-  { "cpp_endian_default",	CPP_ENDIAN_DEFAULT_SPEC },		\
-  { "cpp_endian",		CPP_ENDIAN_SPEC },			\
   { "crtsavres_default",        CRTSAVRES_DEFAULT_SPEC },              \
   { "lib_ads",			LIB_ADS_SPEC },				\
   { "lib_yellowknife",		LIB_YELLOWKNIFE_SPEC },			\
@@ -1390,10 +1339,6 @@ ncrtn.o%s"
   { "cc1_endian_big",		CC1_ENDIAN_BIG_SPEC },			\
   { "cc1_endian_little",	CC1_ENDIAN_LITTLE_SPEC },		\
   { "cc1_endian_default",	CC1_ENDIAN_DEFAULT_SPEC },		\
-  { "cpp_endian_big",		CPP_ENDIAN_BIG_SPEC },			\
-  { "cpp_endian_little",	CPP_ENDIAN_LITTLE_SPEC },		\
-  { "cpp_float_default",	CPP_FLOAT_DEFAULT_SPEC },		\
-  { "cpp_longdouble_default",	CPP_LONGDOUBLE_DEFAULT_SPEC },		\
   { "cpp_os_ads",		CPP_OS_ADS_SPEC },			\
   { "cpp_os_yellowknife",	CPP_OS_YELLOWKNIFE_SPEC },		\
   { "cpp_os_mvme",		CPP_OS_MVME_SPEC },			\
Index: config/rs6000/sysv4le.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/sysv4le.h,v
retrieving revision 1.8
diff -p -u -p -r1.8 sysv4le.h
--- config/rs6000/sysv4le.h	10 Feb 2001 11:37:58 -0000	1.8
+++ config/rs6000/sysv4le.h	11 Jun 2002 22:53:41 -0000
@@ -23,9 +23,6 @@ Boston, MA 02111-1307, USA.  */
 #undef TARGET_DEFAULT
 #define TARGET_DEFAULT (MASK_POWERPC | MASK_NEW_MNEMONICS | MASK_LITTLE_ENDIAN)
 
-#undef	CPP_ENDIAN_DEFAULT_SPEC
-#define	CPP_ENDIAN_DEFAULT_SPEC "%(cpp_endian_little)"
-
 #undef	CC1_ENDIAN_DEFAULT_SPEC
 #define	CC1_ENDIAN_DEFAULT_SPEC "%(cc1_endian_little)"
 
Index: config/rs6000/vxppc.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/vxppc.h,v
retrieving revision 1.8
diff -p -u -p -r1.8 vxppc.h
--- config/rs6000/vxppc.h	2 Nov 2000 23:29:12 -0000	1.8
+++ config/rs6000/vxppc.h	11 Jun 2002 22:53:41 -0000
@@ -44,13 +44,6 @@ Boston, MA 02111-1307, USA.  */
 -D__vxworks -D__vxworks__ -Asystem=vxworks -Asystem=embedded \
 -Acpu=powerpc -Amachine=powerpc"
 
-/* Don't define _LITTLE_ENDIAN or _BIG_ENDIAN */
-#undef	CPP_ENDIAN_BIG_SPEC
-#define CPP_ENDIAN_BIG_SPEC "-D__BIG_ENDIAN__ -Amachine=bigendian"
-
-#undef	CPP_ENDIAN_LITTLE_SPEC
-#define CPP_ENDIAN_LITTLE_SPEC "-D__LITTLE_ENDIAN__ -Amachine=littleendian"
-
 /* We use stabs-in-elf for debugging */
 #undef PREFERRED_DEBUGGING_TYPE
 #define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
============================================================



More information about the Gcc-patches mailing list