This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
tidy powerpc64-linux options
- From: Alan Modra <amodra at bigpond dot net dot au>
- To: gcc-patches at gcc dot gnu dot org
- Cc: David Edelsohn <dje at watson dot ibm dot com>
- Date: Mon, 17 Mar 2003 13:32:10 +1030
- Subject: tidy powerpc64-linux options
Gets rid of a bunch of ppc32 options that are irrelevant or unimplemented
for ppc64: -mrelocatable, -mno-relocatable, -mrelocatable-lib,
-mno-relocatable-lib, -mno-toc, -mtoc, -mfull-toc, -mprototype,
-mno-prototype, -mno-traceback, -meabi, -mno-eabi, -msdata, -mno-sdata,
-msim, -mads, -myellowknife, -mmvme, -memb, -mwindiss, -mshlib, -mnewlib,
-mcall-*, -msdata=*. Clearing out CPP_SYSV_SPEC also fixes the __PIC__
redefined warnings.
* config/rs6000/linux64.h (TARGET_64BIT): Redefine.
(TARGET_RELOCATABLE, TARGET_EABI, TARGET_PROTOTYPE): Likewise.
(SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Likewise.
(SUBTARGET_OVERRIDE_OPTIONS, CPP_SYSV_SPEC): Likewise.
Regression tested powerpc64-linux.
diff -urpN gcc-ppc64-34.orig/gcc/config/rs6000/linux64.h gcc-ppc64-34/gcc/config/rs6000/linux64.h
--- gcc-ppc64-34.orig/gcc/config/rs6000/linux64.h 2003-03-13 21:03:03.000000000 +1030
+++ gcc-ppc64-34/gcc/config/rs6000/linux64.h 2003-03-17 10:01:57.000000000 +1030
@@ -45,12 +45,58 @@ Boston, MA 02111-1307, USA. */
%{mlittle} %{mlittle-endian} %{mbig} %{mbig-endian} \
%{v:-V} %{Qy:} %{!Qn:-Qy} -a64 %(asm_cpu) %{Wa,*:%*}"
+/* This is always a 64 bit compiler. */
+#undef TARGET_64BIT
+#define TARGET_64BIT 1
+
/* 64-bit PowerPC Linux always has a TOC. */
#undef TARGET_NO_TOC
#define TARGET_NO_TOC 0
#undef TARGET_TOC
#define TARGET_TOC 1
+/* Some things from sysv4.h we don't do. */
+#undef TARGET_RELOCATABLE
+#define TARGET_RELOCATABLE 0
+#undef TARGET_EABI
+#define TARGET_EABI 0
+#undef TARGET_PROTOTYPE
+#define TARGET_PROTOTYPE 0
+
+/* Override sysv4.h. */
+#undef SUBTARGET_SWITCHES
+#define SUBTARGET_SWITCHES \
+ {"bit-align", -MASK_NO_BITFIELD_TYPE, \
+ N_("Align to the base type of the bit-field") }, \
+ {"no-bit-align", MASK_NO_BITFIELD_TYPE, \
+ N_("Don't align to the base type of the bit-field") }, \
+ {"strict-align", MASK_STRICT_ALIGN, \
+ N_("Don't assume that unaligned accesses are handled by the system") }, \
+ {"no-strict-align", -MASK_STRICT_ALIGN, \
+ N_("Assume that unaligned accesses are handled by the system") }, \
+ {"little-endian", MASK_LITTLE_ENDIAN, \
+ N_("Produce little endian code") }, \
+ {"little", MASK_LITTLE_ENDIAN, \
+ N_("Produce little endian code") }, \
+ {"big-endian", -MASK_LITTLE_ENDIAN, \
+ N_("Produce big endian code") }, \
+ {"big", -MASK_LITTLE_ENDIAN, \
+ N_("Produce big endian code") }, \
+ {"bit-word", -MASK_NO_BITFIELD_WORD, \
+ N_("Allow bit-fields to cross word boundaries") }, \
+ {"no-bit-word", MASK_NO_BITFIELD_WORD, \
+ N_("Do not allow bit-fields to cross word boundaries") }, \
+ {"regnames", MASK_REGNAMES, \
+ N_("Use alternate register names") }, \
+ {"no-regnames", -MASK_REGNAMES, \
+ N_("Don't use alternate register names") },
+
+#undef SUBTARGET_OPTIONS
+#define SUBTARGET_OPTIONS
+
+#undef SUBTARGET_OVERRIDE_OPTIONS
+#define SUBTARGET_OVERRIDE_OPTIONS {}
+
/* We use glibc _mcount for profiling. */
#define NO_PROFILE_COUNTERS 1
#undef PROFILE_BEFORE_PROLOGUE
@@ -110,6 +156,10 @@ Boston, MA 02111-1307, USA. */
#undef MD_EXEC_PREFIX
#undef MD_STARTFILE_PREFIX
+/* Override sysv4.h */
+#undef CPP_SYSV_SPEC
+#define CPP_SYSV_SPEC ""
+
#undef TARGET_OS_CPP_BUILTINS
#define TARGET_OS_CPP_BUILTINS() \
do \
--
Alan Modra
IBM OzLabs - Linux Technology Centre