yann@2415
|
1 |
# gcc configuration options
|
yann@2144
|
2 |
|
yann@2415
|
3 |
config CC_ENABLE_CXX_FLAGS
|
yann@2415
|
4 |
string
|
yann@2415
|
5 |
prompt "Flags to pass to --enable-cxx-flags"
|
yann@2415
|
6 |
default ""
|
yann@2415
|
7 |
help
|
yann@2415
|
8 |
Enter here the value of the gcc's ./configure option --enable-cxx-flags.
|
yann@2415
|
9 |
Leave empty if you don't know better.
|
yann@2415
|
10 |
|
yann@2415
|
11 |
Note: just pass in the option _value_, that is only the part that goes
|
yann@2415
|
12 |
after the '=' sign.
|
yann@2415
|
13 |
|
yann@2467
|
14 |
config CC_CORE_EXTRA_CONFIG_ARRAY
|
yann@2415
|
15 |
string
|
yann@2415
|
16 |
prompt "Core gcc extra config"
|
yann@2415
|
17 |
default ""
|
yann@2415
|
18 |
help
|
yann@2415
|
19 |
Extra flags to pass onto ./configure when configuring the core gcc.
|
yann@2415
|
20 |
|
yann@2415
|
21 |
The core gcc is a stripped down, C-only compiler needed to build
|
yann@2415
|
22 |
the C library. Kinda bootstrap gcc, if you wish.
|
yann@2469
|
23 |
|
yann@2469
|
24 |
You can enter multiple arguments here, and arguments can contain spaces
|
yann@2469
|
25 |
if they are properly quoted (or escaped, but prefer quotes). Eg.:
|
yann@2469
|
26 |
--with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
|
yann@2415
|
27 |
|
yann@2467
|
28 |
config CC_EXTRA_CONFIG_ARRAY
|
yann@2415
|
29 |
string
|
yann@2415
|
30 |
prompt "gcc extra config"
|
yann@2415
|
31 |
default ""
|
yann@2415
|
32 |
depends on ! BARE_METAL
|
yann@2415
|
33 |
help
|
yann@2415
|
34 |
Extra flags to pass onto ./configure when configuring gcc.
|
yann@2469
|
35 |
|
yann@2469
|
36 |
You can enter multiple arguments here, and arguments can contain spaces
|
yann@2469
|
37 |
if they are properly quoted (or escaped, but prefer quotes). Eg.:
|
yann@2469
|
38 |
--with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
|
yann@2415
|
39 |
|
yann@2415
|
40 |
config STATIC_TOOLCHAIN
|
yann@2415
|
41 |
select CC_STATIC_LIBSTDCXX if CC_GCC_4_4_or_later
|
yann@2415
|
42 |
|
yann@2415
|
43 |
config CC_STATIC_LIBSTDCXX
|
yann@2041
|
44 |
bool
|
yann@2415
|
45 |
prompt "Link libstdc++ statically into the gcc binary"
|
yann@2041
|
46 |
default y
|
yann@2415
|
47 |
depends on CC_GCC_4_4_or_later
|
yann@2717
|
48 |
select WANTS_STATIC_LINK
|
yann@2041
|
49 |
help
|
yann@2415
|
50 |
Newer gcc versions use the PPL library which is C++ code. Statically
|
yann@2415
|
51 |
linking libstdc++ increases the likeliness that the gcc binary will
|
yann@2415
|
52 |
run on machines other than the one which it was built on, without
|
yann@2415
|
53 |
having to worry about distributing the matching version of libstdc++
|
yann@2415
|
54 |
along with it.
|
yann@2415
|
55 |
|
yann@2814
|
56 |
config CC_GCC_SYSTEM_ZLIB
|
yann@2814
|
57 |
bool
|
yann@2814
|
58 |
prompt "Use system zlib"
|
yann@2814
|
59 |
help
|
yann@2814
|
60 |
Do not use bundled zlib, and use the zlib already available for
|
yann@2814
|
61 |
the host (eg. the system library).
|
yann@2814
|
62 |
|
yann@2814
|
63 |
If you want to build a static toolchain, you will need to also
|
yann@2814
|
64 |
install the static version of zlib for your host.
|
yann@2814
|
65 |
|
yann@2814
|
66 |
If unsure, say 'n'.
|
yann@2814
|
67 |
|
yann@2415
|
68 |
#-----------------------------------------------------------------------------
|
yann@2415
|
69 |
# Optimisation features
|
yann@2415
|
70 |
|
yann@2415
|
71 |
comment "Optimisation features"
|
yann@2041
|
72 |
|
yann@3217
|
73 |
# Defined in config/cc/gcc.in
|
yann@2122
|
74 |
config CC_GCC_USE_GRAPHITE
|
yann@2122
|
75 |
prompt "Enable GRAPHITE loop optimisations"
|
yann@2122
|
76 |
|
yann@2287
|
77 |
# The way LTO works is a bit twisted.
|
yann@2287
|
78 |
# See: http://gcc.gnu.org/wiki/LinkTimeOptimization#Requirements
|
yann@2287
|
79 |
# Basically:
|
yann@2287
|
80 |
# - if binutils has plugins: LTO is handled by ld/gold by loading
|
yann@2287
|
81 |
# the plugin when linking
|
yann@2287
|
82 |
# - if binutils does not have plugins: LTO is handled by collect2
|
yann@2287
|
83 |
# In any case, LTO support does not depend on plugins, but takes
|
yann@2287
|
84 |
# advantage of it
|
yann@2363
|
85 |
# Also, only the 4.5 series needs libelf for LTO; 4.6 has dropped
|
yann@2363
|
86 |
# the dependency.
|
yann@3217
|
87 |
# Defined in config/cc/gcc.in
|
yann@2122
|
88 |
config CC_GCC_USE_LTO
|
yann@2122
|
89 |
prompt "Enable LTO"
|
yann@2122
|
90 |
|
yann@2415
|
91 |
#-----------------------------------------------------------------------------
|
yann@2415
|
92 |
comment "Settings for libraries running on target"
|
bryanhundven@2211
|
93 |
|
yann@2415
|
94 |
config CC_GCC_ENABLE_TARGET_OPTSPACE
|
js@2045
|
95 |
bool
|
yann@2415
|
96 |
prompt "Optimize gcc libs for size"
|
js@2045
|
97 |
default y
|
js@2045
|
98 |
help
|
yann@2415
|
99 |
Pass --enable-target-optspace to crossgcc's configure.
|
yann@2415
|
100 |
|
yann@2415
|
101 |
This will compile crossgcc's libs with -Os.
|
js@2045
|
102 |
|
yann@2144
|
103 |
config CC_GCC_LIBMUDFLAP
|
yann@2144
|
104 |
bool
|
yann@2144
|
105 |
prompt "Compile libmudflap"
|
yann@2144
|
106 |
help
|
yann@2144
|
107 |
libmudflap is a pointer-use checking tool, which can detect
|
yann@2144
|
108 |
various mis-usages of pointers in C and (to some extents) C++.
|
yann@2144
|
109 |
|
yann@2144
|
110 |
You should say 'N' here, as libmduflap generates instrumented
|
yann@2144
|
111 |
code (thus it is a bit bigger and a bit slower) and requires
|
yann@2144
|
112 |
re-compilation and re-link, while it exists better run-time
|
yann@2144
|
113 |
alternatives (eg. DUMA, dmalloc...) that need neither re-
|
yann@2144
|
114 |
compilation nor re-link.
|
yann@2144
|
115 |
|
yann@2145
|
116 |
config CC_GCC_LIBGOMP
|
yann@2145
|
117 |
bool
|
yann@2145
|
118 |
prompt "Compile libgomp"
|
yann@2145
|
119 |
help
|
yann@2145
|
120 |
libgomp is "the GNU implementation of the OpenMP Application Programming
|
yann@2145
|
121 |
Interface (API) for multi-platform shared-memory parallel programming in
|
yann@2145
|
122 |
C/C++ and Fortran". See:
|
yann@2145
|
123 |
http://gcc.gnu.org/onlinedocs/libgomp/
|
yann@2145
|
124 |
|
yann@2145
|
125 |
The default is 'N'. Say 'Y' if you need it, and report success/failure.
|
yann@2145
|
126 |
|
yann@2146
|
127 |
config CC_GCC_LIBSSP
|
yann@2146
|
128 |
bool
|
yann@2146
|
129 |
prompt "Compile libssp"
|
yann@2146
|
130 |
help
|
yann@2146
|
131 |
libssp is the run-time Stack-Smashing Protection library.
|
yann@2146
|
132 |
|
yann@2146
|
133 |
The default is 'N'. Say 'Y' if you need it, and report success/failure.
|
yann@2146
|
134 |
|
yann@2980
|
135 |
config CC_GCC_LIBQUADMATH
|
yann@2980
|
136 |
bool
|
yann@2980
|
137 |
prompt "Compile libquadmath"
|
yann@2980
|
138 |
depends on CC_GCC_HAS_LIBQUADMATH
|
yann@2980
|
139 |
help
|
yann@2980
|
140 |
libquadmath is a library which provides quad-precision mathematical
|
yann@2980
|
141 |
functions on targets supporting the __float128 datatype. See:
|
yann@2980
|
142 |
http://gcc.gnu.org/onlinedocs/libquadmath/
|
yann@2980
|
143 |
|
yann@2980
|
144 |
The default is 'N'. Say 'Y' if you need it, and report success/failure.
|
yann@2980
|
145 |
|
yann@2144
|
146 |
#-----------------------------------------------------------------------------
|
yann@2144
|
147 |
|
yann@2041
|
148 |
comment "Misc. obscure options."
|
yann@2041
|
149 |
|
yann@2041
|
150 |
config CC_CXA_ATEXIT
|
yann@2041
|
151 |
bool
|
yann@2041
|
152 |
prompt "Use __cxa_atexit"
|
yann@2041
|
153 |
default y
|
yann@2041
|
154 |
depends on ! BARE_METAL
|
yann@2041
|
155 |
help
|
yann@2041
|
156 |
If you get the missing symbol "__cxa_atexit" when building C++ programs,
|
yann@2041
|
157 |
you might want to try disabling this option.
|
yann@2041
|
158 |
|
yann@2041
|
159 |
config CC_GCC_DISABLE_PCH
|
yann@2041
|
160 |
bool
|
yann@2041
|
161 |
prompt "Do not build PCH"
|
yann@2041
|
162 |
help
|
yann@2041
|
163 |
Say 'y' here to not use Pre-Compiled Headers in the resulting toolchain.
|
yann@2041
|
164 |
at the expense of speed when compiling C++ code.
|
yann@2041
|
165 |
|
yann@2041
|
166 |
For some configurations (most notably canadian?), PCH are broken, and
|
yann@2041
|
167 |
need to be disabled. Please see:
|
yann@2041
|
168 |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40974
|
yann@2041
|
169 |
|
yann@2042
|
170 |
config CC_GCC_SJLJ_EXCEPTIONS
|
yann@2042
|
171 |
tristate
|
yann@2041
|
172 |
prompt "Use sjlj for exceptions"
|
yann@2054
|
173 |
depends on ! BARE_METAL
|
yann@2042
|
174 |
default m
|
yann@2041
|
175 |
help
|
yann@2042
|
176 |
'sjlj' is short for setjmp/longjmp.
|
yann@2041
|
177 |
|
yann@2042
|
178 |
On some architectures, stack unwinding during exception handling
|
yann@2042
|
179 |
works perfectly well without using sjlj, while on some others,
|
yann@2042
|
180 |
use of sjlj is required for proper stack unwinding.
|
yann@2041
|
181 |
|
yann@2042
|
182 |
Option | sjlj use | Associated ./configure switch
|
yann@2042
|
183 |
---------+--------------------+--------------------------------
|
yann@2042
|
184 |
Y | forcibly used | --enable-sjlj-exceptions
|
yann@2042
|
185 |
M | auto | (none, ./configure decides)
|
yann@2042
|
186 |
N | forcibly not used | --disable-sjlj-exceptions
|
yann@2041
|
187 |
|
yann@2042
|
188 |
It should be safe to say 'M' or 'N'.
|
yann@2042
|
189 |
|
yann@2042
|
190 |
It can happen that ./configure is wrong in some cases. Known
|
yann@2042
|
191 |
case is for ARM big endian, where you should say 'N'.
|
yann@2043
|
192 |
|
yann@2143
|
193 |
config CC_GCC_LDBL_128
|
yann@2143
|
194 |
tristate
|
yann@2143
|
195 |
prompt "Enable 128-bit long doubles"
|
yann@2143
|
196 |
default m
|
yann@2143
|
197 |
depends on CC_GCC_4_2_or_later
|
yann@2143
|
198 |
help
|
yann@2143
|
199 |
Saying 'Y' will force gcc to use 128-bit wide long doubles
|
yann@2143
|
200 |
Saying 'N' will force gcc to use 64-bit wide long doubles
|
yann@2143
|
201 |
Saying 'M' will let gcc choose (default is 128-bit for
|
yann@2143
|
202 |
glibc >= 2.4, 64-bit otherwise)
|
yann@2143
|
203 |
|
yann@2143
|
204 |
If in doubt, keep the default, ie. 'M'.
|
yann@2521
|
205 |
|
yann@2521
|
206 |
config CC_GCC_BUILD_ID
|
yann@2521
|
207 |
bool
|
yann@2521
|
208 |
prompt "Enable build-id"
|
yann@2521
|
209 |
depends on CC_GCC_HAS_BUILD_ID
|
yann@2521
|
210 |
help
|
yann@2521
|
211 |
Tells GCC to pass --build-id option to the linker for all final
|
yann@2521
|
212 |
links (links performed without the -r or --relocatable option),
|
yann@2521
|
213 |
if the linker supports it. If you say 'y' here, but your linker
|
yann@2521
|
214 |
does not support --build-id option, a warning is issued and this
|
yann@2521
|
215 |
option is ignored.
|
yann@2521
|
216 |
|
yann@2521
|
217 |
The default is off.
|
yann@2522
|
218 |
|
yann@2522
|
219 |
choice CC_GCC_LNK_HASH_STYLE_CHOICE
|
yann@2522
|
220 |
bool
|
yann@2522
|
221 |
prompt "linker hash style"
|
yann@2522
|
222 |
depends on CC_GCC_HAS_LNK_HASH_STYLE
|
yann@2948
|
223 |
depends on BINUTILS_HAS_HASH_STYLE
|
yann@2522
|
224 |
|
yann@2522
|
225 |
config CC_GCC_LNK_HASH_STYLE_DEFAULT
|
yann@2522
|
226 |
bool
|
yann@2522
|
227 |
prompt "Default"
|
yann@2522
|
228 |
help
|
yann@2522
|
229 |
Do not specify any value, and use the default value (sysv).
|
yann@2522
|
230 |
|
yann@2522
|
231 |
config CC_GCC_LNK_HASH_STYLE_SYSV
|
yann@2522
|
232 |
bool
|
yann@2522
|
233 |
prompt "sysv"
|
yann@2522
|
234 |
help
|
yann@2522
|
235 |
Force use of the SYSV hash style.
|
yann@2522
|
236 |
|
yann@2522
|
237 |
config CC_GCC_LNK_HASH_STYLE_GNU
|
yann@2522
|
238 |
bool
|
yann@2522
|
239 |
prompt "gnu"
|
yann@2522
|
240 |
help
|
yann@2522
|
241 |
Force use of the GNU hash style.
|
yann@2522
|
242 |
|
yann@2522
|
243 |
config CC_GCC_LNK_HASH_STYLE_BOTH
|
yann@2522
|
244 |
bool
|
yann@2522
|
245 |
prompt "both"
|
yann@2522
|
246 |
help
|
yann@2522
|
247 |
Force use of both hash styles.
|
yann@2522
|
248 |
|
yann@2522
|
249 |
endchoice # CC_GCC_LNK_HASH_STYLE_CHOICE
|
yann@2522
|
250 |
|
yann@2522
|
251 |
config CC_GCC_LNK_HASH_STYLE
|
yann@2522
|
252 |
string
|
yann@2522
|
253 |
default "" if CC_GCC_LNK_HASH_STYLE_DEFAULT
|
yann@2522
|
254 |
default "sysv" if CC_GCC_LNK_HASH_STYLE_SYSV
|
yann@2522
|
255 |
default "gnu" if CC_GCC_LNK_HASH_STYLE_GNU
|
yann@2522
|
256 |
default "both" if CC_GCC_LNK_HASH_STYLE_BOTH
|
yann@2523
|
257 |
|
yann@2523
|
258 |
#-----------------------------------------------------------------------------
|
yann@2523
|
259 |
|
yann@2523
|
260 |
config CC_GCC_HAS_ARCH_OPTIONS
|
yann@2523
|
261 |
bool
|
yann@2523
|
262 |
|
yann@2523
|
263 |
comment "archictecture-specific options"
|
yann@2523
|
264 |
depends on CC_GCC_HAS_ARCH_OPTIONS
|
yann@2523
|
265 |
|
yann@2523
|
266 |
if ARCH_mips
|
yann@2523
|
267 |
source "config/cc/gcc.in.mips"
|
yann@2523
|
268 |
endif # ARCH_mips
|