1 /* Base configuration file for all NetBSD targets.
2 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
3 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
5 This file is part of GCC.
7 GCC 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 3, or (at your option)
12 GCC 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 GCC; see the file COPYING3. If not see
19 <http://www.gnu.org/licenses/>. */
21 /* TARGET_OS_CPP_BUILTINS() common to all NetBSD targets. */
22 #define NETBSD_OS_CPP_BUILTINS_COMMON() \
25 builtin_define ("__NetBSD__"); \
26 builtin_define ("__unix__"); \
27 builtin_assert ("system=bsd"); \
28 builtin_assert ("system=unix"); \
29 builtin_assert ("system=NetBSD"); \
33 /* CPP_SPEC parts common to all NetBSD targets. */
34 #define NETBSD_CPP_SPEC \
35 "%{posix:-D_POSIX_SOURCE} \
36 %{pthread:-D_REENTRANT -D_PTHREADS}"
38 /* NETBSD_NATIVE is defined when gcc is integrated into the NetBSD
39 source tree so it can be configured appropriately without using
40 the GNU configure/build mechanism. */
44 /* Look for the include files in the system-defined places. */
46 #undef GPLUSPLUS_INCLUDE_DIR
47 #define GPLUSPLUS_INCLUDE_DIR "/usr/include/g++"
49 #undef GCC_INCLUDE_DIR
50 #define GCC_INCLUDE_DIR "/usr/include"
52 #undef INCLUDE_DEFAULTS
53 #define INCLUDE_DEFAULTS \
55 { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 }, \
56 { GCC_INCLUDE_DIR, "GCC", 0, 0 }, \
60 /* Under NetBSD, the normal location of the compiler back ends is the
61 /usr/libexec directory. */
63 #undef STANDARD_EXEC_PREFIX
64 #define STANDARD_EXEC_PREFIX "/usr/libexec/"
66 /* Under NetBSD, the normal location of the various *crt*.o files is the
67 /usr/lib directory. */
69 #undef STANDARD_STARTFILE_PREFIX
70 #define STANDARD_STARTFILE_PREFIX "/usr/lib/"
72 #endif /* NETBSD_NATIVE */
75 /* Provide a LIB_SPEC appropriate for NetBSD. Here we:
77 1. Select the appropriate set of libs, depending on whether we're
80 2. Include the pthread library if -pthread is specified (only
81 if threads are enabled).
83 3. Include the posix library if -posix is specified.
85 FIXME: Could eliminate the duplication here if we were allowed to
86 use string concatenation. */
88 #ifdef NETBSD_ENABLE_PTHREADS
89 #define NETBSD_LIB_SPEC \
107 #define NETBSD_LIB_SPEC \
122 #define LIB_SPEC NETBSD_LIB_SPEC
124 /* Provide a LIBGCC_SPEC appropriate for NetBSD. We also want to exclude
125 libgcc with -symbolic. */
128 #define NETBSD_LIBGCC_SPEC \
133 %{shared: -lgcc_pic} \
137 #define NETBSD_LIBGCC_SPEC "%{!shared:%{!symbolic: -lgcc}}"
141 #define LIBGCC_SPEC NETBSD_LIBGCC_SPEC
143 /* When building shared libraries, the initialization and finalization
144 functions for the library are .init and .fini respectively. */
146 #define COLLECT_SHARED_INIT_FUNC(STREAM,FUNC) \
148 fprintf ((STREAM), "void __init() __asm__ (\".init\");"); \
149 fprintf ((STREAM), "void __init() {\n\t%s();\n}\n", (FUNC)); \
152 #define COLLECT_SHARED_FINI_FUNC(STREAM,FUNC) \
154 fprintf ((STREAM), "void __fini() __asm__ (\".fini\");"); \
155 fprintf ((STREAM), "void __fini() {\n\t%s();\n}\n", (FUNC)); \
158 #undef TARGET_POSIX_IO
159 #define TARGET_POSIX_IO
161 /* Don't assume anything about the header files. */
162 #undef NO_IMPLICIT_EXTERN_C
163 #define NO_IMPLICIT_EXTERN_C 1
165 /* Define some types that are the same on all NetBSD platforms,
166 making them agree with <machine/ansi.h>. */
169 #define WCHAR_TYPE "int"
171 #undef WCHAR_TYPE_SIZE
172 #define WCHAR_TYPE_SIZE 32
175 #define WINT_TYPE "int"