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#if 0 /* #ifndef USE_COLLECT2 */ 9 10/* We use set vectors for the constructors/destructors. */ 11 12#undef ASM_OUTPUT_CONSTRUCTOR 13#undef ASM_OUTPUT_DESTRUCTOR 14 15/* Although the gas we use can create .ctor and .dtor sections from N_SETT 16 stabs, it does not support section directives, so we need to have the loader 17 define the lists. 18 */ 19#define CTOR_LISTS_DEFINED_EXTERNALLY 20 21/* similar to default, but allows for the table defined by ld with gcc.ifile. 22 nptrs is always 0. So we need to instead check that __DTOR_LIST__[1] != 0. 23 The old check is left in so that the same macro can be used if and when 24 a future version of gas does support section directives. */ 25 26#define DO_GLOBAL_DTORS_BODY {int nptrs = *(int *)__DTOR_LIST__; int i; \ 27 if (nptrs == -1 || (__DTOR_LIST__[0] == 0 && __DTOR_LIST__[1] != 0)) \ 28 for (nptrs = 0; __DTOR_LIST__[nptrs + 1] != 0; nptrs++); \ 29 for (i = nptrs; i >= 1; i--) \ 30 __DTOR_LIST__[i] (); } 31 32#undef STARTFILE_SPEC 33#define STARTFILE_SPEC \ 34 "%{!r:gcc.ifile%s}\ 35 %{pg:gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}\ 36 huge.o%s" 37 38#endif /* !USE_COLLECT2 */ 39 40#undef STARTFILE_SPEC 41#define STARTFILE_SPEC \ 42 "%{pg:gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}\ 43 huge.o%s" 44 45 46/* 47 * we are using GAS 48 */ 49#undef EXTRA_SECTION_FUNCTIONS 50#undef EXTRA_SECTIONS 51/* Gas understands dollars in labels. */ 52#undef NO_DOLLAR_IN_LABEL 53/* GAS does not understand .ident so don't output anything for #ident. */ 54#undef ASM_OUTPUT_IDENT 55 56#undef ASM_LONG 57#define ASM_LONG "\t.long" 58 59/* 60 * put const's in the text section 61 */ 62#define const_section() text_section() 63#define fini_section() while (0) 64 65#undef CTORS_SECTION_ASM_OP 66#define CTORS_SECTION_ASM_OP "\t.data" 67#undef DTORS_SECTION_ASM_OP 68#define DTORS_SECTION_ASM_OP "\t.data" 69#undef INIT_SECTION_ASM_OP 70 71/* end of dpx2g.h */ 72