OSDN Git Service

2001-05-03 David O'Brien <obrien@FreeBSD.org>
[pf3gnuchains/gcc-fork.git] / gcc / config / m68k / dpx2g.h
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 */