diff options
Diffstat (limited to 'contrib/gcc/config/i386/sco5.h')
-rw-r--r-- | contrib/gcc/config/i386/sco5.h | 311 |
1 files changed, 0 insertions, 311 deletions
diff --git a/contrib/gcc/config/i386/sco5.h b/contrib/gcc/config/i386/sco5.h deleted file mode 100644 index 026ffd832fb5..000000000000 --- a/contrib/gcc/config/i386/sco5.h +++ /dev/null @@ -1,311 +0,0 @@ -/* Definitions for Intel 386 running SCO Unix System V 3.2 Version 5. - Copyright (C) 1992, 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004 - Free Software Foundation, Inc. - Contributed by Kean Johnston (jkj@sco.com) - -This file is part of GCC. - -GCC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GCC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GCC; see the file COPYING. If not, write to -the Free Software Foundation, 51 Franklin Street, Fifth Floor, -Boston, MA 02110-1301, USA. */ - -#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" - -/* - * NOTE: We really do want CTORS_SECTION_ASM_OP and DTORS_SECTION_ASM_OP. - * Here's the reason why. If we dont define them, and we dont define them - * to always emit to the same section, the default is to emit to "named" - * ctors and dtors sections. This would be great if we could use GNU ld, - * but we can't. The native linker could possibly be trained to coalesce - * named ctors sections, but that hasn't been done either. So if we don't - * define these, many C++ ctors and dtors dont get run, because they never - * wind up in the ctors/dtors arrays. - */ -#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 - -/* A C statement (sans semicolon) to output to the stdio stream - FILE the assembler definition of uninitialized global DECL named - NAME whose size is SIZE bytes and alignment is ALIGN bytes. - Try to use asm_output_aligned_bss to implement this macro. */ - -#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) - -/* - * Define sizes and types - */ -#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" - -/* - * New for multilib support. Set the default switches for multilib, - * which is -melf. - */ -#define MULTILIB_DEFAULTS { "melf" } - - -/* Please note that these specs may look messy but they are required in - order to emulate the SCO Development system as closely as possible. - With SCO Open Server 5.0, you now get the linker and assembler free, - so that is what these specs are targeted for. These utilities are - very argument sensitive: a space in the wrong place breaks everything. - So please forgive this mess. It works. - - Parameters which can be passed to gcc, and their SCO equivalents: - GCC Parameter SCO Equivalent - -ansi -a ansi - -posix -a posix - -Xpg4 -a xpg4 - -Xpg4plus -a xpg4plus - -Xods30 -a ods30 - - As with SCO, the default is XPG4 plus mode. SCO also allows you to - specify a C dialect with -Xt, -Xa, -Xc, -Xk and -Xm. These are passed - on to the assembler and linker in the same way that the SCO compiler - does. - - SCO also allows you to compile, link and generate either ELF or COFF - binaries. With gcc, we now only support ELF mode. - - GCC also requires that the user has installed OSS646, the Execution - Environment Update, or is running release 5.0.7 or later. This has - many fixes to the ELF link editor and assembler, and a considerably - improved libc and RTLD. - - In terms of tool usage, we want to use the standard link editor always, - and either the GNU assembler or the native assembler. With OSS646 the - native assembler has grown up quite a bit. Some of the specs below - assume that /usr/gnu is the prefix for the GNU tools, because thats - where the SCO provided ones go. This is especially important for - include and library search path ordering. We want to look in /usr/gnu - first because frequently people are linking against -lintl, and they - MEAN to link with gettext. What they get is the SCO intl library. Its - a REAL pity that GNU gettext chose that name; perhaps in a future - version they can be persuaded to change it to -lgnuintl and have a - link so that -lintl will work for other systems. The same goes for - header files. We want /usr/gnu/include searched for before the system - header files. Hence the -isystem /usr/gnu/include in the CPP_SPEC. - We get /usr/gnu/lib first by virtue of the MD_STARTFILE_PREFIX below. -*/ - -#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 - -/* Always use the system linker, please. */ -#ifndef DEFAULT_LINKER -# define DEFAULT_LINKER "/usr/ccs/bin/elf/ld" -#endif - -/* Set up assembler flags for PIC and ELF compilations */ -#undef ASM_SPEC - -#if USE_GAS - /* Leave ASM_SPEC undefined so we pick up the master copy from gcc.c */ -#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 - -/* - * Use crti.o for shared objects, crt1.o for normal executables. Make sure - * to recognize both -G and -shared as a valid way of introducing shared - * library generation. This is important for backwards compatibility. - */ - -#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"); \ - } \ - 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}}} \ - %{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" - -/* Library spec. If we are not building a shared library, provide the - standard libraries, as per the SCO compiler. */ - -#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}}" - -/* Handle special EH pointer encodings. Absolute, pc-relative, and - indirect are handled automatically. */ -#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) - -/* Used by crtstuff.c to initialize the base of data-relative relocations. - These are GOT relative on x86, so return the pic register. */ -#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" \ - /* Due to a GAS bug, this cannot use EAX. That encodes \ - smaller than the traditional EBX, which results in the \ - offset being off by one. */ \ - "addl\t$_GLOBAL_OFFSET_TABLE_+[.-.LPR%=],%0" \ - : "=d"(BASE)) -#endif - |