|
|
1.1 ! root 1: /* ! 2: * dpx2g.h - Bull DPX/2 200 and 300 systems (m68k, SysVr3) with gas ! 3: */ ! 4: ! 5: #define USE_GAS ! 6: #include "m68k/dpx2.h" ! 7: ! 8: #ifndef USE_COLLECT2 ! 9: /* We use set vectors for the constructors/destructors. */ ! 10: ! 11: #undef ASM_OUTPUT_CONSTRUCTOR ! 12: #undef ASM_OUTPUT_DESTRUCTOR ! 13: ! 14: /* Although the gas we use can create .ctor and .dtor sections from N_SETT ! 15: stabs, it does not support section directives, so we need to have the loader ! 16: define the lists. ! 17: */ ! 18: #define CTOR_LISTS_DEFINED_EXTERNALLY ! 19: ! 20: /* similar to default, but allows for the table defined by ld with gcc.ifile. ! 21: nptrs is always 0. So we need to instead check that __DTOR_LIST__[1] != 0. ! 22: The old check is left in so that the same macro can be used if and when ! 23: a future version of gas does support section directives. */ ! 24: ! 25: #define DO_GLOBAL_DTORS_BODY {int nptrs = *(int *)__DTOR_LIST__; int i; \ ! 26: if (nptrs == -1 || (__DTOR_LIST__[0] == 0 && __DTOR_LIST__[1] != 0)) \ ! 27: for (nptrs = 0; __DTOR_LIST__[nptrs + 1] != 0; nptrs++); \ ! 28: for (i = nptrs; i >= 1; i--) \ ! 29: __DTOR_LIST__[i] (); } ! 30: ! 31: #undef STARTFILE_SPEC ! 32: #define STARTFILE_SPEC \ ! 33: "%{!r:gcc.ifile%s}\ ! 34: %{pg:gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}\ ! 35: huge.o%s" ! 36: ! 37: #else /* !USE_COLLECT2 */ ! 38: ! 39: #undef STARTFILE_SPEC ! 40: #define STARTFILE_SPEC \ ! 41: "%{pg:gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}\ ! 42: huge.o%s" ! 43: ! 44: #endif /* !USE_COLLECT2 */ ! 45: ! 46: ! 47: /* GAS want's DBX debugging information. */ ! 48: #undef SDB_DEBUGGING_INFO ! 49: #ifndef DBX_DEBUGGING_INFO ! 50: #define DBX_DEBUGGING_INFO ! 51: #endif ! 52: ! 53: /* ! 54: * we are using GAS ! 55: */ ! 56: #undef EXTRA_SECTION_FUNCTIONS ! 57: #undef EXTRA_SECTIONS ! 58: /* Gas understands dollars in labels. */ ! 59: #undef NO_DOLLAR_IN_LABEL ! 60: /* GAS does not understand .ident so don't output anything for #ident. */ ! 61: #undef ASM_OUTPUT_IDENT ! 62: ! 63: /* ! 64: * put const's in the text section ! 65: */ ! 66: #define const_section() text_section() ! 67: #define fini_section() while (0) ! 68: ! 69: #if 0 /* this is fixed in 2.1 */ ! 70: #undef ASM_OUTPUT_ALIGN ! 71: #define ASM_OUTPUT_ALIGN(FILE,LOG) \ ! 72: if ((LOG) >= 1) \ ! 73: fprintf (FILE, "\t.even\n"); ! 74: #endif ! 75: ! 76: #undef CTORS_SECTION_ASM_OP ! 77: #define CTORS_SECTION_ASM_OP "\t.data" ! 78: #undef DTORS_SECTION_ASM_OP ! 79: #define DTORS_SECTION_ASM_OP "\t.data" ! 80: #undef INIT_SECTION_ASM_OP ! 81: ! 82: /* end of dpx2g.h */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.