Add x prefix to v850e case for handling --with-cpu=v850e.
[official-gcc.git] / gcc / config / netbsd.h
blobb57d412e53b6ef385f2534160eed8379367d2184
1 /* Base configuration file for all NetBSD targets.
2 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
3 Free Software Foundation, Inc.
5 This file is part of GNU CC.
7 GNU CC is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2, or (at your option)
10 any later version.
12 GNU CC is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with GNU CC; see the file COPYING. If not, write to
19 the Free Software Foundation, 59 Temple Place - Suite 330,
20 Boston, MA 02111-1307, USA. */
22 /* TARGET_OS_CPP_BUILTINS() common to all NetBSD targets. */
23 #define NETBSD_OS_CPP_BUILTINS_COMMON() \
24 do \
25 { \
26 builtin_define ("__NetBSD__"); \
27 builtin_assert ("system=unix"); \
28 builtin_assert ("system=NetBSD"); \
29 } \
30 while (0)
32 /* TARGET_OS_CPP_BUILTINS() common to all LP64 NetBSD targets. */
33 #define NETBSD_OS_CPP_BUILTINS_LP64() \
34 do \
35 { \
36 builtin_define ("_LP64"); \
37 } \
38 while (0)
40 /* CPP_SPEC parts common to all NetBSD targets. */
41 #define NETBSD_CPP_SPEC "%{posix:-D_POSIX_SOURCE}"
43 /* NETBSD_NATIVE is defined when gcc is integrated into the NetBSD
44 source tree so it can be configured appropriately without using
45 the GNU configure/build mechanism. */
47 #ifdef NETBSD_NATIVE
49 /* Look for the include files in the system-defined places. */
51 #undef GPLUSPLUS_INCLUDE_DIR
52 #define GPLUSPLUS_INCLUDE_DIR "/usr/include/g++"
54 #undef GCC_INCLUDE_DIR
55 #define GCC_INCLUDE_DIR "/usr/include"
57 #undef INCLUDE_DEFAULTS
58 #define INCLUDE_DEFAULTS \
59 { \
60 { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 }, \
61 { GCC_INCLUDE_DIR, "GCC", 0, 0 }, \
62 { 0, 0, 0, 0 } \
65 /* Under NetBSD, the normal location of the compiler back ends is the
66 /usr/libexec directory. */
68 #undef STANDARD_EXEC_PREFIX
69 #define STANDARD_EXEC_PREFIX "/usr/libexec/"
71 /* Under NetBSD, the normal location of the various *crt*.o files is the
72 /usr/lib directory. */
74 #undef STANDARD_STARTFILE_PREFIX
75 #define STANDARD_STARTFILE_PREFIX "/usr/lib/"
77 #endif /* NETBSD_NATIVE */
80 /* Provide a LIB_SPEC appropriate for NetBSD. Here we:
82 1. Select the appropriate set of libs, depending on whether we're
83 profiling.
85 2. Include the pthread library if -pthread is specified.
87 3. Include the posix library if -posix is specified. */
89 #undef LIB_SPEC
90 #define LIB_SPEC \
91 "%{pthread: \
92 %{!p: \
93 %{!pg:-lpthread}} \
94 %{p:-lpthread_p} \
95 %{pg:-lpthread_p}} \
96 %{posix: \
97 %{!p: \
98 %{!pg:-lposix}} \
99 %{p:-lposix_p} \
100 %{pg:-lposix_p}} \
101 %{!shared: \
102 %{!symbolic: \
103 %{!p: \
104 %{!pg:-lc}} \
105 %{p:-lc_p} \
106 %{pg:-lc_p}}}"
108 /* Provide a LIBGCC_SPEC appropriate for NetBSD. We also want to exclude
109 libgcc with -symbolic. */
111 #undef LIBGCC_SPEC
112 #ifdef NETBSD_NATIVE
113 #define LIBGCC_SPEC \
114 "%{!symbolic: \
115 %{!shared: \
116 %{!p: \
117 %{!pg: -lgcc}}} \
118 %{shared: -lgcc_pic} \
119 %{p: -lgcc_p} \
120 %{pg: -lgcc_p}}"
121 #else
122 #define LIBGCC_SPEC "%{!shared:%{!symbolic: -lgcc}}"
123 #endif
125 /* When building shared libraries, the initialization and finalization
126 functions for the library are .init and .fini respectively. */
128 #define COLLECT_SHARED_INIT_FUNC(STREAM,FUNC) \
129 do { \
130 fprintf ((STREAM), "void __init() __asm__ (\".init\");"); \
131 fprintf ((STREAM), "void __init() {\n\t%s();\n}\n", (FUNC)); \
132 } while (0)
134 #define COLLECT_SHARED_FINI_FUNC(STREAM,FUNC) \
135 do { \
136 fprintf ((STREAM), "void __fini() __asm__ (\".fini\");"); \
137 fprintf ((STREAM), "void __fini() {\n\t%s();\n}\n", (FUNC)); \
138 } while (0)
140 #undef TARGET_HAS_F_SETLKW
141 #define TARGET_HAS_F_SETLKW
143 /* Implicit library calls should use memcpy, not bcopy, etc. */
145 #undef TARGET_MEM_FUNCTIONS
146 #define TARGET_MEM_FUNCTIONS 1
148 /* Handle #pragma weak and #pragma pack. */
150 #define HANDLE_SYSV_PRAGMA
153 /* Define some types that are the same on all NetBSD platforms,
154 making them agree with <machine/ansi.h>. */
156 #undef WCHAR_TYPE
157 #define WCHAR_TYPE "int"
159 #undef WCHAR_TYPE_SIZE
160 #define WCHAR_TYPE_SIZE 32
162 #undef WINT_TYPE
163 #define WINT_TYPE "int"