This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]