#undef TARGET_VERSION
#define TARGET_VERSION fprintf (stderr, " (i386, SCO OpenServer 5 Syntax)");
#undef ASM_QUAD
#undef GLOBAL_ASM_OP
#define GLOBAL_ASM_OP "\t.globl\t"
#undef BSS_SECTION_ASM_OP
#define BSS_SECTION_ASM_OP "\t.section\t.bss, \"aw\", @nobits"
#define CTORS_SECTION_ASM_OP "\t.section\t.ctors, \"aw\""
#define DTORS_SECTION_ASM_OP "\t.section\t.dtors, \"aw\""
#define TARGET_ASM_FILE_START_FILE_DIRECTIVE true
#undef X86_FILE_START_VERSION_DIRECTIVE
#define X86_FILE_START_VERSION_DIRECTIVE true
#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
#undef DBX_REGISTER_NUMBER
#define DBX_REGISTER_NUMBER(n) svr4_dbx_register_map[n]
#define DWARF2_DEBUGGING_INFO 1
#define DBX_DEBUGGING_INFO 1
#undef PREFERRED_DEBUGGING_TYPE
#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
#undef DWARF2_UNWIND_INFO
#define DWARF2_UNWIND_INFO 1
#undef NO_IMPLICIT_EXTERN_C
#define NO_IMPLICIT_EXTERN_C 1
#undef SWITCH_TAKES_ARG
#define SWITCH_TAKES_ARG(CHAR) \
(DEFAULT_SWITCH_TAKES_ARG(CHAR) \
|| (CHAR) == 'h' \
|| (CHAR) == 'R' \
|| (CHAR) == 'Y' \
|| (CHAR) == 'z')
#undef WORD_SWITCH_TAKES_ARG
#define WORD_SWITCH_TAKES_ARG(STR) \
(DEFAULT_WORD_SWITCH_TAKES_ARG (STR) \
&& strcmp (STR, "Tdata") && strcmp (STR, "Ttext") \
&& strcmp (STR, "Tbss"))
#undef TARGET_SUBTARGET_DEFAULT
#define TARGET_SUBTARGET_DEFAULT (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS)
#undef SIZE_TYPE
#undef PTRDIFF_TYPE
#undef WCHAR_TYPE
#undef WCHAR_TYPE_SIZE
#undef WINT_TYPE
#define SIZE_TYPE "unsigned int"
#define PTRDIFF_TYPE "int"
#define WCHAR_TYPE "long int"
#define WCHAR_TYPE_SIZE BITS_PER_WORD
#define WINT_TYPE "long int"
#define MULTILIB_DEFAULTS { "melf" }
#define MD_STARTFILE_PREFIX "/usr/gnu/lib/"
#define MD_STARTFILE_PREFIX_1 "/usr/ccs/lib/"
#if USE_GAS
# define MD_EXEC_PREFIX "/usr/gnu/bin/"
#else
# define MD_EXEC_PREFIX "/usr/ccs/bin/elf/"
#endif
#ifndef DEFAULT_LINKER
# define DEFAULT_LINKER "/usr/ccs/bin/elf/ld"
#endif
#undef ASM_SPEC
#if USE_GAS
#else
#define ASM_SPEC \
"%{Ym,*} %{Yd,*} %{Wa,*:%*} \
-E%{Xa:a}%{!Xa:%{Xc:c}%{!Xc:%{Xk:k}%{!Xk:%{Xt:t}%{!Xt:a}}}},%{ansi:ansi}%{!ansi:%{posix:posix}%{!posix:%{Xpg4:xpg4}%{!Xpg4:%{Xpg4plus:XPG4PLUS}%{!Xpg4plus:%{Xods30:ods30}%{!Xods30:XPG4PLUS}}}}},ELF %{Qn:} %{!Qy:-Qn}"
#endif
#undef STARTFILE_SPEC
#define STARTFILE_SPEC \
"%{pg:%e-pg not supported on this platform} \
%{p:%{pp:%e-p and -pp specified - pick one}} \
%{!shared:\
%{!symbolic: \
%{!G: \
%{pp:pcrt1elf.o%s}%{p:mcrt1.o%s}%{!p:%{!pp:crt1.o%s}}}}} \
crti.o%s \
%{ansi:values-Xc.o%s} \
%{!ansi: \
%{traditional:values-Xt.o%s} \
%{!traditional: \
%{Xa:values-Xa.o%s} \
%{!Xa:%{Xc:values-Xc.o%s} \
%{!Xc:%{Xk:values-Xk.o%s} \
%{!Xk:%{Xt:values-Xt.o%s} \
%{!Xt:values-Xa.o%s}}}}}} \
crtbegin.o%s"
#undef ENDFILE_SPEC
#define ENDFILE_SPEC \
"crtend.o%s crtn.o%s"
#define TARGET_OS_CPP_BUILTINS() \
do \
{ \
builtin_define ("__unix"); \
builtin_define ("_SCO_DS"); \
builtin_define ("_SCO_DS_LL"); \
builtin_define ("_SCO_ELF"); \
builtin_define ("_M_I386"); \
builtin_define ("_M_XENIX"); \
builtin_define ("_M_UNIX"); \
builtin_assert ("system=svr3"); \
if (flag_iso) \
cpp_define (pfile, "_STRICT_ANSI"); \
if (flag_pic) \
{ \
builtin_define ("__PIC__"); \
builtin_define ("__pic__"); \
} \
} \
while (0)
#undef CPP_SPEC
#define CPP_SPEC "\
-isystem /usr/gnu/include \
%{!Xods30:-D_STRICT_NAMES} \
%{!ansi:%{!posix:%{!Xods30:-D_SCO_XPG_VERS=4}}} \
%{ansi:-isystem include/ansi%s -isystem /usr/include/ansi} \
%{!ansi: \
%{posix:-isystem include/posix%s -isystem /usr/include/posix \
-D_POSIX_C_SOURCE=2 -D_POSIX_SOURCE=1} \
%{!posix:%{Xpg4:-isystem include/xpg4%s -isystem /usr/include/xpg4 \
-D_XOPEN_SOURCE=1} \
%{!Xpg4:-D_M_I86 -D_M_I86SM -D_M_INTERNAT -D_M_SDATA -D_M_STEXT \
-D_M_BITFIELDS -D_M_SYS5 -D_M_SYSV -D_M_SYSIII \
-D_M_WORDSWAP -Dunix -DM_I386 -DM_UNIX -DM_XENIX \
%{Xods30:-isystem include/ods_30_compat%s \
-isystem /usr/include/ods_30_compat \
-D_SCO_ODS_30 -DM_I86 -DM_I86SM -DM_SDATA -DM_STEXT \
-DM_BITFIELDS -DM_SYS5 -DM_SYSV -DM_INTERNAT -DM_SYSIII \
-DM_WORDSWAP}}}} \
%{scointl:-DM_INTERNAT -D_M_INTERNAT} \
%{Xa:-D_SCO_C_DIALECT=1} \
%{!Xa:%{Xc:-D_SCO_C_DIALECT=3} \
%{!Xc:%{Xk:-D_SCO_C_DIALECT=4} \
%{!Xk:%{Xt:-D_SCO_C_DIALECT=2} \
%{!Xt:-D_SCO_C_DIALECT=1}}}}"
#undef LINK_SPEC
#define LINK_SPEC \
"%{!shared:%{!symbolic:%{!G:-E%{Xa:a}%{!Xa:%{Xc:c}%{!Xc:%{Xk:k}%{!Xk:%{Xt:t}%{!Xt:a}}}},%{ansi:ansi}%{!ansi:%{posix:posix}%{!posix:%{Xpg4:xpg4}%{!Xpg4:%{Xpg4plus:XPG4PLUS}%{!Xpg4plus:%{Xods30:ods30}%{!Xods30:XPG4PLUS}}}}},ELF}}} \
%{Wl,*:%*} %{YP,*} %{YL,*} %{YU,*} \
%{!YP,*:%{p:-YP,/usr/ccs/libp:/lib/libp:/usr/lib/libp:/usr/ccs/lib:/lib:/usr/lib} \
%{!p:-YP,/usr/ccs/lib:/lib:/usr/lib}} \
%{h*} %{static:-dn -Bstatic %{G:%e-G and -static are mutually exclusive}} \
%{shared:%{!G:-G}} %{G:%{!shared:-G}} %{shared:%{G:-G}} \
%{shared:-dy %{symbolic:-Bsymbolic -G} %{z*}} %{R*} %{Y*} \
%{Qn:} %{!Qy:-Qn} -z alt_resolve"
#undef LIB_SPEC
#define LIB_SPEC \
"%{shared:%{!G:pic/libgcc.a%s}} \
%{G:%{!shared:pic/libgcc.a%s}} \
%{shared:%{G:pic/libgcc.a%s}} \
%{p:%{!pp:-lelfprof -lelf}} %{pp:%{!p:-lelfprof -lelf}} \
%{!shared:%{!symbolic:%{!G:-lcrypt -lgen -lc}}}"
#undef LIBGCC_SPEC
#define LIBGCC_SPEC \
"%{!shared:%{!G:-lgcc}}"
#define MASK_COFF 010000000000
#define TARGET_ELF (1)
#undef SUBTARGET_SWITCHES
#define SUBTARGET_SWITCHES \
{ "elf", -MASK_COFF, N_("Generate ELF output") },
#define ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX(FILE, ENCODING, SIZE, ADDR, DONE) \
do { \
if ((SIZE) == 4 && ((ENCODING) & 0x70) == DW_EH_PE_datarel) \
{ \
fputs (ASM_LONG, FILE); \
assemble_name (FILE, XSTR (ADDR, 0)); \
fputs (((ENCODING) & DW_EH_PE_indirect ? "@GOT" : "@GOTOFF"), FILE); \
goto DONE; \
} \
} while (0)
#ifdef __PIC__
#define CRT_GET_RFIB_DATA(BASE) \
{ \
register void *ebx_ __asm__("ebx"); \
BASE = ebx_; \
}
#else
#define CRT_GET_RFIB_DATA(BASE) \
__asm__ ("call\t.LPR%=\n" \
".LPR%=:\n\t" \
"popl\t%0\n\t" \
\
"addl\t$_GLOBAL_OFFSET_TABLE_+[.-.LPR%=],%0" \
: "=d"(BASE))
#endif