|
|
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 "dpx2.h"
7:
1.1.1.2 ! root 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:
1.1 root 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
1.1.1.2 ! root 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
1.1 root 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.