annotate gcc/config/linux.h @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
67
f6334be47118 update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
1 /* Definitions for systems using the Linux kernel, with or without
f6334be47118 update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
2 MMU, using ELF at the compiler level but possibly FLT for final
f6334be47118 update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
3 linked executables and shared libraries in some no-MMU cases, and
f6334be47118 update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
4 possibly with a choice of libc implementations.
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
5 Copyright (C) 1995-2018 Free Software Foundation, Inc.
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 Contributed by Eric Youngdale.
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 Modified for stabs-in-ELF by H.J. Lu (hjl@lucon.org).
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 This file is part of GCC.
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 GCC is free software; you can redistribute it and/or modify
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 it under the terms of the GNU General Public License as published by
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 the Free Software Foundation; either version 3, or (at your option)
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 any later version.
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 GCC is distributed in the hope that it will be useful,
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 but WITHOUT ANY WARRANTY; without even the implied warranty of
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 GNU General Public License for more details.
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 Under Section 7 of GPL version 3, you are granted additional
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 permissions described in the GCC Runtime Library Exception, version
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 3.1, as published by the Free Software Foundation.
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 You should have received a copy of the GNU General Public License and
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 a copy of the GCC Runtime Library Exception along with this program;
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 <http://www.gnu.org/licenses/>. */
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29
67
f6334be47118 update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
30 /* C libraries supported on Linux. */
f6334be47118 update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
31 #ifdef SINGLE_LIBC
f6334be47118 update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
32 #define OPTION_GLIBC (DEFAULT_LIBC == LIBC_GLIBC)
f6334be47118 update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
33 #define OPTION_UCLIBC (DEFAULT_LIBC == LIBC_UCLIBC)
f6334be47118 update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
34 #define OPTION_BIONIC (DEFAULT_LIBC == LIBC_BIONIC)
111
kono
parents: 67
diff changeset
35 #undef OPTION_MUSL
kono
parents: 67
diff changeset
36 #define OPTION_MUSL (DEFAULT_LIBC == LIBC_MUSL)
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 #else
67
f6334be47118 update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
38 #define OPTION_GLIBC (linux_libc == LIBC_GLIBC)
f6334be47118 update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
39 #define OPTION_UCLIBC (linux_libc == LIBC_UCLIBC)
f6334be47118 update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
40 #define OPTION_BIONIC (linux_libc == LIBC_BIONIC)
111
kono
parents: 67
diff changeset
41 #undef OPTION_MUSL
kono
parents: 67
diff changeset
42 #define OPTION_MUSL (linux_libc == LIBC_MUSL)
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 #endif
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
44
111
kono
parents: 67
diff changeset
45 #define GNU_USER_TARGET_OS_CPP_BUILTINS() \
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 do { \
67
f6334be47118 update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
47 if (OPTION_GLIBC) \
f6334be47118 update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
48 builtin_define ("__gnu_linux__"); \
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 builtin_define_std ("linux"); \
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 builtin_define_std ("unix"); \
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 builtin_assert ("system=linux"); \
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 builtin_assert ("system=unix"); \
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 builtin_assert ("system=posix"); \
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 } while (0)
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
55
67
f6334be47118 update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
56 /* Determine which dynamic linker to use depending on whether GLIBC or
111
kono
parents: 67
diff changeset
57 uClibc or Bionic or musl is the default C library and whether
kono
parents: 67
diff changeset
58 -muclibc or -mglibc or -mbionic or -mmusl has been passed to change
kono
parents: 67
diff changeset
59 the default. */
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
60
111
kono
parents: 67
diff changeset
61 #define CHOOSE_DYNAMIC_LINKER1(LIBC1, LIBC2, LIBC3, LIBC4, LD1, LD2, LD3, LD4) \
kono
parents: 67
diff changeset
62 "%{" LIBC2 ":" LD2 ";:%{" LIBC3 ":" LD3 ";:%{" LIBC4 ":" LD4 ";:" LD1 "}}}"
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
63
67
f6334be47118 update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
64 #if DEFAULT_LIBC == LIBC_GLIBC
111
kono
parents: 67
diff changeset
65 #define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \
kono
parents: 67
diff changeset
66 CHOOSE_DYNAMIC_LINKER1 ("mglibc", "muclibc", "mbionic", "mmusl", G, U, B, M)
67
f6334be47118 update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
67 #elif DEFAULT_LIBC == LIBC_UCLIBC
111
kono
parents: 67
diff changeset
68 #define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \
kono
parents: 67
diff changeset
69 CHOOSE_DYNAMIC_LINKER1 ("muclibc", "mglibc", "mbionic", "mmusl", U, G, B, M)
67
f6334be47118 update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
70 #elif DEFAULT_LIBC == LIBC_BIONIC
111
kono
parents: 67
diff changeset
71 #define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \
kono
parents: 67
diff changeset
72 CHOOSE_DYNAMIC_LINKER1 ("mbionic", "mglibc", "muclibc", "mmusl", B, G, U, M)
kono
parents: 67
diff changeset
73 #elif DEFAULT_LIBC == LIBC_MUSL
kono
parents: 67
diff changeset
74 #define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \
kono
parents: 67
diff changeset
75 CHOOSE_DYNAMIC_LINKER1 ("mmusl", "mglibc", "muclibc", "mbionic", M, G, U, B)
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 #else
67
f6334be47118 update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
77 #error "Unsupported DEFAULT_LIBC"
f6334be47118 update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
78 #endif /* DEFAULT_LIBC */
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
79
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 /* For most targets the following definitions suffice;
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 GLIBC_DYNAMIC_LINKER must be defined for each target using them, or
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 GLIBC_DYNAMIC_LINKER32 and GLIBC_DYNAMIC_LINKER64 for targets
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 supporting both 32-bit and 64-bit compilation. */
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 #define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 #define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 #define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
111
kono
parents: 67
diff changeset
87 #define UCLIBC_DYNAMIC_LINKERX32 "/lib/ldx32-uClibc.so.0"
67
f6334be47118 update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
88 #define BIONIC_DYNAMIC_LINKER "/system/bin/linker"
f6334be47118 update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
89 #define BIONIC_DYNAMIC_LINKER32 "/system/bin/linker"
f6334be47118 update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
90 #define BIONIC_DYNAMIC_LINKER64 "/system/bin/linker64"
111
kono
parents: 67
diff changeset
91 #define BIONIC_DYNAMIC_LINKERX32 "/system/bin/linkerx32"
kono
parents: 67
diff changeset
92 /* Should be redefined for each target that supports musl. */
kono
parents: 67
diff changeset
93 #define MUSL_DYNAMIC_LINKER "/dev/null"
kono
parents: 67
diff changeset
94 #define MUSL_DYNAMIC_LINKER32 "/dev/null"
kono
parents: 67
diff changeset
95 #define MUSL_DYNAMIC_LINKER64 "/dev/null"
kono
parents: 67
diff changeset
96 #define MUSL_DYNAMIC_LINKERX32 "/dev/null"
67
f6334be47118 update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
97
111
kono
parents: 67
diff changeset
98 #define GNU_USER_DYNAMIC_LINKER \
67
f6334be47118 update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
99 CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, \
111
kono
parents: 67
diff changeset
100 BIONIC_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER)
kono
parents: 67
diff changeset
101 #define GNU_USER_DYNAMIC_LINKER32 \
67
f6334be47118 update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
102 CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32, \
111
kono
parents: 67
diff changeset
103 BIONIC_DYNAMIC_LINKER32, MUSL_DYNAMIC_LINKER32)
kono
parents: 67
diff changeset
104 #define GNU_USER_DYNAMIC_LINKER64 \
67
f6334be47118 update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
105 CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64, \
111
kono
parents: 67
diff changeset
106 BIONIC_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKER64)
kono
parents: 67
diff changeset
107 #define GNU_USER_DYNAMIC_LINKERX32 \
kono
parents: 67
diff changeset
108 CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERX32, UCLIBC_DYNAMIC_LINKERX32, \
kono
parents: 67
diff changeset
109 BIONIC_DYNAMIC_LINKERX32, MUSL_DYNAMIC_LINKERX32)
kono
parents: 67
diff changeset
110
kono
parents: 67
diff changeset
111 /* Whether we have Bionic libc runtime */
kono
parents: 67
diff changeset
112 #undef TARGET_HAS_BIONIC
kono
parents: 67
diff changeset
113 #define TARGET_HAS_BIONIC (OPTION_BIONIC)
kono
parents: 67
diff changeset
114
kono
parents: 67
diff changeset
115 /* musl avoids problematic includes by rearranging the include directories.
kono
parents: 67
diff changeset
116 * Unfortunately, this is mostly duplicated from cppdefault.c */
kono
parents: 67
diff changeset
117 #if DEFAULT_LIBC == LIBC_MUSL
kono
parents: 67
diff changeset
118 #define INCLUDE_DEFAULTS_MUSL_GPP \
kono
parents: 67
diff changeset
119 { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, \
kono
parents: 67
diff changeset
120 GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, \
kono
parents: 67
diff changeset
121 { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, \
kono
parents: 67
diff changeset
122 GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 }, \
kono
parents: 67
diff changeset
123 { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, \
kono
parents: 67
diff changeset
124 GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
kono
parents: 67
diff changeset
125
kono
parents: 67
diff changeset
126 #ifdef LOCAL_INCLUDE_DIR
kono
parents: 67
diff changeset
127 #define INCLUDE_DEFAULTS_MUSL_LOCAL \
kono
parents: 67
diff changeset
128 { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 }, \
kono
parents: 67
diff changeset
129 { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 },
kono
parents: 67
diff changeset
130 #else
kono
parents: 67
diff changeset
131 #define INCLUDE_DEFAULTS_MUSL_LOCAL
kono
parents: 67
diff changeset
132 #endif
kono
parents: 67
diff changeset
133
kono
parents: 67
diff changeset
134 #ifdef PREFIX_INCLUDE_DIR
kono
parents: 67
diff changeset
135 #define INCLUDE_DEFAULTS_MUSL_PREFIX \
kono
parents: 67
diff changeset
136 { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0},
kono
parents: 67
diff changeset
137 #else
kono
parents: 67
diff changeset
138 #define INCLUDE_DEFAULTS_MUSL_PREFIX
kono
parents: 67
diff changeset
139 #endif
kono
parents: 67
diff changeset
140
kono
parents: 67
diff changeset
141 #ifdef CROSS_INCLUDE_DIR
kono
parents: 67
diff changeset
142 #define INCLUDE_DEFAULTS_MUSL_CROSS \
kono
parents: 67
diff changeset
143 { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0},
kono
parents: 67
diff changeset
144 #else
kono
parents: 67
diff changeset
145 #define INCLUDE_DEFAULTS_MUSL_CROSS
kono
parents: 67
diff changeset
146 #endif
kono
parents: 67
diff changeset
147
kono
parents: 67
diff changeset
148 #ifdef TOOL_INCLUDE_DIR
kono
parents: 67
diff changeset
149 #define INCLUDE_DEFAULTS_MUSL_TOOL \
kono
parents: 67
diff changeset
150 { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0},
kono
parents: 67
diff changeset
151 #else
kono
parents: 67
diff changeset
152 #define INCLUDE_DEFAULTS_MUSL_TOOL
kono
parents: 67
diff changeset
153 #endif
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
154
111
kono
parents: 67
diff changeset
155 #ifdef NATIVE_SYSTEM_HEADER_DIR
kono
parents: 67
diff changeset
156 #define INCLUDE_DEFAULTS_MUSL_NATIVE \
kono
parents: 67
diff changeset
157 { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 }, \
kono
parents: 67
diff changeset
158 { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 0 },
kono
parents: 67
diff changeset
159 #else
kono
parents: 67
diff changeset
160 #define INCLUDE_DEFAULTS_MUSL_NATIVE
kono
parents: 67
diff changeset
161 #endif
kono
parents: 67
diff changeset
162
kono
parents: 67
diff changeset
163 #if defined (CROSS_DIRECTORY_STRUCTURE) && !defined (TARGET_SYSTEM_ROOT)
kono
parents: 67
diff changeset
164 # undef INCLUDE_DEFAULTS_MUSL_LOCAL
kono
parents: 67
diff changeset
165 # define INCLUDE_DEFAULTS_MUSL_LOCAL
kono
parents: 67
diff changeset
166 # undef INCLUDE_DEFAULTS_MUSL_NATIVE
kono
parents: 67
diff changeset
167 # define INCLUDE_DEFAULTS_MUSL_NATIVE
kono
parents: 67
diff changeset
168 #else
kono
parents: 67
diff changeset
169 # undef INCLUDE_DEFAULTS_MUSL_CROSS
kono
parents: 67
diff changeset
170 # define INCLUDE_DEFAULTS_MUSL_CROSS
kono
parents: 67
diff changeset
171 #endif
0
a06113de4d67 first commit
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
172
111
kono
parents: 67
diff changeset
173 #undef INCLUDE_DEFAULTS
kono
parents: 67
diff changeset
174 #define INCLUDE_DEFAULTS \
kono
parents: 67
diff changeset
175 { \
kono
parents: 67
diff changeset
176 INCLUDE_DEFAULTS_MUSL_GPP \
kono
parents: 67
diff changeset
177 INCLUDE_DEFAULTS_MUSL_LOCAL \
kono
parents: 67
diff changeset
178 INCLUDE_DEFAULTS_MUSL_PREFIX \
kono
parents: 67
diff changeset
179 INCLUDE_DEFAULTS_MUSL_CROSS \
kono
parents: 67
diff changeset
180 INCLUDE_DEFAULTS_MUSL_TOOL \
kono
parents: 67
diff changeset
181 INCLUDE_DEFAULTS_MUSL_NATIVE \
kono
parents: 67
diff changeset
182 { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 }, \
kono
parents: 67
diff changeset
183 { 0, 0, 0, 0, 0, 0 } \
kono
parents: 67
diff changeset
184 }
kono
parents: 67
diff changeset
185 #endif
kono
parents: 67
diff changeset
186
kono
parents: 67
diff changeset
187 #if (DEFAULT_LIBC == LIBC_UCLIBC) && defined (SINGLE_LIBC) /* uClinux */
kono
parents: 67
diff changeset
188 /* This is a *uclinux* target. We don't define below macros to normal linux
kono
parents: 67
diff changeset
189 versions, because doing so would require *uclinux* targets to include
kono
parents: 67
diff changeset
190 linux.c, linux-protos.h, linux.opt, etc. We could, alternatively, add
kono
parents: 67
diff changeset
191 these files to *uclinux* targets, but that would only pollute option list
kono
parents: 67
diff changeset
192 (add -mglibc, etc.) without adding any useful support. */
kono
parents: 67
diff changeset
193
kono
parents: 67
diff changeset
194 /* Define TARGET_LIBC_HAS_FUNCTION for *uclinux* targets to
kono
parents: 67
diff changeset
195 no_c99_libc_has_function, because uclibc does not, normally, have
kono
parents: 67
diff changeset
196 c99 runtime. If, in special cases, uclibc does have c99 runtime,
kono
parents: 67
diff changeset
197 this should be defined to a new hook. Also please note that for targets
kono
parents: 67
diff changeset
198 like *-linux-uclibc that similar check will also need to be added to
kono
parents: 67
diff changeset
199 linux_libc_has_function. */
kono
parents: 67
diff changeset
200 # undef TARGET_LIBC_HAS_FUNCTION
kono
parents: 67
diff changeset
201 # define TARGET_LIBC_HAS_FUNCTION no_c99_libc_has_function
kono
parents: 67
diff changeset
202
kono
parents: 67
diff changeset
203 #else /* !uClinux, i.e., normal Linux */
kono
parents: 67
diff changeset
204
kono
parents: 67
diff changeset
205 /* Determine what functions are present at the runtime;
kono
parents: 67
diff changeset
206 this includes full c99 runtime and sincos. */
kono
parents: 67
diff changeset
207 # undef TARGET_LIBC_HAS_FUNCTION
kono
parents: 67
diff changeset
208 # define TARGET_LIBC_HAS_FUNCTION linux_libc_has_function
kono
parents: 67
diff changeset
209
kono
parents: 67
diff changeset
210 #endif