stdio.h not needed
[fw/sdcc] / support / cpp / i386 / i386iscgas.h
1 /* Definitions for Intel 386 running Interactive Unix System V,
2    producing stabs-in-coff output (using a slightly modified gas).
3    Specifically, this is for recent versions that support POSIX;
4    for version 2.0.2, use configuration option i386-sysv instead.  */
5
6 /* Underscores are not used on ISC systems (probably not on any COFF
7    system), despite the comments in i386/gas.h.  If this is not defined,
8    enquire (for example) will fail to link.  --karl@cs.umb.edu  */
9 #define NO_UNDERSCORES
10
11 /* Mostly like other gas-using systems.  */
12 #include "i386/gas.h"
13
14 /* But with ISC-specific additions.  */
15 #include "i386/isc.h"
16
17 /* We do not want to output SDB debugging information.  */
18
19 #undef SDB_DEBUGGING_INFO
20
21 /* We want to output DBX debugging information.  */
22
23 #define DBX_DEBUGGING_INFO
24
25
26 /* The function `dbxout_init' in dbxout.c omits the first character of
27    `ltext_label_name' when outputting the main source directory and main
28    source filename.  I don't understand why, but rather than making a
29    system-independent change there, I override dbxout.c's defaults.
30    Perhaps it would be better to use ".Ltext0" instead of
31    `ltext_label_name', but we've already generated the label, so we just
32    use it here.  --karl@cs.umb.edu  */
33 #define DBX_OUTPUT_MAIN_SOURCE_DIRECTORY(asmfile, cwd)                  \
34   do {  fprintf (asmfile, "%s ", ASM_STABS_OP);                         \
35         output_quoted_string (asmfile, cwd);                            \
36         fprintf (asmfile, ",%d,0,0,%s\n", N_SO, ltext_label_name);      \
37   } while (0)
38 #define DBX_OUTPUT_MAIN_SOURCE_FILENAME(asmfile, input_file_name)       \
39   fprintf (asmfile, "%s ", ASM_STABS_OP);                               \
40   output_quoted_string (input_file_name);                               \
41   fprintf (asmfile, ",%d,0,0,%s\n", N_SO, ltext_label_name);            \
42   text_section ();                                                      \
43   ASM_OUTPUT_INTERNAL_LABEL (asmfile, "Ltext", 0)
44
45
46 /* Because we don't include `svr3.h', we haven't yet defined SIZE_TYPE
47    and PTRDIFF_TYPE.  ISC's definitions don't match GCC's defaults, so: */
48
49 #undef SIZE_TYPE
50 #define SIZE_TYPE "unsigned int"
51
52 #undef PTRDIFF_TYPE
53 #define PTRDIFF_TYPE "int"
54
55
56 /* But we can't use crtbegin.o and crtend.o, because gas 1.38.1 doesn't
57    grok .section.  The definitions here are otherwise identical to those
58    in i386/isc.h.  */
59 #undef STARTFILE_SPEC
60 #define STARTFILE_SPEC \
61   "%{!shlib:%{posix:%{pg:mcrtp1.o%s}%{!pg:%{p:mcrtp1.o%s}%{!p:crtp1.o%s}}}\
62    %{!posix:%{pg:mcrt1.o%s}%{!pg:%{p:mcrt1.o%s}%{!p:crt1.o%s}}\
63    %{p:-L/lib/libp} %{pg:-L/lib/libp}}}\
64    %{shlib:%{posix:crtp1.o%s}%{!posix:crt1.o%s}}"
65
66 #undef ENDFILE_SPEC
67 #define ENDFILE_SPEC "crtn.o%s"