[PATCH] Further newppc-branch cleanups

Franz Sirl Franz.Sirl-kernel@lauterbach.com
Thu Jan 6 04:19:00 GMT 2000


Hi,

I just noticed that I didn't CC this one to the list. With Geoff's OK I
committed it to the newppc-branch.

Franz.

2000-01-05  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>

        * rs6000.h: Continue cleanup.
        * aix.h: Likewise.
        * lynx.h: Likewise.
        * netware.h: Likewise.
        * sol2.h: Likewise.
        * sysv4.h: Likewise.
        * win-nt.h: Likewise.

        * rs6000.h (TARGET_SWITCHES): Add descriptions.
        (TARGET_OPTIONS): Likewise.

        * sysv4.h (SUBTARGET_SWITCHES): Add descriptions.
        (SUBTARGET_OPTIONS): Likewise.

        * rs6000.md: Fix compile time warnings.

Index: aix.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/rs6000/Attic/aix.h,v
retrieving revision 1.1.2.1
diff -u -p -r1.1.2.1 aix.h
--- aix.h	2000/01/05 02:13:30	1.1.2.1
+++ aix.h	2000/01/05 16:26:58
@@ -23,9 +23,43 @@ Boston, MA 02111-1307, USA.  */
 #define DEFAULT_ABI ABI_AIX
 #define TARGET_OBJECT_FORMAT OBJECT_XCOFF
 
+/* The RS/6000 uses the XCOFF format.  */
+
+#define XCOFF_DEBUGGING_INFO
+
+/* Define if the object format being used is COFF or a superset.  */
+#define OBJECT_FORMAT_COFF
+
+/* Define the magic numbers that we recognize as COFF.
+ 
+    AIX 4.3 adds U803XTOCMAGIC (0757) for 64-bit objects, but collect2.c
+    does not include files in the correct order to conditionally define
+    the symbolic name in this macro.
+ 
+    The AIX linker accepts import/export files as object files,
+    so accept "#!" (0x2321) magic number.  */
+#define MY_ISCOFF(magic) \
+  ((magic) == U802WRMAGIC || (magic) == U802ROMAGIC \
+   || (magic) == U802TOCMAGIC || (magic) == 0757 || (magic) == 0x2321)
+
+/* This is the only version of nm that collect2 can work with.  */
+#define REAL_NM_FILE_NAME "/usr/ucb/nm"
+
+/* We don't have GAS for the RS/6000 yet, so don't write out special
+    .stabs in cc1plus.  */
+
+#define FASCIST_ASSEMBLER
+
+/* AIX does not have any init/fini or ctor/dtor sections, so create
+    static constructors and destructors as normal functions.  */
+/* #define ASM_OUTPUT_CONSTRUCTOR(file, name) */
+/* #define ASM_OUTPUT_DESTRUCTOR(file, name) */
+
 /* The prefix to add to user-visible assembler symbols. */
 #define USER_LABEL_PREFIX "."
 
+/* Don't turn -B into -L if the argument specifies a relative file name.  */
+#define RELATIVE_PREFIX_NOT_LINKDIR
 
 #define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME)	\
 { rtx _symref = XEXP (DECL_RTL (DECL), 0);	\
Index: lynx.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/rs6000/lynx.h,v
retrieving revision 1.2
diff -u -p -r1.2 lynx.h
--- lynx.h	1998/12/16 21:12:00	1.2
+++ lynx.h	2000/01/05 16:26:59
@@ -1,5 +1,5 @@
 /* Definitions for Rs6000 running LynxOS.
-   Copyright (C) 1995, 1996 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1996, 2000 Free Software Foundation, Inc.
    Contributed by David Henkel-Wallace, Cygnus Support (gumby@cygnus.com)
 
 This file is part of GNU CC.
@@ -96,7 +96,6 @@ do {								\
 #undef OBJECT_FORMAT_ROSE
 #undef MD_EXEC_PREFIX
 #undef REAL_LD_FILE_NAME
-#undef REAL_NM_FILE_NAME
 #undef REAL_STRIP_FILE_NAME
 
 /* LynxOS doesn't have mcount. */
Index: netware.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/rs6000/netware.h,v
retrieving revision 1.4
diff -u -p -r1.4 netware.h
--- netware.h	1999/01/11 13:34:10	1.4
+++ netware.h	2000/01/05 16:26:59
@@ -1,6 +1,6 @@
 /* Core target definitions for GNU compiler
    for IBM RS/6000 PowerPC running NetWare
-   Copyright (C) 1994, 1995, 1996, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1994, 1995, 1996, 1998, 2000 Free Software Foundation, Inc.
    Contributed by Cygnus Support.
 
 This file is part of GNU CC.
@@ -33,14 +33,6 @@ Boston, MA 02111-1307, USA.  */
 
 #undef PROCESSOR_DEFAULT
 #define PROCESSOR_DEFAULT PROCESSOR_PPC601
-
-/* Don't generate XCOFF debugging information.  */
-
-#undef XCOFF_DEBUGGING_INFO
-
-/* Don't use the COFF object file format.  */
-
-#undef OBJECT_FORMAT_COFF
 
 /* The XCOFF support uses weird symbol suffixes, which we don't want
    for ELF.  */
Index: rs6000.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/rs6000/rs6000.h,v
retrieving revision 1.64.2.1
diff -u -p -r1.64.2.1 rs6000.h
--- rs6000.h	2000/01/05 02:13:30	1.64.2.1
+++ rs6000.h	2000/01/05 16:27:11
@@ -200,9 +200,6 @@ Boston, MA 02111-1307, USA.  */
 /* gcc must do the search itself to find libgcc.a, not use -l.  */
 #define LIBGCC_SPEC "libgcc.a%s"
 
-/* Don't turn -B into -L if the argument specifies a relative file name.  */
-#define RELATIVE_PREFIX_NOT_LINKDIR
-
 /* Architecture type.  */
 
 extern int target_flags;
@@ -307,50 +304,89 @@ extern int target_flags;
    An empty string NAME is used to identify the default VALUE.  */
 
 #define TARGET_SWITCHES							\
- {{"power",		MASK_POWER  | MASK_MULTIPLE | MASK_STRING},	\
+ {{"power",		MASK_POWER  | MASK_MULTIPLE | MASK_STRING,	\
+			"Use POWER instruction set"},			\
   {"power2",		(MASK_POWER | MASK_MULTIPLE | MASK_STRING	\
-			 | MASK_POWER2)},				\
-  {"no-power2",		- MASK_POWER2},					\
+			 | MASK_POWER2),				\
+			"Use POWER2 instruction set"},			\
+  {"no-power2",		- MASK_POWER2,					\
+			"Do not use POWER2 instruction set"},		\
   {"no-power",		- (MASK_POWER | MASK_POWER2 | MASK_MULTIPLE	\
-			   | MASK_STRING)},				\
-  {"powerpc",		MASK_POWERPC},					\
+			   | MASK_STRING),				\
+			"Do not use POWER instruction set"},		\
+  {"powerpc",		MASK_POWERPC,					\
+			"Use PowerPC instruction set"},			\
   {"no-powerpc",	- (MASK_POWERPC | MASK_PPC_GPOPT		\
-			   | MASK_PPC_GFXOPT | MASK_POWERPC64)},	\
-  {"powerpc-gpopt",	MASK_POWERPC | MASK_PPC_GPOPT},			\
-  {"no-powerpc-gpopt",	- MASK_PPC_GPOPT},				\
-  {"powerpc-gfxopt",	MASK_POWERPC | MASK_PPC_GFXOPT},		\
-  {"no-powerpc-gfxopt",	- MASK_PPC_GFXOPT},				\
-  {"powerpc64",		MASK_POWERPC64},				\
-  {"no-powerpc64",	- MASK_POWERPC64},				\
-  {"new-mnemonics",	MASK_NEW_MNEMONICS},				\
-  {"old-mnemonics",	-MASK_NEW_MNEMONICS},				\
+			   | MASK_PPC_GFXOPT | MASK_POWERPC64),		\
+			"Do not use PowerPC instruction set"},		\
+  {"powerpc-gpopt",	MASK_POWERPC | MASK_PPC_GPOPT,			\
+			"Use PowerPC General Purpose group optional instructions"},\
+  {"no-powerpc-gpopt",	- MASK_PPC_GPOPT,				\
+			"Don't use PowerPC General Purpose group optional instructions"},\
+  {"powerpc-gfxopt",	MASK_POWERPC | MASK_PPC_GFXOPT,			\
+			"Use PowerPC Graphics group optional instructions"},\
+  {"no-powerpc-gfxopt",	- MASK_PPC_GFXOPT,				\
+			"Don't use PowerPC Graphics group optional instructions"},\
+  {"powerpc64",		MASK_POWERPC64,					\
+			"Use PowerPC-64 instruction set"},		\
+  {"no-powerpc64",	- MASK_POWERPC64,				\
+			"Don't use PowerPC-64 instruction set"},	\
+  {"new-mnemonics",	MASK_NEW_MNEMONICS,				\
+			"Use new mnemonics for PowerPC architecture"},	\
+  {"old-mnemonics",	-MASK_NEW_MNEMONICS,				\
+			"Use old mnemonics for PowerPC architecture"},	\
   {"full-toc",		- (MASK_NO_FP_IN_TOC | MASK_NO_SUM_IN_TOC	\
-			   | MASK_MINIMAL_TOC)},			\
-  {"fp-in-toc",		- MASK_NO_FP_IN_TOC},				\
-  {"no-fp-in-toc",	MASK_NO_FP_IN_TOC},				\
-  {"sum-in-toc",	- MASK_NO_SUM_IN_TOC},				\
-  {"no-sum-in-toc",	MASK_NO_SUM_IN_TOC},				\
-  {"minimal-toc",	MASK_MINIMAL_TOC},				\
-  {"minimal-toc",	- (MASK_NO_FP_IN_TOC | MASK_NO_SUM_IN_TOC)},	\
-  {"no-minimal-toc",	- MASK_MINIMAL_TOC},				\
-  {"hard-float",	- MASK_SOFT_FLOAT},				\
-  {"soft-float",	MASK_SOFT_FLOAT},				\
-  {"multiple",		MASK_MULTIPLE | MASK_MULTIPLE_SET},		\
-  {"no-multiple",	- MASK_MULTIPLE},				\
-  {"no-multiple",	MASK_MULTIPLE_SET},				\
-  {"string",		MASK_STRING | MASK_STRING_SET},			\
-  {"no-string",		- MASK_STRING},					\
-  {"no-string",		MASK_STRING_SET},				\
-  {"update",		- MASK_NO_UPDATE},				\
-  {"no-update",		MASK_NO_UPDATE},				\
-  {"fused-madd",	- MASK_NO_FUSED_MADD},				\
-  {"no-fused-madd",	MASK_NO_FUSED_MADD},				\
-  {"sched-prolog",      MASK_SCHED_PROLOG},                             \
-  {"no-sched-prolog",   -MASK_SCHED_PROLOG},                            \
-  {"sched-epilog",      MASK_SCHED_EPILOG},                             \
-  {"no-sched-epilog",   -MASK_SCHED_EPILOG},                            \
+			   | MASK_MINIMAL_TOC),				\
+			"no description yet"},				\
+  {"fp-in-toc",		- MASK_NO_FP_IN_TOC,				\
+			"Place floating point constants in TOC"},	\
+  {"no-fp-in-toc",	MASK_NO_FP_IN_TOC,				\
+			"Don't place floating point constants in TOC"},	\
+  {"sum-in-toc",	- MASK_NO_SUM_IN_TOC,				\
+			"Place symbol+offset constants in TOC"},	\
+  {"no-sum-in-toc",	MASK_NO_SUM_IN_TOC,				\
+			"Don't place symbol+offset constants in TOC"},	\
+  {"minimal-toc",	MASK_MINIMAL_TOC,				\
+			"no description yet"},				\
+  {"minimal-toc",	- (MASK_NO_FP_IN_TOC | MASK_NO_SUM_IN_TOC),	\
+			"no description yet"},				\
+  {"no-minimal-toc",	- MASK_MINIMAL_TOC,				\
+			"no description yet"},				\
+  {"hard-float",	- MASK_SOFT_FLOAT,				\
+			"Use hardware fp"},				\
+  {"soft-float",	MASK_SOFT_FLOAT,				\
+			"Do not use hardware fp"},			\
+  {"multiple",		MASK_MULTIPLE | MASK_MULTIPLE_SET,		\
+			"Generate load/store multiple instructions"},	\
+  {"no-multiple",	- MASK_MULTIPLE,				\
+			"Do not generate load/store multiple instructions"},\
+  {"no-multiple",	MASK_MULTIPLE_SET,				\
+			"Do not generate load/store multiple instructions"},\
+  {"string",		MASK_STRING | MASK_STRING_SET,			\
+			"Generate string instructions for block moves"},\
+  {"no-string",		- MASK_STRING,					\
+			"Do not generate string instructions for block moves"},\
+  {"no-string",		MASK_STRING_SET,				\
+			"Do not generate string instructions for block moves"},\
+  {"update",		- MASK_NO_UPDATE,				\
+			"Generate load/store with update instructions"},\
+  {"no-update",		MASK_NO_UPDATE,					\
+			"Do not generate load/store with update instructions"},\
+  {"fused-madd",	- MASK_NO_FUSED_MADD,				\
+			"Generate fused multiply/add instructions"},	\
+  {"no-fused-madd",	MASK_NO_FUSED_MADD,				\
+			"Don't generate fused multiply/add instructions"},\
+  {"sched-prolog",      MASK_SCHED_PROLOG,                              \
+			"no description yet"},				\
+  {"no-sched-prolog",   -MASK_SCHED_PROLOG,                             \
+			"no description yet"},				\
+  {"sched-epilog",      MASK_SCHED_EPILOG,                              \
+			"no description yet"},				\
+  {"no-sched-epilog",   -MASK_SCHED_EPILOG,                             \
+			"no description yet"},				\
   SUBTARGET_SWITCHES							\
-  {"",			TARGET_DEFAULT}}
+  {"",			TARGET_DEFAULT,					\
+			""}}
 
 #define TARGET_DEFAULT (MASK_POWER | MASK_MULTIPLE | MASK_STRING)
 
@@ -413,13 +449,13 @@ extern enum processor_type rs6000_cpu;
 /* This is meant to be overridden in target specific files.  */
 #define	SUBTARGET_OPTIONS
 
-#define TARGET_OPTIONS				\
-{						\
-   {"cpu=",  &rs6000_select[1].string},		\
-   {"tune=", &rs6000_select[2].string},		\
-   {"debug-", &rs6000_debug_name},		\
-   {"debug=", &rs6000_debug_name},		\
-   SUBTARGET_OPTIONS				\
+#define TARGET_OPTIONS							\
+{									\
+   {"cpu=",  &rs6000_select[1].string, "Use features of and schedule code for given CPU" },\
+   {"tune=", &rs6000_select[2].string, "Schedule code for given CPU" },	\
+   {"debug-", &rs6000_debug_name, "Enable debug output" },		\
+   {"debug=", &rs6000_debug_name, "Enable debug output" },		\
+   SUBTARGET_OPTIONS							\
 }
 
 /* rs6000_select[0] is reserved for the default cpu defined via --with-cpu */
@@ -2159,38 +2195,6 @@ do {                                    
 /* Define if loading short immediate values into registers sign extends.  */
 #define SHORT_IMMEDIATES_SIGN_EXTEND
 
-/* The RS/6000 uses the XCOFF format.  */
-
-#define XCOFF_DEBUGGING_INFO
-
-/* Define if the object format being used is COFF or a superset.  */
-#define OBJECT_FORMAT_COFF
-
-/* Define the magic numbers that we recognize as COFF.
-
-   AIX 4.3 adds U803XTOCMAGIC (0757) for 64-bit objects, but collect2.c
-   does not include files in the correct order to conditionally define
-   the symbolic name in this macro. 
-
-   The AIX linker accepts import/export files as object files,
-   so accept "#!" (0x2321) magic number.  */
-#define MY_ISCOFF(magic) \
-  ((magic) == U802WRMAGIC || (magic) == U802ROMAGIC \
-   || (magic) == U802TOCMAGIC || (magic) == 0757 || (magic) == 0x2321)
-
-/* This is the only version of nm that collect2 can work with.  */
-#define REAL_NM_FILE_NAME "/usr/ucb/nm"
-
-/* We don't have GAS for the RS/6000 yet, so don't write out special
-   .stabs in cc1plus.  */
-
-#define FASCIST_ASSEMBLER
-
-/* AIX does not have any init/fini or ctor/dtor sections, so create
-   static constructors and destructors as normal functions.  */
-/* #define ASM_OUTPUT_CONSTRUCTOR(file, name) */
-/* #define ASM_OUTPUT_DESTRUCTOR(file, name) */
-
 /* Value is 1 if truncating an integer of INPREC bits to OUTPREC bits
    is done just by pretending it is already truncated.  */
 #define TRULY_NOOP_TRUNCATION(OUTPREC, INPREC) 1
Index: rs6000.md
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/rs6000/rs6000.md,v
retrieving revision 1.79.2.2
diff -u -p -r1.79.2.2 rs6000.md
--- rs6000.md	2000/01/04 22:44:54	1.79.2.2
+++ rs6000.md	2000/01/05 16:27:18
@@ -4196,7 +4196,7 @@
    (use (match_operand:SI 2 "gpc_reg_operand" "r"))
    (use (match_operand:DF 3 "gpc_reg_operand" "f"))
    (clobber (match_operand:SI 4 "gpc_reg_operand" "=r"))
-   (clobber (match_operand 5 "gpc_reg_operand" "=b"))
+   (clobber (match_operand:SI 5 "gpc_reg_operand" "=b"))
    (clobber (reg:DF 76))]
   "! TARGET_POWERPC64 && TARGET_HARD_FLOAT"
   "#"
@@ -4255,7 +4255,7 @@
 	(unsigned_float:DF (match_operand:SI 1 "gpc_reg_operand" "r")))
    (use (match_operand:SI 2 "gpc_reg_operand" "r"))
    (use (match_operand:DF 3 "gpc_reg_operand" "f"))
-   (clobber (match_operand 4 "gpc_reg_operand" "=b"))
+   (clobber (match_operand:SI 4 "gpc_reg_operand" "=b"))
    (clobber (reg:DF 76))]
   "! TARGET_POWERPC64 && TARGET_HARD_FLOAT"
   "#"
@@ -4288,7 +4288,7 @@
 
 ;; Load up scratch register with base address + offset if needed
 (define_insn "*floatsidf2_loadaddr"
-  [(set (match_operand 0 "gpc_reg_operand" "=b")
+  [(set (match_operand:SI 0 "gpc_reg_operand" "=b")
 	(unspec [(const_int 0)] 11))]
   "TARGET_HARD_FLOAT"
   "*
@@ -4310,7 +4310,7 @@
 (define_insn "*floatsidf2_store1"
   [(set (reg:DF 76)
 	(unspec [(match_operand:SI 0 "gpc_reg_operand" "r")
-		 (match_operand 1 "gpc_reg_operand" "b")] 12))]
+		 (match_operand:SI 1 "gpc_reg_operand" "b")] 12))]
   "TARGET_HARD_FLOAT"
   "*
 {
@@ -4337,7 +4337,7 @@
 (define_insn "*floatsidf2_store2"
   [(set (reg:DF 76)
 	(unspec [(match_operand:SI 0 "gpc_reg_operand" "r")
-		 (match_operand 1 "gpc_reg_operand" "b")
+		 (match_operand:SI 1 "gpc_reg_operand" "b")
 		 (reg:DF 76)] 13))]
   "TARGET_HARD_FLOAT"
   "*
@@ -4365,7 +4365,7 @@
 (define_insn "*floatsidf2_load"
   [(set (match_operand:DF 0 "gpc_reg_operand" "=f")
 	(unspec [(reg:DF 76)
-		 (match_operand 1 "gpc_reg_operand" "b")] 14))]
+		 (match_operand:SI 1 "gpc_reg_operand" "b")] 14))]
   "TARGET_HARD_FLOAT"
   "*
 {
@@ -4413,7 +4413,7 @@
   [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
 	(fix:SI (match_operand:DF 1 "gpc_reg_operand" "f")))
    (clobber (match_operand:DI 2 "gpc_reg_operand" "=f"))
-   (clobber (match_operand 3 "gpc_reg_operand" "=b"))
+   (clobber (match_operand:SI 3 "gpc_reg_operand" "=b"))
    (clobber (reg:DI 76))]
   "TARGET_HARD_FLOAT"
   "#"
@@ -4442,7 +4442,7 @@
 (define_insn "*fix_truncdfsi2_store"
   [(set (reg:DI 76)
 	(unspec [(match_operand:DI 0 "gpc_reg_operand" "f")
-		 (match_operand 1 "gpc_reg_operand" "b")] 15))]
+		 (match_operand:SI 1 "gpc_reg_operand" "b")] 15))]
   "(TARGET_POWER2 || TARGET_POWERPC) && TARGET_HARD_FLOAT"
   "*
 {
@@ -4467,7 +4467,7 @@
 (define_insn "*fix_truncdfsi2_load"
   [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
 	(unspec [(reg:DI 76)
-		 (match_operand 1 "gpc_reg_operand" "b")] 16))]
+		 (match_operand:SI 1 "gpc_reg_operand" "b")] 16))]
   "(TARGET_POWER2 || TARGET_POWERPC) && TARGET_HARD_FLOAT"
   "*
 {
@@ -6927,7 +6927,7 @@
 	(match_operand:DI 1 "const_int_operand" ""))]
   "HOST_BITS_PER_WIDE_INT != 32 && TARGET_POWERPC64
    && GET_CODE (operands[1]) == CONST_INT
-   && INTVAL (operands[1]) & 0xffffffff == 0"
+   && (INTVAL (operands[1]) & 0xffffffff) == 0"
   [(set (match_dup 0)
 	(match_dup 2))
    (set (match_dup 0)
@@ -11081,7 +11081,7 @@
 				       (const_int 1)])
 		      (match_operand 5 "" "")
 		      (match_operand 6 "" "")))
-   (set (match_operand:SI 0 "general_operand" "")
+   (set (match_operand:SI 0 "nonimmediate_operand" "")
 	(plus:SI (match_dup 1) (const_int -1)))
    (clobber (match_scratch:CC 3 ""))
    (clobber (match_scratch:SI 4 ""))]
@@ -11136,7 +11136,7 @@
 				       (const_int 1)])
 		      (match_operand 5 "" "")
 		      (match_operand 6 "" "")))
-   (set (match_operand:DI 0 "general_operand" "")
+   (set (match_operand:DI 0 "nonimmediate_operand" "")
 	(plus:DI (match_dup 1) (const_int -1)))
    (clobber (match_scratch:CC 3 ""))
    (clobber (match_scratch:DI 4 ""))]
Index: sol2.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/rs6000/sol2.h,v
retrieving revision 1.4
diff -u -p -r1.4 sol2.h
--- sol2.h	1999/08/10 13:25:23	1.4
+++ sol2.h	2000/01/05 16:27:19
@@ -1,6 +1,6 @@
 /* Definitions of target machine for GNU compiler,
    for IBM RS/6000 running AIX version 3.1.
-   Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 2000 Free Software Foundation, Inc.
    Contributed by David Reese (Dave.Reese@East.Sun.COM)
 
 This file is part of GNU CC.
@@ -64,9 +64,6 @@ Boston, MA 02111-1307, USA.  */
 
 #undef	CPP_ENDIAN_LITTLE_SPEC
 #define	CPP_ENDIAN_LITTLE_SPEC CPP_ENDIAN_SOLARIS_SPEC
-
-/* Don't turn -B into -L if the argument specifies a relative file name.  */
-#undef	RELATIVE_PREFIX_NOT_LINKDIR
 
 #define	DEFAULT_PCC_STRUCT_RETURN 0
 
Index: sysv4.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/rs6000/sysv4.h,v
retrieving revision 1.23.4.2
diff -u -p -r1.23.4.2 sysv4.h
--- sysv4.h	2000/01/05 03:00:41	1.23.4.2
+++ sysv4.h	2000/01/05 16:27:20
@@ -21,6 +21,17 @@ Boston, MA 02111-1307, USA.  */
 
 #include "rs6000/rs6000.h"
 
+/* Undefine some things which are defined by the generic svr4.h.  */
+
+#undef ASM_FILE_END
+#undef READONLY_DATA_SECTION
+#undef SELECT_SECTION
+#undef ASM_DECLARE_FUNCTION_NAME
+
+/* Use the regular svr4 definitions.  */
+
+#include "svr4.h"
+
 /* Yes!  We are ELF.  */
 #define	TARGET_OBJECT_FORMAT OBJECT_ELF
 
@@ -30,9 +41,11 @@ Boston, MA 02111-1307, USA.  */
 /* Default ABI to use */
 #define RS6000_ABI_NAME "sysv"
 
+/* override rs6000.h definition */
 #undef ASM_DEFAULT_SPEC
 #define ASM_DEFAULT_SPEC "-mppc"
 
+/* override rs6000.h definition */
 #undef CPP_DEFAULT_SPEC
 #define CPP_DEFAULT_SPEC "-D_ARCH_PPC"
 
@@ -79,58 +92,57 @@ extern enum rs6000_sdata_type rs6000_sda
 extern const char *rs6000_abi_name;
 extern const char *rs6000_sdata_name;
 
+/* override rs6000.h definition */
 #undef SUBTARGET_OPTIONS
 #define SUBTARGET_OPTIONS						\
-  { "call-",  &rs6000_abi_name},					\
-  { "sdata=", &rs6000_sdata_name}
+  { "call-",  &rs6000_abi_name, "Select ABI calling convention." },			\
+  { "sdata=", &rs6000_sdata_name, "Select method for sdata handling." }
 
 /* Max # of bytes for variables to automatically be put into the .sdata
    or .sdata2 sections.  */
 extern int g_switch_value;		/* value of the -G xx switch */
 extern int g_switch_set;		/* whether -G xx was passed.  */
 
-#ifndef SDATA_DEFAULT_SIZE
 #define SDATA_DEFAULT_SIZE 8
-#endif
 
 /* Note, V.4 no longer uses a normal TOC, so make -mfull-toc, be just
    the same as -mminimal-toc.  */
 #undef	SUBTARGET_SWITCHES
 #define SUBTARGET_SWITCHES						\
-  { "bit-align",	-MASK_NO_BITFIELD_TYPE },			\
-  { "no-bit-align",	 MASK_NO_BITFIELD_TYPE },			\
-  { "strict-align",	 MASK_STRICT_ALIGN },				\
-  { "no-strict-align",	-MASK_STRICT_ALIGN },				\
-  { "relocatable",	 MASK_RELOCATABLE | MASK_MINIMAL_TOC | MASK_NO_FP_IN_TOC }, \
-  { "no-relocatable",	-MASK_RELOCATABLE },				\
-  { "relocatable-lib",	 MASK_RELOCATABLE | MASK_MINIMAL_TOC | MASK_NO_FP_IN_TOC }, \
-  { "no-relocatable-lib", -MASK_RELOCATABLE },				\
-  { "little-endian",	 MASK_LITTLE_ENDIAN },				\
-  { "little",		 MASK_LITTLE_ENDIAN },				\
-  { "big-endian",	-MASK_LITTLE_ENDIAN },				\
-  { "big",		-MASK_LITTLE_ENDIAN },				\
-  { "no-toc",		 0 },						\
-  { "toc",		 MASK_MINIMAL_TOC },				\
-  { "full-toc",		 MASK_MINIMAL_TOC },				\
-  { "prototype",	 MASK_PROTOTYPE },				\
-  { "no-prototype",	-MASK_PROTOTYPE },				\
-  { "no-traceback",	 0 },						\
-  { "eabi",		 MASK_EABI },					\
-  { "no-eabi",		-MASK_EABI },					\
-  { "regnames",		  MASK_REGNAMES },				\
-  { "no-regnames",	 -MASK_REGNAMES },				\
-  { "sdata",		 0 },						\
-  { "no-sdata",		 0 },						\
-  { "sim",		 0 },						\
-  { "ads",		 0 },						\
-  { "yellowknife",	 0 },						\
-  { "mvme",		 0 },						\
-  { "emb",		 0 },						\
-  { "vxworks",		 0 },						\
-  { "solaris-cclib",	 0 },						\
-  { "shlib",		 0 },						\
-  EXTRA_SUBTARGET_SWITCHES                                              \
-  { "newlib",		 0 },
+  { "bit-align",	-MASK_NO_BITFIELD_TYPE, "Align to the base type of the bitfield." },\
+  { "no-bit-align",	 MASK_NO_BITFIELD_TYPE, "Don't align to the base type of the bitfield." },\
+  { "strict-align",	 MASK_STRICT_ALIGN, "Don't assume that unaligned accesses are handled by the system" },\
+  { "no-strict-align",	-MASK_STRICT_ALIGN, "Assume that unaligned accesses are handled by the system" },\
+  { "relocatable",	 MASK_RELOCATABLE | MASK_MINIMAL_TOC | MASK_NO_FP_IN_TOC, "Produce code relocatable at runtime." },\
+  { "no-relocatable",	-MASK_RELOCATABLE, "Don't produce code relocatable at runtime." },\
+  { "relocatable-lib",	 MASK_RELOCATABLE | MASK_MINIMAL_TOC | MASK_NO_FP_IN_TOC, "Produce code relocatable at runtime." },\
+  { "no-relocatable-lib", -MASK_RELOCATABLE, "Don't produce code relocatable at runtime." },\
+  { "little-endian",	 MASK_LITTLE_ENDIAN, "Produce little endian code." },	\
+  { "little",		 MASK_LITTLE_ENDIAN, "Produce little endian code." },	\
+  { "big-endian",	-MASK_LITTLE_ENDIAN, "Produce big endian code." },	\
+  { "big",		-MASK_LITTLE_ENDIAN, "Produce big endian code." },	\
+  { "no-toc",		 0, "no description yet" },				\
+  { "toc",		 MASK_MINIMAL_TOC, "no description yet" },		\
+  { "full-toc",		 MASK_MINIMAL_TOC, "no description yet" },		\
+  { "prototype",	 MASK_PROTOTYPE, "no description yet" },		\
+  { "no-prototype",	-MASK_PROTOTYPE, "no description yet" },		\
+  { "no-traceback",	 0, "no description yet" },				\
+  { "eabi",		 MASK_EABI, "Use EABI." },				\
+  { "no-eabi",		-MASK_EABI, "Don't use EABI." },			\
+  { "regnames",		  MASK_REGNAMES, "Use alternate register names." },	\
+  { "no-regnames",	 -MASK_REGNAMES, "Don't use alternate register names." },\
+  { "sdata",		 0, "no description yet" },				\
+  { "no-sdata",		 0, "no description yet" },				\
+  { "sim",		 0, "Link with libsim.a, libc.a and sim-crt0.o." },	\
+  { "ads",		 0, "Link with libads.a, libc.a and crt0.o." },		\
+  { "yellowknife",	 0, "Link with libyk.a, libc.a and crt0.o." },		\
+  { "mvme",		 0, "Link with libmvme.a, libc.a and crt0.o." },	\
+  { "emb",		 0, "Set the PPC_EMB bit in the ELF flags header" },	\
+  { "vxworks",		 0, "no description yet" },				\
+  { "solaris-cclib",	 0, "no description yet" },				\
+  { "shlib",		 0, "no description yet" },				\
+  EXTRA_SUBTARGET_SWITCHES							\
+  { "newlib",		 0, "no description yet" },
 
 /* This is meant to be redefined in the host dependent files */
 #define EXTRA_SUBTARGET_SWITCHES
@@ -329,37 +341,10 @@ do {									\
 #undef	FP_SAVE_INLINE
 #define FP_SAVE_INLINE(FIRST_REG) ((FIRST_REG) < 64)
 
-/* Don't generate XCOFF debugging information.  */
-
-#undef XCOFF_DEBUGGING_INFO
-
-/* Don't use the COFF object file format.  */
-
-#undef OBJECT_FORMAT_COFF
-
 /* Put jump tables in read-only memory, rather than in .text.  */
 #undef JUMP_TABLES_IN_TEXT_SECTION
 #define JUMP_TABLES_IN_TEXT_SECTION 0
 
-/* Disable AIX-ism that disables turning -B into -L if the argument specifies a
-   relative file name.  This breaks setting GCC_EXEC_PREFIX to D:\path under
-   Windows.  */
-#undef RELATIVE_PREFIX_NOT_LINKDIR
-
-/* Undefine some things which are defined by the generic svr4.h.  */
-
-#undef ASM_FILE_END
-#undef ASM_OUTPUT_EXTERNAL_LIBCALL
-#undef READONLY_DATA_SECTION
-#undef SELECT_SECTION
-#undef ASM_DECLARE_FUNCTION_NAME
-#undef ASM_OUTPUT_CONSTRUCTOR
-#undef ASM_OUTPUT_DESTRUCTOR
-
-/* Use the regular svr4 definitions.  */
-
-#include "svr4.h"
-
 /* Prefix and suffix to use to saving floating point */
 #define	SAVE_FP_PREFIX "_savefpr_"
 #define SAVE_FP_SUFFIX "_l"
@@ -688,13 +673,9 @@ extern int rs6000_pic_labelno;
    the linker seems to want the alignment of data objects
    to depend on their types.  We do exactly that here.  */
 
-#ifndef LOCAL_ASM_OP
 #define LOCAL_ASM_OP	".local"
-#endif
 
-#ifndef LCOMM_ASM_OP
 #define LCOMM_ASM_OP	".lcomm"
-#endif
 
 #undef ASM_OUTPUT_ALIGNED_LOCAL
 #define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGN)		\
@@ -802,6 +783,40 @@ do {									\
     }									\
 } while (0)
 
+
+/* This is how to output an assembler line defining an address 
+   constant for the dwarf call unwinding information.
+   For -mrelocatable, we mark all addresses that need to be fixed up
+   in the .fixup section.  */
+
+extern int dwarflabelno;
+
+#undef	ASM_OUTPUT_DWARF_ADDR
+#define ASM_OUTPUT_DWARF_ADDR(FILE,LABEL)		                \
+do {									\
+  if ((TARGET_RELOCATABLE || flag_pic))					\
+    {									\
+      char buf[256], *p;						\
+									\
+      ASM_GENERATE_INTERNAL_LABEL (buf, "LCDW", dwarflabelno++);	\
+      STRIP_NAME_ENCODING (p, buf);					\
+      fprintf (FILE, "%s:\n", p);					\
+      fprintf (FILE, "\t.4byte\t");					\
+      assemble_name (FILE, LABEL);      				\
+      fprintf (FILE, "\n");					        \
+      fprintf (FILE, "\t.section \".fixup\",\"aw\"\n");			\
+      ASM_OUTPUT_ALIGN (FILE, 2);					\
+      fprintf (FILE, "\t.long\t%s\n", p);				\
+      fprintf (FILE, "\t.previous\n");					\
+    }									\
+  else                                                                  \
+    {									\
+      fprintf (FILE, "\t.4byte\t");                                     \
+      assemble_name (FILE, LABEL);                                      \
+      fprintf (FILE, "\n");					        \
+    }									\
+} while (0)
+
 /* This is the end of what might become sysv4.h.  */
 
 /* Allow stabs and dwarf, for now, make stabs the default debugging type,
@@ -971,20 +986,14 @@ do {									\
     %{mcall-solaris: -mlittle -msolaris} \
     %{mcall-linux: -mbig} }}}}"
 
-#ifndef CC1_ENDIAN_BIG_SPEC
 #define CC1_ENDIAN_BIG_SPEC ""
-#endif
 
-#ifndef CC1_ENDIAN_LITTLE_SPEC
 #define CC1_ENDIAN_LITTLE_SPEC "\
 %{!mstrict-align: %{!mno-strict-align: \
 	-mstrict-align \
 }}"
-#endif
 
-#ifndef CC1_ENDIAN_DEFAULT_SPEC
 #define CC1_ENDIAN_DEFAULT_SPEC "%(cc1_endian_big_spec)"
-#endif
 
 #undef CC1_SPEC
 /* Pass -G xxx to the compiler and set correct endian mode */
@@ -1030,7 +1039,6 @@ do {									\
 #endif
 
 /* Default starting address if specified */
-#ifndef LINK_START_SPEC
 #define LINK_START_SPEC "\
 %{mads: %(link_start_ads) } \
 %{myellowknife: %(link_start_yellowknife) } \
@@ -1039,12 +1047,10 @@ do {									\
 %{mcall-linux: %(link_start_linux) } \
 %{mcall-solaris: %(link_start_solaris) } \
 %{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-solaris: %(link_start_default) }}}}}}"
-#endif
 
-#ifndef	LINK_START_DEFAULT_SPEC
 #define LINK_START_DEFAULT_SPEC ""
-#endif
 
+/* override svr4.h definition */
 #undef LINK_SPEC
 #define LINK_SPEC "\
 %{h*} %{v:-V} %{G*} \
@@ -1060,7 +1066,6 @@ do {									\
 #define NO_SHARED_LIB_SUPPORT
 #endif
 
-#undef  LINK_SHLIB_SPEC
 #ifndef NO_SHARED_LIB_SUPPORT
 /* Shared libraries are default.  */
 #define LINK_SHLIB_SPEC "\
@@ -1081,13 +1086,11 @@ do {									\
 #endif
 
 /* Override the default target of the linker.  */
-#undef	LINK_TARGET_SPEC
 #define	LINK_TARGET_SPEC "\
 %{mlittle: -oformat elf32-powerpcle } %{mlittle-endian: -oformat elf32-powerpcle } \
 %{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: %{mcall-solaris: -oformat elf32-powerpcle}}}}}"
 
 /* Any specific OS flags */
-#ifndef LINK_OS_SPEC
 #define LINK_OS_SPEC "\
 %{mads: %(link_os_ads) } \
 %{myellowknife: %(link_os_yellowknife) } \
@@ -1096,11 +1099,8 @@ do {									\
 %{mcall-linux: %(link_os_linux) } \
 %{mcall-solaris: %(link_os_solaris) } \
 %{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-solaris: %(link_os_default) }}}}}}"
-#endif
 
-#ifndef	LINK_OS_DEFAULT_SPEC
 #define LINK_OS_DEFAULT_SPEC ""
-#endif
 
 #define CPP_SYSV_SPEC \
 "%{mrelocatable*: -D_RELOCATABLE} \
@@ -1134,6 +1134,7 @@ do {									\
 
 #define	CPP_ENDIAN_DEFAULT_SPEC "%(cpp_endian_big)"
 
+/* override rs6000.h definition */
 #undef CPP_SPEC
 #define CPP_SPEC "%{posix: -D_POSIX_SOURCE} %(cpp_sysv) %(cpp_endian) %(cpp_cpu) \
 %{mads: %(cpp_os_ads) } \
@@ -1144,10 +1145,9 @@ do {									\
 %{mcall-solaris: %(cpp_os_solaris) } \
 %{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-solaris: %(cpp_os_default) }}}}}}"
 
-#ifndef CPP_OS_DEFAULT_SPEC
 #define CPP_OS_DEFAULT_SPEC ""
-#endif
 
+/* override svr4.h definition */
 #undef  STARTFILE_SPEC
 #define	STARTFILE_SPEC "\
 %{mads: %(startfile_ads) } \
@@ -1158,9 +1158,9 @@ do {									\
 %{mcall-solaris: %(startfile_solaris) } \
 %{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-solaris: %(startfile_default) }}}}}}"
 
-#undef	STARTFILE_DEFAULT_SPEC
 #define	STARTFILE_DEFAULT_SPEC ""
 
+/* override svr4.h definition */
 #undef	LIB_SPEC
 #define	LIB_SPEC "\
 %{mads: %(lib_ads) } \
@@ -1171,13 +1171,13 @@ do {									\
 %{mcall-solaris: %(lib_solaris) } \
 %{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-solaris: %(lib_default) }}}}}}"
 
+/* override rs6000.h definition */
 #undef	LIBGCC_SPEC
 #define	LIBGCC_SPEC "libgcc.a%s"
 
-#ifndef LIB_DEFAULT_SPEC
 #define LIB_DEFAULT_SPEC ""
-#endif
 
+/* override svr4.h definition */
 #undef	ENDFILE_SPEC
 #define	ENDFILE_SPEC "\
 %{mads: ecrtn.o%s} \
@@ -1189,111 +1189,61 @@ do {									\
 %{mvxworks: %(endfile_vxworks) } \
 %{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-solaris: %{!mvxworks: %(endfile_default) }}}}}}}"
 
-#undef	ENDFILE_DEFAULT_SPEC
 #define	ENDFILE_DEFAULT_SPEC ""
 
 /* Motorola ADS support.  */
-#ifndef	LIB_ADS_SPEC
 #define LIB_ADS_SPEC "--start-group -lads -lc --end-group"
-#endif
 
-#ifndef	STARTFILE_ADS_SPEC
 #define	STARTFILE_ADS_SPEC "ecrti.o%s crt0.o%s"
-#endif
 
-#ifndef	ENDFILE_ADS_SPEC
 #define	ENDFILE_ADS_SPEC "ecrtn.o%s"
-#endif
 
-#ifndef LINK_START_ADS_SPEC
 #define LINK_START_ADS_SPEC "-T ads.ld%s"
-#endif
 
-#ifndef LINK_OS_ADS_SPEC
 #define LINK_OS_ADS_SPEC ""
-#endif
 
-#ifndef CPP_OS_ADS_SPEC
 #define CPP_OS_ADS_SPEC ""
-#endif
 
 /* Motorola Yellowknife support.  */
-#ifndef	LIB_YELLOWKNIFE_SPEC
 #define LIB_YELLOWKNIFE_SPEC "--start-group -lyk -lc --end-group"
-#endif
 
-#ifndef	STARTFILE_YELLOWKNIFE_SPEC
 #define	STARTFILE_YELLOWKNIFE_SPEC "ecrti.o%s crt0.o%s"
-#endif
 
-#ifndef	ENDFILE_YELLOWKNIFE_SPEC
 #define	ENDFILE_YELLOWKNIFE_SPEC "ecrtn.o%s"
-#endif
 
-#ifndef LINK_START_YELLOWKNIFE_SPEC
 #define LINK_START_YELLOWKNIFE_SPEC "-T yellowknife.ld%s"
-#endif
 
-#ifndef LINK_OS_YELLOWKNIFE_SPEC
 #define LINK_OS_YELLOWKNIFE_SPEC ""
-#endif
 
-#ifndef CPP_OS_YELLOWKNIFE_SPEC
 #define CPP_OS_YELLOWKNIFE_SPEC ""
-#endif
 
 /* Motorola MVME support.  */
-#ifndef	LIB_MVME_SPEC
 #define LIB_MVME_SPEC "--start-group -lmvme -lc --end-group"
-#endif
 
-#ifndef	STARTFILE_MVME_SPEC
 #define	STARTFILE_MVME_SPEC "ecrti.o%s crt0.o%s"
-#endif
 
-#ifndef	ENDFILE_MVME_SPEC
 #define	ENDFILE_MVME_SPEC "ecrtn.o%s"
-#endif
 
-#ifndef LINK_START_MVME_SPEC
 #define LINK_START_MVME_SPEC "%{!Wl,-T*: %{!T*: -Ttext 0x40000}}"
-#endif
 
-#ifndef LINK_OS_MVME_SPEC
 #define LINK_OS_MVME_SPEC ""
-#endif
 
-#ifndef CPP_OS_MVME_SPEC
 #define CPP_OS_MVME_SPEC ""
-#endif
 
 /* PowerPC simulator based on netbsd system calls support.  */
-#ifndef	LIB_SIM_SPEC
 #define LIB_SIM_SPEC "--start-group -lsim -lc --end-group"
-#endif
 
-#ifndef	STARTFILE_SIM_SPEC
 #define	STARTFILE_SIM_SPEC "ecrti.o%s sim-crt0.o%s"
-#endif
 
-#ifndef	ENDFILE_SIM_SPEC
 #define	ENDFILE_SIM_SPEC "ecrtn.o%s"
-#endif
 
-#ifndef LINK_START_SIM_SPEC
 #define LINK_START_SIM_SPEC "-Ttext 0x10000074"
-#endif
 
-#ifndef LINK_OS_SIM_SPEC
 #define LINK_OS_SIM_SPEC ""
-#endif
 
-#ifndef CPP_OS_SIM_SPEC
 #define CPP_OS_SIM_SPEC ""
-#endif
 
 /* GNU/Linux support.  */
-#ifndef	LIB_LINUX_SPEC
 #ifdef USE_GNULIBC_1
 #define LIB_LINUX_SPEC "%{mnewlib: --start-group -llinux -lc --end-group } \
 %{!mnewlib: -lc }"
@@ -1302,30 +1252,20 @@ do {									\
 %{!mnewlib: %{shared:-lc} %{!shared: %{pthread:-lpthread } \
 %{profile:-lc_p} %{!profile:-lc}}}"
 #endif
-#endif
 
-#ifndef	STARTFILE_LINUX_SPEC
 #define	STARTFILE_LINUX_SPEC "\
 %{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}} \
 %{mnewlib: ecrti.o%s} \
 %{!mnewlib: crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}}"
-#endif
 
-#ifndef	ENDFILE_LINUX_SPEC
 #define	ENDFILE_LINUX_SPEC "\
 %{mnewlib: ecrtn.o%s} \
 %{!mnewlib: %{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s}"
-#endif
 
-#ifndef LINK_START_LINUX_SPEC
 #define LINK_START_LINUX_SPEC "-Ttext 0x400074"
-#endif
 
-#ifndef LINK_OS_LINUX_SPEC
 #define LINK_OS_LINUX_SPEC ""
-#endif
 
-#ifndef CPP_OS_LINUX_SPEC
 #ifdef USE_GNULIBC_1
 #define CPP_OS_LINUX_SPEC "-D__unix__ -D__linux__ \
 %{!undef:%{!ansi:%{!std=*:-Dunix -Dlinux}%{std=gnu*:-Dunix -Dlinux}}} \
@@ -1335,7 +1275,6 @@ do {									\
 %{!undef:%{!ansi:%{!std=*:-Dunix -Dlinux}%{std=gnu*:-Dunix -Dlinux}}} \
 -Asystem(unix) -Asystem(posix) %{pthread:-D_REENTRANT}"
 #endif
-#endif
 
 /* Solaris support.  */
 /* For Solaris, Gcc automatically adds in one of the files
@@ -1349,7 +1288,6 @@ do {									\
    value of `_lib_version') if they will act in a strictly ANSI conforming
    manner or not.  */
 
-#ifndef	LIB_SOLARIS_SPEC
 #define LIB_SOLARIS_SPEC "\
 %{mnewlib: --start-group -lsolaris -lc --end-group } \
 %{!mnewlib: \
@@ -1360,67 +1298,45 @@ do {									\
 	%{compat-bsd:-lucb -lsocket -lnsl -lelf -laio} \
     %{solaris-cclib: /opt/SUNWspro/SC4.0/lib/libabi.a} \
     %{!shared: %{!symbolic: -lc }}}"
-#endif
 
-#ifndef	STARTFILE_SOLARIS_SPEC
 #define	STARTFILE_SOLARIS_SPEC "\
 %{!msolaris-cclib: scrti.o%s scrt0.o%s} \
 %{msolaris-cclib: /opt/SUNWspro/SC4.0/lib/crti.o%s /opt/SUNWspro/SC4.0/lib/crt1.o%s}"
-#endif
 
-#ifndef	ENDFILE_SOLARIS_SPEC
 #define	ENDFILE_SOLARIS_SPEC "\
 %{!msolaris-cclib: scrtn.o%s} \
 %{msolaris-cclib: /opt/SUNWspro/SC4.0/lib/crtn.o%s}"
-#endif
 
-#ifndef LINK_START_SOLARIS_SPEC
 #ifdef CROSS_COMPILER
 #define LINK_START_SOLARIS_SPEC "-Ttext 0x2000074"
 #else
 #define LINK_START_SOLARIS_SPEC ""
 #endif
-#endif
 
-#ifndef LINK_OS_SOLARIS_SPEC
 #define LINK_OS_SOLARIS_SPEC ""
-#endif
 
-#ifndef CPP_OS_SOLARIS_SPEC
 #define CPP_OS_SOLARIS_SPEC "-D__ppc -D__sun__=1 -D__unix__ -D__svr4__  -D__SVR4__ \
 %{!undef:%{!ansi:%{!std=*:-Dsun=1 -Dunix -DSVR4 -D__EXTENSIONS__} \
                %{std=gnu*:-Dsun=1 -Dunix -DSVR4 -D__EXTENSIONS__}}} \
 -Amachine(prep)"
-#endif
 
 /* VxWorks support.  */
 /* VxWorks does all the library stuff itself.  */
-#ifndef	LIB_VXWORKS_SPEC
 #define LIB_VXWORKS_SPEC ""
-#endif
 
 /* VxWorks provides the functionality of crt0.o and friends itself.  */
 
-#ifndef	STARTFILE_VXWORKS_SPEC
 #define	STARTFILE_VXWORKS_SPEC ""
-#endif
 
-#ifndef	ENDFILE_VXWORKS_SPEC
 #define	ENDFILE_VXWORKS_SPEC ""
-#endif
 
 /* Because it uses ld -r, vxworks has no start/end files, nor starting
    address.  */
 
-#ifndef LINK_START_VXWORKS_SPEC
 #define LINK_START_VXWORKS_SPEC ""
-#endif
 
-#ifndef LINK_OS_VXWORKS_SPEC
 #define LINK_OS_VXWORKS_SPEC "-r"
-#endif
 
-#ifndef CPP_OS_VXWORKS_SPEC
 #define CPP_OS_VXWORKS_SPEC "\
 -DCPU_FAMILY=PPC \
 %{!mcpu*: \
@@ -1443,7 +1359,6 @@ do {									\
 %{mcpu=821: -DCPU=PPC603} \
 %{mcpu=823: -DCPU=PPC603} \
 %{mcpu=860: -DCPU=PPC603}"
-#endif
 
 /* Define any extra SPECS that the compiler needs to generate.  */
 #undef	SUBTARGET_EXTRA_SPECS
@@ -1521,7 +1436,6 @@ do {									\
    the target makefile fragment or if none of the options listed in
    `MULTILIB_OPTIONS' are set by default.  *Note Target Fragment::.  */
 
-#undef	MULTILIB_DEFAULTS
 #define	MULTILIB_DEFAULTS { "mbig", "mcall-sysv" }
 
 /* Define this macro if the code for function profiling should come
@@ -1531,6 +1445,3 @@ do {									\
 
 /* Function name to call to do profiling.  */
 #define RS6000_MCOUNT "_mcount"
-
-/* r13 is used for the small data pointer under SVR4.  */
-#define FIXED_R13 1
Index: win-nt.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/rs6000/win-nt.h,v
retrieving revision 1.4
diff -u -p -r1.4 win-nt.h
--- win-nt.h	1999/01/19 11:52:49	1.4
+++ win-nt.h	2000/01/05 16:27:20
@@ -1,6 +1,6 @@
 /* Definitions of target machine for GNU compiler, for PowerPC
    running Windows/NT.
-   Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
    Contributed by Cygnus Support.
 
 This file is part of GNU CC.
@@ -67,8 +67,6 @@ Boston, MA 02111-1307, USA.  */
 #define SUBTARGET_SWITCHES	\
    { "windows",	0 },		\
    { "crtmt",	0 },
-
-#undef XCOFF_DEBUGGING_INFO
 
 /* this is pure coff, not xcoff */
 #define SDB_DEBUGGING_INFO


More information about the Gcc-patches mailing list