933f18409c62c653e3d96f8357ac672e32eb0fe3
1 /* Configuration for an i386 running MS-DOS with djgpp/go32. */
5 #define NO_STAB_H /* DJGPP has no stab.h */
7 /* Don't assume anything about the header files. */
8 #define NO_IMPLICIT_EXTERN_C
10 #define HANDLE_SYSV_PRAGMA
12 #define YES_UNDERSCORES
19 #define CPP_PREDEFINES "-Dunix -Di386 -DGO32 -DMSDOS \
20 -Asystem(unix) -Asystem(msdos) -Acpu(i386) -Amachine(i386)"
23 #define EXTRA_SECTIONS in_ctor, in_dtor
25 #undef EXTRA_SECTION_FUNCTIONS
26 #define EXTRA_SECTION_FUNCTIONS \
27 CTOR_SECTION_FUNCTION \
30 #define CTOR_SECTION_FUNCTION \
34 if (in_section != in_ctor) \
36 fprintf (asm_out_file, "\t.section .ctor\n"); \
37 in_section = in_ctor; \
41 #define DTOR_SECTION_FUNCTION \
45 if (in_section != in_dtor) \
47 fprintf (asm_out_file, "\t.section .dtor\n"); \
48 in_section = in_dtor; \
52 #define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \
55 fprintf (FILE, "%s\t", ASM_LONG); \
56 assemble_name (FILE, NAME); \
57 fprintf (FILE, "\n"); \
60 /* Allow (eg) __attribute__((section "locked")) to work */
61 #define ASM_OUTPUT_SECTION_NAME(FILE, DECL, NAME)\
63 fprintf (FILE, "\t.section %s\n", NAME); \
66 #define ASM_OUTPUT_DESTRUCTOR(FILE,NAME) \
69 fprintf (FILE, "%s\t", ASM_LONG); \
70 assemble_name (FILE, NAME); \
71 fprintf (FILE, "\n"); \
74 /* Output at beginning of assembler file. */
75 /* The .file command should always begin the output. */
76 /* Use the main_input_filename instead of dump_base_name */
79 #define ASM_FILE_START(FILE) \
81 output_file_directive (FILE, main_input_filename); \
84 #define ASM_OUTPUT_SECTION_NAME(FILE, DECL, NAME)\
86 fprintf (FILE, "\t.section %s\n", NAME); \
89 /* This is how to output an assembler line
90 that says to advance the location counter
91 to a multiple of 2**LOG bytes. */
93 #undef ASM_OUTPUT_ALIGN
94 #define ASM_OUTPUT_ALIGN(FILE,LOG) \
95 if ((LOG) != 0) fprintf ((FILE), "\t.align %d\n", 1<<(LOG))