xref: /minix3/external/gpl3/gcc/files/minix.h (revision 0b98e8aad89f2bd4ba80b523d73cf29e9dd82ce1)
1 /* Base configuration file for all MINIX targets.
2    Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
3 
4 This file is part of GCC.
5 
6 GCC is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10 
11 GCC is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 GNU General Public License for more details.
15 
16 You should have received a copy of the GNU General Public License
17 along with GCC; see the file COPYING.  If not, write to
18 the Free Software Foundation, 51 Franklin Street, Fifth Floor,
19 Boston, MA 02110-1301, USA.  */
20 
21 /* Common MINIX configuration.
22  * This file maps GCC defines to MINIX defines
23  *
24  * For this to work properly, the order in the tm_file variable has
25  * to be the following:
26  *   minix-spec.h $arch/minix.h minix.h
27  *
28  * minix-spec.h	: specifies default arch-independent values
29  * $arch/minix.h: redefines as needed default minix values
30  * minix.h	: maps GCC defines to the minix defines.
31  */
32 
33 /* In case we need to know.  */
34 #define USING_CONFIG_MINIX 1
35 
36 #undef  SWITCH_TAKES_ARG
37 #define SWITCH_TAKES_ARG(CHAR) (MINIX_SWITCH_TAKES_ARG(CHAR))
38 
39 #undef  WORD_SWITCH_TAKES_ARG
40 #define WORD_SWITCH_TAKES_ARG(STR) (MINIX_WORD_SWITCH_TAKES_ARG(STR))
41 
42 #undef  TARGET_OS_CPP_BUILTINS
43 #define TARGET_OS_CPP_BUILTINS() MINIX_TARGET_OS_CPP_BUILTINS()
44 
45 #if defined(NETBSD_NATIVE)
46 #undef GPLUSPLUS_INCLUDE_DIR
47 #define GPLUSPLUS_INCLUDE_DIR MINIX_GPLUSPLUS_INCLUDE_DIR
48 
49 #undef GPLUSPLUS_BACKWARD_INCLUDE_DIR
50 #define GPLUSPLUS_BACKWARD_INCLUDE_DIR MINIX_GPLUSPLUS_BACKWARD_INCLUDE_DIR
51 
52 #undef GCC_INCLUDE_DIR
53 #define GCC_INCLUDE_DIR MINIX_GCC_INCLUDE_DIR
54 
55 #undef INCLUDE_DEFAULTS
56 #define INCLUDE_DEFAULTS MINIX_INCLUDE_DEFAULTS
57 #endif /* defined(NETBSD_NATIVE) */
58 
59 #undef  CPP_SPEC
60 #define CPP_SPEC MINIX_CPP_SPEC
61 
62 #undef CC1_SPEC
63 #define CC1_SPEC MINIX_CC1_SPEC
64 
65 #undef CC1PLUS_SPEC
66 #define CC1PLUS_SPEC MINIX_CC1PLUS_SPEC
67 
68 #undef  STARTFILE_SPEC
69 #define STARTFILE_SPEC MINIX_STARTFILE_SPEC
70 
71 #undef  ENDFILE_SPEC
72 #define ENDFILE_SPEC MINIX_ENDFILE_SPEC
73 
74 #undef  LIB_SPEC
75 #define LIB_SPEC MINIX_LIB_SPEC
76 
77 #undef	LINK_SPEC
78 #define LINK_SPEC MINIX_LINK_SPEC
79 
80 #undef STANDARD_STARTFILE_PREFIX
81 #define STANDARD_STARTFILE_PREFIX MINIX_STANDARD_STARTFILE_PREFIX
82 
83 #undef STANDARD_STARTFILE_PREFIX_1
84 #define STANDARD_STARTFILE_PREFIX_1 MINIX_STANDARD_STARTFILE_PREFIX
85 
86 #undef LINK_GCC_C_SEQUENCE_SPEC
87 #define LINK_GCC_C_SEQUENCE_SPEC MINIX_LINK_GCC_C_SEQUENCE_SPEC
88 
89 /* This has to be here in order to allow architecture to define the default
90  * content of the additional specs. */
91 #undef  SUBTARGET_EXTRA_SPECS
92 #define SUBTARGET_EXTRA_SPECS \
93   { "subtarget_extra_asm_spec", MINIX_SUBTARGET_EXTRA_ASM_SPEC },	\
94   { "subtarget_asm_float_spec", MINIX_SUBTARGET_ASM_FLOAT_SPEC },	\
95   { "minix_dynamic_linker", MINIX_DYNAMIC_LINKER }
96 
97 #undef  SUBTARGET_CPP_SPEC
98 #define SUBTARGET_CPP_SPEC MINIX_SUBTARGET_CPP_SPEC
99 
100 /* All MINIX Architectures support the ELF object file format.  */
101 #undef  OBJECT_FORMAT_ELF
102 #define OBJECT_FORMAT_ELF
103 
104 /* Use periods rather than dollar signs in special g++ assembler names.
105    This ensures the configuration knows our system correctly so we can link
106    with libraries compiled with the native cc.  */
107 #undef NO_DOLLAR_IN_LABEL
108 
109 /* Don't assume anything about the header files.  */
110 #undef  NO_IMPLICIT_EXTERN_C
111 #define NO_IMPLICIT_EXTERN_C	1
112 
113 /* Handle #pragma weak and #pragma pack.  */
114 #undef HANDLE_SYSV_PRAGMA
115 #define HANDLE_SYSV_PRAGMA 1
116 
117 /* Don't default to pcc-struct-return, we want to retain compatibility with
118    older gcc versions AND pcc-struct-return is nonreentrant.
119    (even though the SVR4 ABI for the i386 says that records and unions are
120    returned in memory).  */
121 
122 #undef  DEFAULT_PCC_STRUCT_RETURN
123 #define DEFAULT_PCC_STRUCT_RETURN 0
124 
125 /* Use --as-needed -lgcc_s for eh support.  */
126 #ifdef HAVE_LD_AS_NEEDED
127 #define USE_LD_AS_NEEDED 1
128 #endif
129 
130 #if defined(HAVE_LD_EH_FRAME_HDR)
131 #define LINK_EH_SPEC "--eh-frame-hdr "
132 #endif
133 
134 #undef TARGET_UNWIND_TABLES_DEFAULT
135 #define TARGET_UNWIND_TABLES_DEFAULT MINIX_TARGET_UNWIND_TABLES_DEFAULT
136