Changeset 451


Ignore:
Timestamp:
Jul 26, 2003, 3:10:36 AM (22 years ago)
Author:
bird
Message:

Cleaned up new specs and fixed the linking issues caused by the dllinit moving.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/gcc/gcc/config/i386/emx.h

    • Property cvs2svn:cvs-rev changed from 1.9 to 1.10
    r450 r451  
    247247 *                             - S - P - E - C - S -
    248248 ******************************************************************************/
    249 #define __EMX__LIBCSPECS
     249#if 1
     250/*
     251 * Current default specs.
     252 */
     253
     254/* Predefine symbols. */
     255#undef CPP_PREDEFINES
     256#define CPP_PREDEFINES "-D__32BIT__ -D__EMX__ -D__OS2__ -D__i386__ -D__i386 "  \
     257  "-Dunix -D__MT__ -Asystem=unix -Asystem=posix -Asystem=emx"
     258
     259/* Provide extra args to the C preprocessor and extra switch-translations.  */
     260#undef CPP_SPEC
     261#define CPP_SPEC                                                               \
     262  "%(cpp_cpu) "                                                                \
     263  "%{posix:-D_POSIX_SOURCE} "                                                  \
     264  "%{Zmt*:} "                                                                  \
     265  "%{pg:-D__GPROF__} "                                                         \
     266  "%{mepilogue:-D__EPILOGUE__} "                                               \
     267  "%{mprobe|mstack-arg-probe:-D__STACK_PROBE__} "                              \
     268  "-D__cdecl=__attribute__((__cdecl__)) "                                      \
     269  "-D__stdcall=__attribute__((__stdcall__)) "                                  \
     270  "-D_Optlink=__attribute__((__optlink__)) "                                   \
     271  "-D_System=__attribute__((__system__))"                                      \
     272  "%{!ansi: "                                                                  \
     273    "-D_cdecl=__attribute__((__cdecl__)) "                                     \
     274    "-D_stdcall=__attribute__((__stdcall__)) "                                 \
     275    "-D_Cdecl=__attribute__((__cdecl__)) }"
     276
     277/* -s to -Zstrip and -Zomf must be passed down. */
     278#define ASM_SPEC "--traditional-format %{Zomf} %{s:-Zstrip}"
     279
     280#define ASM_DEBUG_SPEC "%{g*:--gstabs}"
     281
     282
     283/* Here is the spec for running the linker, after compiling all files.  */
     284
     285/* Provide extra args to the linker and extra switch-translations.  */
     286#define LINK_SPEC                                                              \
     287  "%{Zexe} %{Zstack*} %{Zmap*} %{Zomf:%{Zdll}} "                               \
     288  "%{!o*:-o %b%{Zdll:.dll}%{!Zdll:%{!Zexe:.exe}}} "                            \
     289  "%{static:%{Zcrtdll*:%e-static and -Zcrtdll are incompatible}}"              \
     290  "%{Zdll:%{Zexe:%e-Zdll and -Zexe are incompatible}}"                         \
     291  "%{Zsmall-conv:%{Zcrtdll*:%e-Zsmall-conv and -Zcrtdll are incompatible}}"
     292
     293/* Override how and when libgcc.a is included (%G).  */
     294#define LIBGCC_SPEC                                                            \
     295  "%{static|static-libgcc:%{shared-libgcc:%e-static-libgcc and -shared-libgcc are incompatible}}"\
     296  "%{shared-libgcc:-lgcc%v1%v2%v3}"                                            \
     297  "%{!shared-libgcc:%{!static-libgcc:%{Zcrtdll*:-lgcc%v1%v2%v3}}}"             \
     298  "%{!shared-libgcc:%{static-libgcc|!Zcrtdll*:-lgcc_eh -lgcc}}"
     299
     300/* We have a shared libgcc, but don't need this extra handling. */
     301#undef ENABLE_SHARED_LIBGCC
     302
     303/* Override the default libraries (%L).  */
     304#define LIB_SPEC                                                               \
     305  "-lc_alias "                                                                 \
     306  "%{Zcrtdll*:-lc_dll}"                                                        \
     307  "%{!Zcrtdll*:-lc%{p|pg:_p} %{!Zdll:-lc_app%{pg:_p}}} -los2%{p|pg:_p}"        \
     308
     309/* Override the default crt0 files.  */
     310#define STARTFILE_SPEC                                                         \
     311  "%{Zdll:dll0%O%{Zomf:bj}%s}"                                                 \
     312  "%{!Zdll:%{pg:gcrt0%O%{Zomf:bj}%s}"                                          \
     313          "%{!pg:%{pn:gcrt0%O%{Zomf:bj}%s}%{!pn:%{p:mcrt0%O%{Zomf:bj}%s}%{!p:crt0%O%{Zomf:bj}%s}}}"\
     314         " %{Zbin-files:binmode%O%{Zomf:bj}%s} %{Zsmall-conv:smallcnv%O%{Zomf:bj}%s}}"
     315
     316/* Set -lgcc and -lc order so all symbols are resolved correctly with
     317   the GNU linker. The IBM and M$ linkers doesn't need things repeated
     318   to catch the go of it.  */
     319#define LINK_GCC_C_SEQUENCE_SPEC "%G %L %{!Zomf:%G %L %G}"
     320
     321#define ENDFILE_SPEC "%{Zomf:-lend}"
     322
     323/* Override the default linker program (collect2).  */
     324#define LINKER_SPEC "%{Zomf:emxomf}ld.exe"
     325
     326
     327
     328#else
     329/* ////////////////////////////////////////////////////////////////////////////
     330 * Specs which doesn't define __EMX__ (to be removed?)
     331 * ////////////////////////////////////////////////////////////////////////// */
     332
    250333/* Predefine symbols `__32BIT__', `__EMX__', `i386' and __MT__ (not -Zmt). */
    251334#undef CPP_PREDEFINES
    252 #define CPP_PREDEFINES "-D__32BIT__ -D__EMX__ -D__OS2__ -D__i386__ -D__i386 "  \
     335#define CPP_PREDEFINES "-D__32BIT__ -D__OS2__ -D__i386__ -D__i386 "  \
    253336  "-Dunix -D__MT__ -Asystem=unix -Asystem=posix -Asystem=emx"
    254337
     
    271354
    272355/* Pass -s (as -Zstrip) to the assembler. */
    273 #ifdef __EMX__LIBCSPECS
    274 #define ASM_SPEC "--traditional-format %{Zomf} %{s:-Zstrip}"
    275 #else
    276356#define ASM_SPEC "%{Zomf} %{s:-Zstrip}"
    277 #endif
    278 
    279 #ifdef __EMX__LIBCSPECS
    280 /* bird: precautions. */
    281 #undef ASM_DEBUG_SPEC
    282 #define ASM_DEBUG_SPEC "%{g*:--gstabs}"
    283 #endif
    284 
    285 #ifdef __EMX__LIBCSPECS
     357
    286358#define LINK_SPEC                                                              \
    287359  "%{Zexe} %{Zstack*} %{Zmap*} %{Zomf:%{Zdll}} "                               \
     
    290362  "%{Zdll:%{Zexe:%e-Zdll and -Zexe are incompatible}}"                         \
    291363  "%{Zsmall-conv:%{Zcrtdll*:%e-Zsmall-conv and -Zcrtdll are incompatible}}"
    292 #else
    293 #define LINK_SPEC                                                              \
    294   "%{Zexe} %{Zstack*} %{Zmap*} %{Zomf:%{Zdll}} "                               \
    295   "%{!o*:-o %b%{Zdll:.dll}%{!Zdll:%{!Zexe:.exe}}} "                            \
    296   "%{static:%{Zcrtdll*:%e-static and -Zcrtdll are incompatible}}"              \
    297   "%{Zdll:%{Zexe:%e-Zdll and -Zexe are incompatible}}"                         \
    298   "%{Zso:%{!Zsys:%e-Zso requires -Zsys}}"                                      \
    299   "%{Zso:%{!Zdll:%e-Zso requires -Zdll}}"                                      \
    300   "%{Zno-rte:%{!Zdll:%e-Zno-rte requires -Zdll}}"                              \
    301   "%{Zno-rte:%{!Zomf:%e-Zno-rte requires -Zomf}}"                              \
    302   "%{Zno-rte:%{Zsys:%e-Zno-rte and -Zsys are incompatible}}"                   \
    303   "%{Zno-rte:%{Zso:%e-Zno-rte and -Zso are incompatible}}"                     \
    304   "%{Zno-rte:%{Zcrtdll*:%e-Zcrtdll and -Zno-rte are incompatible}}"            \
    305   "%{Zno-rte:%{Zmt:%e-Zmt and -Zno-rte are incompatible}}"                     \
    306   "%{Zsys:%{Zcrtdll*:%e-Zcrtdll and -Zsys are incompatible}}"                  \
    307   "%{Zsys:%{!Zomf:%e-Zsys requires -Zomf}}"                                    \
    308   "%{Zsys:%{Zbsd-signals:%e-Zbsd-signals and -Zsys are incompatible}}"         \
    309   "%{Zsys:%{Zsysv-signals:%e-Zsysv-signals and -Zsys are incompatible}}"       \
    310   "%{Zbsd-signals:%{Zsysv-signals:%e-Zbsd-signals and -Zsysv-signals are incompatible}}" \
    311   "%{Zsmall-conv:%{Zcrtdll*:%e-Zsmall-conv and -Zcrtdll are incompatible}}"
    312 #endif
    313364
    314365/* Actually we're using shared libgcc, but we use it a lot differently ... */
     
    320371  "%{!shared-libgcc:%{static-libgcc|!Zcrtdll*:-lgcc_eh -lgcc}}"
    321372
    322 #ifdef __EMX__LIBCSPECS
    323 #define LIB_SPEC                                                               \
    324   "-lc%{p|pg:_p} "                                                             \
    325   "%G "                                                                        \
    326   "%{!Zdll:-lc_app%{pg:_p}} "                                                  \
    327   "-lc%{p|pg:_p}"
    328 #else
    329373#define LIB_SPEC                                                               \
    330374  "%{p|pg:-lc_p} -lc "                                                         \
     
    334378  "%G %{p|pg:-lc_p} -lc "                                                      \
    335379  "%{Zdll:%{!Zso:%{!Zno-rte:-lc_dllrt}}}"
    336 #endif
    337 
    338 #ifdef __EMX__LIBCSPECS
    339 #define STARTFILE_SPEC                                                         \
    340   "%{Zdll:dll0%O%{Zomf:bj}%s}"                                                 \
    341   "%{!Zdll:%{pg:gcrt0%O%{Zomf:bj}%s}"                                          \
    342           "%{!pg:%{pn:gcrt0%O%{Zomf:bj}%s}%{!pn:%{p:mcrt0%O%{Zomf:bj}%s}%{!p:crt0%O%{Zomf:bj}%s}}}"\
    343          " %{Zbin-files:binmode%O%{Zomf:bj}%s} %{Zsmall-conv:smallcnv%O%{Zomf:bj}%s}}"
    344 #else
     380
    345381#define STARTFILE_SPEC                                                         \
    346382  "%{Zdll:dll0%O%{Zomf:bj}%s}"                                                 \
     
    349385         " %{Zsysv-signals:sigsysv%O%{Zomf:bj}%s} %{Zbsd-signals:sigbsd%O%{Zomf:bj}%s}"\
    350386         " %{Zbin-files:binmode%O%{Zomf:bj}%s}%{Zsmall-conv:smallcnv%O%{Zomf:bj}%s}}"
    351 #endif
    352 
    353 #ifdef __EMX__LIBCSPECS
    354 #define LINK_COMMAND_SPEC                                                      \
    355 "%{!fsyntax-only: "                                                            \
    356  "%{!c:%{!M:%{!MM:%{!E:%{!S:%{Zomf:emxomf}ld "                                 \
    357                         "%l %X %{o*} %{A} %{d} %{e*} %{m} %{N} %{n} "          \
    358                         "%{r} %{s} %{t} %{u*} %{x} %{z} %{Z} "                 \
    359                         "%{!A:%{!nostdlib:%{!nostartfiles:%S}}} "              \
    360                         "%{static:} %{L*} %D %{T*} %o "                        \
    361                         "%{!nostdlib:%{!nodefaultlibs:"                        \
    362                            "%G -lc_alias "                                     \
    363                            "%{!Zcrtdll*:%L} %{Zcrtdll*:-lc_dll} -los2%{pg:_p} "\
    364                            "-lc_alias "                                        \
    365                            "%{!Zcrtdll*:%L} %{Zcrtdll*:-lc_dll} -los2%{pg:_p} "\
    366                            "%{Zomf:-lend} "                                    \
    367                                      "} "                                      \
    368                          "} "                                                  \
    369                         "%{!A:%{!nostdlib:%{!nostartfiles:%E} }}"              \
    370                        "}"                                                     \
    371                   "}"                                                          \
    372             "}"                                                                \
    373        "}"                                                                     \
    374   "}"                                                                          \
    375  "}"
    376 #else
     387
    377388#define LINK_COMMAND_SPEC                                                      \
    378389"%{!fsyntax-only: "                                                            \
Note: See TracChangeset for help on using the changeset viewer.