aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2003-03-17 03:47:16 +0000
committerAlan Modra <amodra@gcc.gnu.org>2003-03-17 14:17:16 +1030
commit7b3464eefed793556a367801d4c865f4c3423923 (patch)
treee6da52917bd7e99619b54b1901d70f20bfc54e12 /gcc
parent2b7f1f8f41666dc1d921e759ca80a24846f745fe (diff)
downloadgcc-7b3464eefed793556a367801d4c865f4c3423923.zip
gcc-7b3464eefed793556a367801d4c865f4c3423923.tar.gz
gcc-7b3464eefed793556a367801d4c865f4c3423923.tar.bz2
linux64.h (TARGET_64BIT): Redefine.
* 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. From-SVN: r64462
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/rs6000/linux64.h50
2 files changed, 57 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d96fbe4..45b693d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2003-03-17 Alan Modra <amodra@bigpond.net.au>
+
+ * 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.
+
2003-03-16 Richard Henderson <rth@redhat.com>
* simplify-rtx (simplify_binary_operation): Don't abort for
diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
index 494dc7a..14fa6ff 100644
--- a/gcc/config/rs6000/linux64.h
+++ b/gcc/config/rs6000/linux64.h
@@ -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 \