Define NO_IMPLICIT_EXTERN_C
[gcc.git] / gcc / config / i386 / go32.h
1 /* Configuration for an i386 running MS-DOS with djgpp/go32. */
2
3 /* Don't assume anything about the header files. */
4 #define NO_IMPLICIT_EXTERN_C
5
6 #define YES_UNDERSCORES
7
8 #include "i386/gas.h"
9
10 #ifdef CPP_PREDEFINES
11 #undef CPP_PREDEFINES
12 #endif
13 #define CPP_PREDEFINES "-Dunix -Di386 -DGO32 -DMSDOS \
14 -Asystem(unix) -Asystem(msdos) -Acpu(i386) -Amachine(i386)"
15
16 #undef EXTRA_SECTIONS
17 #define EXTRA_SECTIONS in_ctor, in_dtor
18
19 #undef EXTRA_SECTION_FUNCTIONS
20 #define EXTRA_SECTION_FUNCTIONS \
21 CTOR_SECTION_FUNCTION \
22 DTOR_SECTION_FUNCTION
23
24 #define CTOR_SECTION_FUNCTION \
25 void \
26 ctor_section () \
27 { \
28 if (in_section != in_ctor) \
29 { \
30 fprintf (asm_out_file, "\t.section .ctor\n"); \
31 in_section = in_ctor; \
32 } \
33 }
34
35 #define DTOR_SECTION_FUNCTION \
36 void \
37 dtor_section () \
38 { \
39 if (in_section != in_dtor) \
40 { \
41 fprintf (asm_out_file, "\t.section .dtor\n"); \
42 in_section = in_dtor; \
43 } \
44 }
45
46 #define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \
47 do { \
48 ctor_section (); \
49 fprintf (FILE, "%s\t", ASM_LONG); \
50 assemble_name (FILE, NAME); \
51 fprintf (FILE, "\n"); \
52 } while (0)
53
54 #define ASM_OUTPUT_DESTRUCTOR(FILE,NAME) \
55 do { \
56 dtor_section (); \
57 fprintf (FILE, "%s\t", ASM_LONG); \
58 assemble_name (FILE, NAME); \
59 fprintf (FILE, "\n"); \
60 } while (0)
61
62