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