summaryrefslogtreecommitdiff
path: root/gcc/config/i386/osfrose.h
diff options
context:
space:
mode:
authorMichael Meissner <meissner@gcc.gnu.org>1993-10-21 02:42:50 +0000
committerMichael Meissner <meissner@gcc.gnu.org>1993-10-21 02:42:50 +0000
commitcc8187fc1da50b99899be52de1ce2aa83483d238 (patch)
tree2362b125da20359b95fd9559b2301537347efb09 /gcc/config/i386/osfrose.h
parenta0292f624b3d61e8e40a7b333dc841620e92c45e (diff)
downloadgcc-cc8187fc1da50b99899be52de1ce2aa83483d238.tar.gz
Allow -h*, -z*, -G for linker; map -static/-symbolic/-shared into -B switches.;Do not put .size out for ROSE
From-SVN: r5853
Diffstat (limited to 'gcc/config/i386/osfrose.h')
-rw-r--r--gcc/config/i386/osfrose.h30
1 files changed, 27 insertions, 3 deletions
diff --git a/gcc/config/i386/osfrose.h b/gcc/config/i386/osfrose.h
index 241a173de34..f8d778d2c42 100644
--- a/gcc/config/i386/osfrose.h
+++ b/gcc/config/i386/osfrose.h
@@ -30,6 +30,24 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#define WORD_SWITCH_TAKES_ARG(STR) \
(DEFAULT_WORD_SWITCH_TAKES_ARG (STR) || !strcmp (STR, "pic-names"))
+/* This defines which switch letters take arguments. On svr4, most of
+ the normal cases (defined in gcc.c) apply, and we also have -h* and
+ -z* options (for the linker). */
+
+#define SWITCH_TAKES_ARG(CHAR) \
+ ( (CHAR) == 'D' \
+ || (CHAR) == 'U' \
+ || (CHAR) == 'o' \
+ || (CHAR) == 'e' \
+ || (CHAR) == 'T' \
+ || (CHAR) == 'u' \
+ || (CHAR) == 'I' \
+ || (CHAR) == 'm' \
+ || (CHAR) == 'L' \
+ || (CHAR) == 'A' \
+ || (CHAR) == 'h' \
+ || (CHAR) == 'z')
+
#define MASK_HALF_PIC 0x40000000 /* Mask for half-pic code */
#define MASK_HALF_PIC_DEBUG 0x20000000 /* Debug flag */
#define MASK_ELF 0x10000000 /* ELF not rose */
@@ -112,9 +130,14 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
%{!melf: %{!noshrlib: %{pic-none: -noshrlib} %{!pic-none: -warn_nopic}} \
%{nostdlib} %{noshrlib} %{glue}} \
%{melf: %{dy} %{dn} %{glue: } \
- %{!dy: %{!dn: \
+ %{h*} %{z*} \
+ %{static:-dn -Bstatic} \
+ %{shared:-G -dy} \
+ %{symbolic:-Bsymbolic -G -dy} \
+ %{G:-G} \
+ %{!dy: %{!dn: %{!static: %{!shared: %{!symbolic: \
%{noshrlib: -dn } %{pic-none: -dn } \
- %{!noshrlib: %{!pic-none: -dy}}}}}"
+ %{!noshrlib: %{!pic-none: -dy}}}}}}}}"
#undef LIB_SPEC
#define LIB_SPEC "-lc"
@@ -751,7 +774,8 @@ while (0)
#define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP_LEVEL, AT_END) \
do { \
char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0); \
- if (!flag_inhibit_size_directive && DECL_SIZE (DECL) \
+ if (TARGET_ELF \
+ && !flag_inhibit_size_directive && DECL_SIZE (DECL) \
&& ! AT_END && TOP_LEVEL \
&& DECL_INITIAL (DECL) == error_mark_node \
&& !size_directive_output) \