OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.2.2/] [gcc/] [config/] [i386/] [sco5.h] - Diff between revs 38 and 154

Only display areas with differences | Details | Blame | View Log

Rev 38 Rev 154
/* Definitions for Intel 386 running SCO Unix System V 3.2 Version 5.
/* 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,
   Copyright (C) 1992, 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004,
   2007 Free Software Foundation, Inc.
   2007 Free Software Foundation, Inc.
   Contributed by Kean Johnston (jkj@sco.com)
   Contributed by Kean Johnston (jkj@sco.com)
 
 
This file is part of GCC.
This file is part of GCC.
 
 
GCC is free software; you can redistribute it and/or modify
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
the Free Software Foundation; either version 3, or (at your option)
any later version.
any later version.
 
 
GCC is distributed in the hope that it will be useful,
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
GNU General Public License for more details.
 
 
You should have received a copy of the GNU General Public License
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3.  If not see
along with GCC; see the file COPYING3.  If not see
<http://www.gnu.org/licenses/>.  */
<http://www.gnu.org/licenses/>.  */
 
 
#undef TARGET_VERSION
#undef TARGET_VERSION
#define TARGET_VERSION fprintf (stderr, " (i386, SCO OpenServer 5 Syntax)");
#define TARGET_VERSION fprintf (stderr, " (i386, SCO OpenServer 5 Syntax)");
 
 
#undef ASM_QUAD
#undef ASM_QUAD
 
 
#undef GLOBAL_ASM_OP
#undef GLOBAL_ASM_OP
#define GLOBAL_ASM_OP                   "\t.globl\t"
#define GLOBAL_ASM_OP                   "\t.globl\t"
 
 
#undef BSS_SECTION_ASM_OP
#undef BSS_SECTION_ASM_OP
#define BSS_SECTION_ASM_OP              "\t.section\t.bss, \"aw\", @nobits"
#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.
 * 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
 * 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"
 * 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,
 * 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
 * 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
 * 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
 * define these, many C++ ctors and dtors dont get run, because they never
 * wind up in the ctors/dtors arrays.
 * wind up in the ctors/dtors arrays.
 */
 */
#define CTORS_SECTION_ASM_OP            "\t.section\t.ctors, \"aw\""
#define CTORS_SECTION_ASM_OP            "\t.section\t.ctors, \"aw\""
#define DTORS_SECTION_ASM_OP            "\t.section\t.dtors, \"aw\""
#define DTORS_SECTION_ASM_OP            "\t.section\t.dtors, \"aw\""
 
 
#define TARGET_ASM_FILE_START_FILE_DIRECTIVE true
#define TARGET_ASM_FILE_START_FILE_DIRECTIVE true
#undef X86_FILE_START_VERSION_DIRECTIVE
#undef X86_FILE_START_VERSION_DIRECTIVE
#define X86_FILE_START_VERSION_DIRECTIVE true
#define X86_FILE_START_VERSION_DIRECTIVE true
 
 
/* A C statement (sans semicolon) to output to the stdio stream
/* A C statement (sans semicolon) to output to the stdio stream
   FILE the assembler definition of uninitialized global DECL named
   FILE the assembler definition of uninitialized global DECL named
   NAME whose size is SIZE bytes and alignment is ALIGN bytes.
   NAME whose size is SIZE bytes and alignment is ALIGN bytes.
   Try to use asm_output_aligned_bss to implement this macro.  */
   Try to use asm_output_aligned_bss to implement this macro.  */
 
 
#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
  asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
  asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
 
 
#undef DBX_REGISTER_NUMBER
#undef DBX_REGISTER_NUMBER
#define DBX_REGISTER_NUMBER(n)  svr4_dbx_register_map[n]
#define DBX_REGISTER_NUMBER(n)  svr4_dbx_register_map[n]
 
 
#define DWARF2_DEBUGGING_INFO           1
#define DWARF2_DEBUGGING_INFO           1
#define DBX_DEBUGGING_INFO              1
#define DBX_DEBUGGING_INFO              1
 
 
#undef PREFERRED_DEBUGGING_TYPE
#undef PREFERRED_DEBUGGING_TYPE
#define PREFERRED_DEBUGGING_TYPE        DWARF2_DEBUG
#define PREFERRED_DEBUGGING_TYPE        DWARF2_DEBUG
 
 
#undef DWARF2_UNWIND_INFO
#undef DWARF2_UNWIND_INFO
#define DWARF2_UNWIND_INFO              1
#define DWARF2_UNWIND_INFO              1
 
 
#undef NO_IMPLICIT_EXTERN_C
#undef NO_IMPLICIT_EXTERN_C
#define NO_IMPLICIT_EXTERN_C            1
#define NO_IMPLICIT_EXTERN_C            1
 
 
#undef SWITCH_TAKES_ARG
#undef SWITCH_TAKES_ARG
#define SWITCH_TAKES_ARG(CHAR)                                          \
#define SWITCH_TAKES_ARG(CHAR)                                          \
  (DEFAULT_SWITCH_TAKES_ARG(CHAR)                                       \
  (DEFAULT_SWITCH_TAKES_ARG(CHAR)                                       \
   || (CHAR) == 'h'                                                     \
   || (CHAR) == 'h'                                                     \
   || (CHAR) == 'R'                                                     \
   || (CHAR) == 'R'                                                     \
   || (CHAR) == 'Y'                                                     \
   || (CHAR) == 'Y'                                                     \
   || (CHAR) == 'z')
   || (CHAR) == 'z')
 
 
#undef WORD_SWITCH_TAKES_ARG
#undef WORD_SWITCH_TAKES_ARG
#define WORD_SWITCH_TAKES_ARG(STR)                                      \
#define WORD_SWITCH_TAKES_ARG(STR)                                      \
 (DEFAULT_WORD_SWITCH_TAKES_ARG (STR)                                   \
 (DEFAULT_WORD_SWITCH_TAKES_ARG (STR)                                   \
  && strcmp (STR, "Tdata") && strcmp (STR, "Ttext")                     \
  && strcmp (STR, "Tdata") && strcmp (STR, "Ttext")                     \
  && strcmp (STR, "Tbss"))
  && strcmp (STR, "Tbss"))
 
 
#undef TARGET_SUBTARGET_DEFAULT
#undef TARGET_SUBTARGET_DEFAULT
#define TARGET_SUBTARGET_DEFAULT (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS)
#define TARGET_SUBTARGET_DEFAULT (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS)
 
 
/*
/*
 * Define sizes and types
 * Define sizes and types
 */
 */
#undef SIZE_TYPE
#undef SIZE_TYPE
#undef PTRDIFF_TYPE
#undef PTRDIFF_TYPE
#undef WCHAR_TYPE
#undef WCHAR_TYPE
#undef WCHAR_TYPE_SIZE
#undef WCHAR_TYPE_SIZE
#undef WINT_TYPE
#undef WINT_TYPE
#define SIZE_TYPE               "unsigned int"
#define SIZE_TYPE               "unsigned int"
#define PTRDIFF_TYPE            "int"
#define PTRDIFF_TYPE            "int"
#define WCHAR_TYPE              "long int"
#define WCHAR_TYPE              "long int"
#define WCHAR_TYPE_SIZE         BITS_PER_WORD
#define WCHAR_TYPE_SIZE         BITS_PER_WORD
#define WINT_TYPE               "long int"
#define WINT_TYPE               "long int"
 
 
/*
/*
 * New for multilib support. Set the default switches for multilib,
 * New for multilib support. Set the default switches for multilib,
 * which is -melf.
 * which is -melf.
 */
 */
#define MULTILIB_DEFAULTS { "melf" }
#define MULTILIB_DEFAULTS { "melf" }
 
 


/* Please note that these specs may look messy but they are required in
/* Please note that these specs may look messy but they are required in
   order to emulate the SCO Development system as closely as possible.
   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,
   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
   so that is what these specs are targeted for. These utilities are
   very argument sensitive: a space in the wrong place breaks everything.
   very argument sensitive: a space in the wrong place breaks everything.
   So please forgive this mess. It works.
   So please forgive this mess. It works.
 
 
   Parameters which can be passed to gcc, and their SCO equivalents:
   Parameters which can be passed to gcc, and their SCO equivalents:
   GCC Parameter                SCO Equivalent
   GCC Parameter                SCO Equivalent
   -ansi                        -a ansi
   -ansi                        -a ansi
   -posix                       -a posix
   -posix                       -a posix
   -Xpg4                        -a xpg4
   -Xpg4                        -a xpg4
   -Xpg4plus                    -a xpg4plus
   -Xpg4plus                    -a xpg4plus
   -Xods30                      -a ods30
   -Xods30                      -a ods30
 
 
   As with SCO, the default is XPG4 plus mode. SCO also allows you to
   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
   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
   on to the assembler and linker in the same way that the SCO compiler
   does.
   does.
 
 
   SCO also allows you to compile, link and generate either ELF or COFF
   SCO also allows you to compile, link and generate either ELF or COFF
   binaries. With gcc, we now only support ELF mode.
   binaries. With gcc, we now only support ELF mode.
 
 
   GCC also requires that the user has installed OSS646, the Execution
   GCC also requires that the user has installed OSS646, the Execution
   Environment Update, or is running release 5.0.7 or later. This has
   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
   many fixes to the ELF link editor and assembler, and a considerably
   improved libc and RTLD.
   improved libc and RTLD.
 
 
   In terms of tool usage, we want to use the standard link editor always,
   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
   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
   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
   assume that /usr/gnu is the prefix for the GNU tools, because thats
   where the SCO provided ones go. This is especially important for
   where the SCO provided ones go. This is especially important for
   include and library search path ordering. We want to look in /usr/gnu
   include and library search path ordering. We want to look in /usr/gnu
   first because frequently people are linking against -lintl, and they
   first because frequently people are linking against -lintl, and they
   MEAN to link with gettext. What they get is the SCO intl library. Its
   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
   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
   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
   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. We want /usr/gnu/include searched for before the system
   header files. Hence the -isystem /usr/gnu/include in the CPP_SPEC.
   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.
   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     "/usr/gnu/lib/"
#define MD_STARTFILE_PREFIX_1   "/usr/ccs/lib/"
#define MD_STARTFILE_PREFIX_1   "/usr/ccs/lib/"
 
 
#if USE_GAS
#if USE_GAS
# define MD_EXEC_PREFIX         "/usr/gnu/bin/"
# define MD_EXEC_PREFIX         "/usr/gnu/bin/"
#else
#else
# define MD_EXEC_PREFIX         "/usr/ccs/bin/elf/"
# define MD_EXEC_PREFIX         "/usr/ccs/bin/elf/"
#endif
#endif
 
 
/* Always use the system linker, please.  */
/* Always use the system linker, please.  */
#ifndef DEFAULT_LINKER
#ifndef DEFAULT_LINKER
# define DEFAULT_LINKER         "/usr/ccs/bin/elf/ld"
# define DEFAULT_LINKER         "/usr/ccs/bin/elf/ld"
#endif
#endif
 
 
/* Set up assembler flags for PIC and ELF compilations */
/* Set up assembler flags for PIC and ELF compilations */
#undef ASM_SPEC
#undef ASM_SPEC
 
 
#if USE_GAS
#if USE_GAS
  /* Leave ASM_SPEC undefined so we pick up the master copy from gcc.c  */
  /* Leave ASM_SPEC undefined so we pick up the master copy from gcc.c  */
#else
#else
#define ASM_SPEC \
#define ASM_SPEC \
   "%{Ym,*} %{Yd,*} %{Wa,*:%*} \
   "%{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}"
    -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
#endif
 
 
/*
/*
 * Use crti.o for shared objects, crt1.o for normal executables. Make sure
 * 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
 * to recognize both -G and -shared as a valid way of introducing shared
 * library generation. This is important for backwards compatibility.
 * library generation. This is important for backwards compatibility.
 */
 */
 
 
#undef STARTFILE_SPEC
#undef STARTFILE_SPEC
#define STARTFILE_SPEC \
#define STARTFILE_SPEC \
 "%{pg:%e-pg not supported on this platform} \
 "%{pg:%e-pg not supported on this platform} \
  %{p:%{pp:%e-p and -pp specified - pick one}} \
  %{p:%{pp:%e-p and -pp specified - pick one}} \
 %{!shared:\
 %{!shared:\
   %{!symbolic: \
   %{!symbolic: \
    %{!G: \
    %{!G: \
     %{pp:pcrt1elf.o%s}%{p:mcrt1.o%s}%{!p:%{!pp:crt1.o%s}}}}} \
     %{pp:pcrt1elf.o%s}%{p:mcrt1.o%s}%{!p:%{!pp:crt1.o%s}}}}} \
  crti.o%s \
  crti.o%s \
  %{ansi:values-Xc.o%s} \
  %{ansi:values-Xc.o%s} \
  %{!ansi: \
  %{!ansi: \
   %{traditional:values-Xt.o%s} \
   %{traditional:values-Xt.o%s} \
    %{!traditional: \
    %{!traditional: \
     %{Xa:values-Xa.o%s} \
     %{Xa:values-Xa.o%s} \
      %{!Xa:%{Xc:values-Xc.o%s} \
      %{!Xa:%{Xc:values-Xc.o%s} \
       %{!Xc:%{Xk:values-Xk.o%s} \
       %{!Xc:%{Xk:values-Xk.o%s} \
        %{!Xk:%{Xt:values-Xt.o%s} \
        %{!Xk:%{Xt:values-Xt.o%s} \
         %{!Xt:values-Xa.o%s}}}}}} \
         %{!Xt:values-Xa.o%s}}}}}} \
  crtbegin.o%s"
  crtbegin.o%s"
 
 
#undef ENDFILE_SPEC
#undef ENDFILE_SPEC
#define ENDFILE_SPEC \
#define ENDFILE_SPEC \
 "crtend.o%s crtn.o%s"
 "crtend.o%s crtn.o%s"
 
 
#define TARGET_OS_CPP_BUILTINS()                                \
#define TARGET_OS_CPP_BUILTINS()                                \
  do                                                            \
  do                                                            \
    {                                                           \
    {                                                           \
        builtin_define ("__unix");                              \
        builtin_define ("__unix");                              \
        builtin_define ("_SCO_DS");                             \
        builtin_define ("_SCO_DS");                             \
        builtin_define ("_SCO_DS_LL");                          \
        builtin_define ("_SCO_DS_LL");                          \
        builtin_define ("_SCO_ELF");                            \
        builtin_define ("_SCO_ELF");                            \
        builtin_define ("_M_I386");                             \
        builtin_define ("_M_I386");                             \
        builtin_define ("_M_XENIX");                            \
        builtin_define ("_M_XENIX");                            \
        builtin_define ("_M_UNIX");                             \
        builtin_define ("_M_UNIX");                             \
        builtin_assert ("system=svr3");                         \
        builtin_assert ("system=svr3");                         \
        if (flag_iso)                                           \
        if (flag_iso)                                           \
          cpp_define (pfile, "_STRICT_ANSI");                   \
          cpp_define (pfile, "_STRICT_ANSI");                   \
    }                                                           \
    }                                                           \
  while (0)
  while (0)
 
 
#undef CPP_SPEC
#undef CPP_SPEC
#define CPP_SPEC "\
#define CPP_SPEC "\
  -isystem /usr/gnu/include \
  -isystem /usr/gnu/include \
  %{!Xods30:-D_STRICT_NAMES} \
  %{!Xods30:-D_STRICT_NAMES} \
  %{!ansi:%{!posix:%{!Xods30:-D_SCO_XPG_VERS=4}}} \
  %{!ansi:%{!posix:%{!Xods30:-D_SCO_XPG_VERS=4}}} \
  %{ansi:-isystem include/ansi%s -isystem /usr/include/ansi} \
  %{ansi:-isystem include/ansi%s -isystem /usr/include/ansi} \
  %{!ansi: \
  %{!ansi: \
   %{posix:-isystem include/posix%s -isystem /usr/include/posix \
   %{posix:-isystem include/posix%s -isystem /usr/include/posix \
           -D_POSIX_C_SOURCE=2 -D_POSIX_SOURCE=1} \
           -D_POSIX_C_SOURCE=2 -D_POSIX_SOURCE=1} \
    %{!posix:%{Xpg4:-isystem include/xpg4%s -isystem /usr/include/xpg4 \
    %{!posix:%{Xpg4:-isystem include/xpg4%s -isystem /usr/include/xpg4 \
                    -D_XOPEN_SOURCE=1} \
                    -D_XOPEN_SOURCE=1} \
     %{!Xpg4:-D_M_I86 -D_M_I86SM -D_M_INTERNAT -D_M_SDATA -D_M_STEXT \
     %{!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_BITFIELDS -D_M_SYS5 -D_M_SYSV -D_M_SYSIII \
             -D_M_WORDSWAP -Dunix -DM_I386 -DM_UNIX -DM_XENIX \
             -D_M_WORDSWAP -Dunix -DM_I386 -DM_UNIX -DM_XENIX \
             %{Xods30:-isystem include/ods_30_compat%s \
             %{Xods30:-isystem include/ods_30_compat%s \
                      -isystem /usr/include/ods_30_compat \
                      -isystem /usr/include/ods_30_compat \
                      -D_SCO_ODS_30 -DM_I86 -DM_I86SM -DM_SDATA -DM_STEXT \
                      -D_SCO_ODS_30 -DM_I86 -DM_I86SM -DM_SDATA -DM_STEXT \
                      -DM_BITFIELDS -DM_SYS5 -DM_SYSV -DM_INTERNAT -DM_SYSIII \
                      -DM_BITFIELDS -DM_SYS5 -DM_SYSV -DM_INTERNAT -DM_SYSIII \
                      -DM_WORDSWAP}}}} \
                      -DM_WORDSWAP}}}} \
  %{scointl:-DM_INTERNAT -D_M_INTERNAT} \
  %{scointl:-DM_INTERNAT -D_M_INTERNAT} \
  %{Xa:-D_SCO_C_DIALECT=1} \
  %{Xa:-D_SCO_C_DIALECT=1} \
  %{!Xa:%{Xc:-D_SCO_C_DIALECT=3} \
  %{!Xa:%{Xc:-D_SCO_C_DIALECT=3} \
   %{!Xc:%{Xk:-D_SCO_C_DIALECT=4} \
   %{!Xc:%{Xk:-D_SCO_C_DIALECT=4} \
    %{!Xk:%{Xt:-D_SCO_C_DIALECT=2} \
    %{!Xk:%{Xt:-D_SCO_C_DIALECT=2} \
     %{!Xt:-D_SCO_C_DIALECT=1}}}}"
     %{!Xt:-D_SCO_C_DIALECT=1}}}}"
 
 
#undef LINK_SPEC
#undef LINK_SPEC
#define 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}}} \
 "%{!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,*} %{YL,*} %{YU,*} \
  %{!YP,*:%{p:-YP,/usr/ccs/libp:/lib/libp:/usr/lib/libp:/usr/ccs/lib:/lib:/usr/lib} \
  %{!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}} \
   %{!p:-YP,/usr/ccs/lib:/lib:/usr/lib}} \
  %{h*} %{static:-dn -Bstatic %{G:%e-G and -static are mutually exclusive}} \
  %{h*} %{static:-dn -Bstatic %{G:%e-G and -static are mutually exclusive}} \
  %{shared:%{!G:-G}} %{G:%{!shared:-G}} %{shared:%{G:-G}} \
  %{shared:%{!G:-G}} %{G:%{!shared:-G}} %{shared:%{G:-G}} \
  %{shared:-dy %{symbolic:-Bsymbolic -G} %{z*}} %{R*} %{Y*} \
  %{shared:-dy %{symbolic:-Bsymbolic -G} %{z*}} %{R*} %{Y*} \
  %{Qn:} %{!Qy:-Qn} -z alt_resolve"
  %{Qn:} %{!Qy:-Qn} -z alt_resolve"
 
 
/* Library spec. If we are not building a shared library, provide the
/* Library spec. If we are not building a shared library, provide the
   standard libraries, as per the SCO compiler.  */
   standard libraries, as per the SCO compiler.  */
 
 
#undef LIB_SPEC
#undef LIB_SPEC
#define LIB_SPEC \
#define LIB_SPEC \
 "%{shared:%{!G:pic/libgcc.a%s}} \
 "%{shared:%{!G:pic/libgcc.a%s}} \
  %{G:%{!shared:pic/libgcc.a%s}} \
  %{G:%{!shared:pic/libgcc.a%s}} \
  %{shared:%{G:pic/libgcc.a%s}} \
  %{shared:%{G:pic/libgcc.a%s}} \
  %{p:%{!pp:-lelfprof -lelf}} %{pp:%{!p:-lelfprof -lelf}} \
  %{p:%{!pp:-lelfprof -lelf}} %{pp:%{!p:-lelfprof -lelf}} \
  %{!shared:%{!symbolic:%{!G:-lcrypt -lgen -lc}}}"
  %{!shared:%{!symbolic:%{!G:-lcrypt -lgen -lc}}}"
 
 
#undef LIBGCC_SPEC
#undef LIBGCC_SPEC
#define LIBGCC_SPEC \
#define LIBGCC_SPEC \
 "%{!shared:%{!G:-lgcc}}"
 "%{!shared:%{!G:-lgcc}}"
 
 
/* Handle special EH pointer encodings.  Absolute, pc-relative, and
/* Handle special EH pointer encodings.  Absolute, pc-relative, and
   indirect are handled automatically.  */
   indirect are handled automatically.  */
#define ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX(FILE, ENCODING, SIZE, ADDR, DONE) \
#define ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX(FILE, ENCODING, SIZE, ADDR, DONE) \
  do {                                                                  \
  do {                                                                  \
    if ((SIZE) == 4 && ((ENCODING) & 0x70) == DW_EH_PE_datarel)         \
    if ((SIZE) == 4 && ((ENCODING) & 0x70) == DW_EH_PE_datarel)         \
      {                                                                 \
      {                                                                 \
        fputs (ASM_LONG, FILE);                                         \
        fputs (ASM_LONG, FILE);                                         \
        assemble_name (FILE, XSTR (ADDR, 0));                           \
        assemble_name (FILE, XSTR (ADDR, 0));                           \
        fputs (((ENCODING) & DW_EH_PE_indirect ? "@GOT" : "@GOTOFF"), FILE); \
        fputs (((ENCODING) & DW_EH_PE_indirect ? "@GOT" : "@GOTOFF"), FILE); \
        goto DONE;                                                      \
        goto DONE;                                                      \
      }                                                                 \
      }                                                                 \
  } while (0)
  } while (0)
 
 
/* Used by crtstuff.c to initialize the base of data-relative relocations.
/* Used by crtstuff.c to initialize the base of data-relative relocations.
   These are GOT relative on x86, so return the pic register.  */
   These are GOT relative on x86, so return the pic register.  */
#ifdef __PIC__
#ifdef __PIC__
#define CRT_GET_RFIB_DATA(BASE)                 \
#define CRT_GET_RFIB_DATA(BASE)                 \
  {                                             \
  {                                             \
    register void *ebx_ __asm__("ebx");         \
    register void *ebx_ __asm__("ebx");         \
    BASE = ebx_;                                \
    BASE = ebx_;                                \
  }
  }
#else
#else
#define CRT_GET_RFIB_DATA(BASE)                                         \
#define CRT_GET_RFIB_DATA(BASE)                                         \
  __asm__ ("call\t.LPR%=\n"                                             \
  __asm__ ("call\t.LPR%=\n"                                             \
           ".LPR%=:\n\t"                                                \
           ".LPR%=:\n\t"                                                \
           "popl\t%0\n\t"                                                \
           "popl\t%0\n\t"                                                \
           /* Due to a GAS bug, this cannot use EAX.  That encodes      \
           /* Due to a GAS bug, this cannot use EAX.  That encodes      \
              smaller than the traditional EBX, which results in the    \
              smaller than the traditional EBX, which results in the    \
              offset being off by one.  */                              \
              offset being off by one.  */                              \
           "addl\t$_GLOBAL_OFFSET_TABLE_+[.-.LPR%=],%0"                  \
           "addl\t$_GLOBAL_OFFSET_TABLE_+[.-.LPR%=],%0"                  \
           : "=d"(BASE))
           : "=d"(BASE))
#endif
#endif
 
 
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.