1 # gcc configuration options
3 config CC_ENABLE_CXX_FLAGS
5 prompt "Flags to pass to --enable-cxx-flags"
8 Enter here the value of the gcc's ./configure option --enable-cxx-flags.
9 Leave empty if you don't know better.
11 Note: just pass in the option _value_, that is only the part that goes
14 config CC_CORE_EXTRA_CONFIG_ARRAY
16 prompt "Core gcc extra config"
19 Extra flags to pass onto ./configure when configuring the core gcc.
21 The core gcc is a stripped down, C-only compiler needed to build
22 the C library. Kinda bootstrap gcc, if you wish.
24 You can enter multiple arguments here, and arguments can contain spaces
25 if they are properly quoted (or escaped, but prefer quotes). Eg.:
26 --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
28 config CC_EXTRA_CONFIG_ARRAY
30 prompt "gcc extra config"
32 depends on ! BARE_METAL
34 Extra flags to pass onto ./configure when configuring gcc.
36 You can enter multiple arguments here, and arguments can contain spaces
37 if they are properly quoted (or escaped, but prefer quotes). Eg.:
38 --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
40 config STATIC_TOOLCHAIN
41 select CC_STATIC_LIBSTDCXX if CC_GCC_4_4_or_later
43 config CC_STATIC_LIBSTDCXX
45 prompt "Link libstdc++ statically into the gcc binary"
47 depends on CC_GCC_4_4_or_later
48 select WANTS_STATIC_LINK
50 Newer gcc versions use the PPL library which is C++ code. Statically
51 linking libstdc++ increases the likeliness that the gcc binary will
52 run on machines other than the one which it was built on, without
53 having to worry about distributing the matching version of libstdc++
56 config CC_GCC_SYSTEM_ZLIB
58 prompt "Use system zlib"
59 depends on EXPERIMENTAL
61 Do not use bundled zlib, and use the zlib already available for
62 the host (eg. the system library).
64 If you want to build a static toolchain, you will need to also
65 install the static version of zlib for your host.
69 #-----------------------------------------------------------------------------
70 # Optimisation features
72 comment "Optimisation features"
74 config CC_GCC_USE_GRAPHITE
76 prompt "Enable GRAPHITE loop optimisations"
78 depends on CC_GCC_HAS_GRAPHITE
79 select CC_GCC_USE_PPL_CLOOG
81 Enable the GRAPHITE loop optimsations.
83 This requires the PPL and CLooG companion libraries, and
84 those will be automatically build for you.
86 On some systems (eg. Cygwin), PPL and/or CLooG may not
87 build properly (yet), so you'll have to say 'N' here.
89 # The way LTO works is a bit twisted.
90 # See: http://gcc.gnu.org/wiki/LinkTimeOptimization#Requirements
92 # - if binutils has plugins: LTO is handled by ld/gold by loading
93 # the plugin when linking
94 # - if binutils does not have plugins: LTO is handled by collect2
95 # In any case, LTO support does not depend on plugins, but takes
97 # Also, only the 4.5 series needs libelf for LTO; 4.6 has dropped
103 depends on CC_GCC_HAS_LTO
104 select CC_GCC_USE_LIBELF if CC_GCC_4_5
106 Enable the Link Time Optimisations.
108 This will require the libelf companion library, and it
109 wil be build automatically for you.
111 #-----------------------------------------------------------------------------
112 comment "Settings for libraries running on target"
114 config CC_GCC_ENABLE_TARGET_OPTSPACE
116 prompt "Optimize gcc libs for size"
119 Pass --enable-target-optspace to crossgcc's configure.
121 This will compile crossgcc's libs with -Os.
123 config CC_GCC_LIBMUDFLAP
125 prompt "Compile libmudflap"
127 libmudflap is a pointer-use checking tool, which can detect
128 various mis-usages of pointers in C and (to some extents) C++.
130 You should say 'N' here, as libmduflap generates instrumented
131 code (thus it is a bit bigger and a bit slower) and requires
132 re-compilation and re-link, while it exists better run-time
133 alternatives (eg. DUMA, dmalloc...) that need neither re-
134 compilation nor re-link.
136 config CC_GCC_LIBGOMP
138 prompt "Compile libgomp"
140 libgomp is "the GNU implementation of the OpenMP Application Programming
141 Interface (API) for multi-platform shared-memory parallel programming in
142 C/C++ and Fortran". See:
143 http://gcc.gnu.org/onlinedocs/libgomp/
145 The default is 'N'. Say 'Y' if you need it, and report success/failure.
149 prompt "Compile libssp"
151 libssp is the run-time Stack-Smashing Protection library.
153 The default is 'N'. Say 'Y' if you need it, and report success/failure.
155 config CC_GCC_LIBQUADMATH
157 prompt "Compile libquadmath"
158 depends on CC_GCC_HAS_LIBQUADMATH
160 libquadmath is a library which provides quad-precision mathematical
161 functions on targets supporting the __float128 datatype. See:
162 http://gcc.gnu.org/onlinedocs/libquadmath/
164 The default is 'N'. Say 'Y' if you need it, and report success/failure.
166 #-----------------------------------------------------------------------------
168 comment "Misc. obscure options."
172 prompt "Use __cxa_atexit"
174 depends on ! BARE_METAL
176 If you get the missing symbol "__cxa_atexit" when building C++ programs,
177 you might want to try disabling this option.
179 config CC_GCC_DISABLE_PCH
181 prompt "Do not build PCH"
183 Say 'y' here to not use Pre-Compiled Headers in the resulting toolchain.
184 at the expense of speed when compiling C++ code.
186 For some configurations (most notably canadian?), PCH are broken, and
187 need to be disabled. Please see:
188 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40974
190 config CC_GCC_SJLJ_EXCEPTIONS
192 prompt "Use sjlj for exceptions"
193 depends on ! BARE_METAL
196 'sjlj' is short for setjmp/longjmp.
198 On some architectures, stack unwinding during exception handling
199 works perfectly well without using sjlj, while on some others,
200 use of sjlj is required for proper stack unwinding.
202 Option | sjlj use | Associated ./configure switch
203 ---------+--------------------+--------------------------------
204 Y | forcibly used | --enable-sjlj-exceptions
205 M | auto | (none, ./configure decides)
206 N | forcibly not used | --disable-sjlj-exceptions
208 It should be safe to say 'M' or 'N'.
210 It can happen that ./configure is wrong in some cases. Known
211 case is for ARM big endian, where you should say 'N'.
213 config CC_GCC_LDBL_128
215 prompt "Enable 128-bit long doubles"
217 depends on CC_GCC_4_2_or_later
219 Saying 'Y' will force gcc to use 128-bit wide long doubles
220 Saying 'N' will force gcc to use 64-bit wide long doubles
221 Saying 'M' will let gcc choose (default is 128-bit for
222 glibc >= 2.4, 64-bit otherwise)
224 If in doubt, keep the default, ie. 'M'.
226 config CC_GCC_BUILD_ID
228 prompt "Enable build-id"
229 depends on CC_GCC_HAS_BUILD_ID
231 Tells GCC to pass --build-id option to the linker for all final
232 links (links performed without the -r or --relocatable option),
233 if the linker supports it. If you say 'y' here, but your linker
234 does not support --build-id option, a warning is issued and this
239 choice CC_GCC_LNK_HASH_STYLE_CHOICE
241 prompt "linker hash style"
242 depends on CC_GCC_HAS_LNK_HASH_STYLE
243 depends on BINUTILS_HAS_HASH_STYLE
245 config CC_GCC_LNK_HASH_STYLE_DEFAULT
249 Do not specify any value, and use the default value (sysv).
251 config CC_GCC_LNK_HASH_STYLE_SYSV
255 Force use of the SYSV hash style.
257 config CC_GCC_LNK_HASH_STYLE_GNU
261 Force use of the GNU hash style.
263 config CC_GCC_LNK_HASH_STYLE_BOTH
267 Force use of both hash styles.
269 endchoice # CC_GCC_LNK_HASH_STYLE_CHOICE
271 config CC_GCC_LNK_HASH_STYLE
273 default "" if CC_GCC_LNK_HASH_STYLE_DEFAULT
274 default "sysv" if CC_GCC_LNK_HASH_STYLE_SYSV
275 default "gnu" if CC_GCC_LNK_HASH_STYLE_GNU
276 default "both" if CC_GCC_LNK_HASH_STYLE_BOTH
278 #-----------------------------------------------------------------------------
280 config CC_GCC_HAS_ARCH_OPTIONS
283 comment "archictecture-specific options"
284 depends on CC_GCC_HAS_ARCH_OPTIONS
287 source "config/cc/gcc.in.mips"