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"
60 Do not use bundled zlib, and use the zlib already available for
61 the host (eg. the system library).
63 If you want to build a static toolchain, you will need to also
64 install the static version of zlib for your host.
68 #-----------------------------------------------------------------------------
69 # Optimisation features
71 comment "Optimisation features"
73 config CC_GCC_USE_GRAPHITE
75 prompt "Enable GRAPHITE loop optimisations"
77 depends on CC_GCC_HAS_GRAPHITE
78 select CC_GCC_USE_PPL_CLOOG
80 Enable the GRAPHITE loop optimsations.
82 This requires the PPL and CLooG companion libraries, and
83 those will be automatically build for you.
85 On some systems (eg. Cygwin), PPL and/or CLooG may not
86 build properly (yet), so you'll have to say 'N' here.
88 # The way LTO works is a bit twisted.
89 # See: http://gcc.gnu.org/wiki/LinkTimeOptimization#Requirements
91 # - if binutils has plugins: LTO is handled by ld/gold by loading
92 # the plugin when linking
93 # - if binutils does not have plugins: LTO is handled by collect2
94 # In any case, LTO support does not depend on plugins, but takes
96 # Also, only the 4.5 series needs libelf for LTO; 4.6 has dropped
102 depends on CC_GCC_HAS_LTO
103 select CC_GCC_USE_LIBELF if CC_GCC_4_5
105 Enable the Link Time Optimisations.
107 This will require the libelf companion library, and it
108 wil be build automatically for you.
110 #-----------------------------------------------------------------------------
111 comment "Settings for libraries running on target"
113 config CC_GCC_ENABLE_TARGET_OPTSPACE
115 prompt "Optimize gcc libs for size"
118 Pass --enable-target-optspace to crossgcc's configure.
120 This will compile crossgcc's libs with -Os.
122 config CC_GCC_LIBMUDFLAP
124 prompt "Compile libmudflap"
126 libmudflap is a pointer-use checking tool, which can detect
127 various mis-usages of pointers in C and (to some extents) C++.
129 You should say 'N' here, as libmduflap generates instrumented
130 code (thus it is a bit bigger and a bit slower) and requires
131 re-compilation and re-link, while it exists better run-time
132 alternatives (eg. DUMA, dmalloc...) that need neither re-
133 compilation nor re-link.
135 config CC_GCC_LIBGOMP
137 prompt "Compile libgomp"
139 libgomp is "the GNU implementation of the OpenMP Application Programming
140 Interface (API) for multi-platform shared-memory parallel programming in
141 C/C++ and Fortran". See:
142 http://gcc.gnu.org/onlinedocs/libgomp/
144 The default is 'N'. Say 'Y' if you need it, and report success/failure.
148 prompt "Compile libssp"
150 libssp is the run-time Stack-Smashing Protection library.
152 The default is 'N'. Say 'Y' if you need it, and report success/failure.
154 config CC_GCC_LIBQUADMATH
156 prompt "Compile libquadmath"
157 depends on CC_GCC_HAS_LIBQUADMATH
159 libquadmath is a library which provides quad-precision mathematical
160 functions on targets supporting the __float128 datatype. See:
161 http://gcc.gnu.org/onlinedocs/libquadmath/
163 The default is 'N'. Say 'Y' if you need it, and report success/failure.
165 #-----------------------------------------------------------------------------
167 comment "Misc. obscure options."
171 prompt "Use __cxa_atexit"
173 depends on ! BARE_METAL
175 If you get the missing symbol "__cxa_atexit" when building C++ programs,
176 you might want to try disabling this option.
178 config CC_GCC_DISABLE_PCH
180 prompt "Do not build PCH"
182 Say 'y' here to not use Pre-Compiled Headers in the resulting toolchain.
183 at the expense of speed when compiling C++ code.
185 For some configurations (most notably canadian?), PCH are broken, and
186 need to be disabled. Please see:
187 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40974
189 config CC_GCC_SJLJ_EXCEPTIONS
191 prompt "Use sjlj for exceptions"
192 depends on ! BARE_METAL
195 'sjlj' is short for setjmp/longjmp.
197 On some architectures, stack unwinding during exception handling
198 works perfectly well without using sjlj, while on some others,
199 use of sjlj is required for proper stack unwinding.
201 Option | sjlj use | Associated ./configure switch
202 ---------+--------------------+--------------------------------
203 Y | forcibly used | --enable-sjlj-exceptions
204 M | auto | (none, ./configure decides)
205 N | forcibly not used | --disable-sjlj-exceptions
207 It should be safe to say 'M' or 'N'.
209 It can happen that ./configure is wrong in some cases. Known
210 case is for ARM big endian, where you should say 'N'.
212 config CC_GCC_LDBL_128
214 prompt "Enable 128-bit long doubles"
216 depends on CC_GCC_4_2_or_later
218 Saying 'Y' will force gcc to use 128-bit wide long doubles
219 Saying 'N' will force gcc to use 64-bit wide long doubles
220 Saying 'M' will let gcc choose (default is 128-bit for
221 glibc >= 2.4, 64-bit otherwise)
223 If in doubt, keep the default, ie. 'M'.
225 config CC_GCC_BUILD_ID
227 prompt "Enable build-id"
228 depends on CC_GCC_HAS_BUILD_ID
230 Tells GCC to pass --build-id option to the linker for all final
231 links (links performed without the -r or --relocatable option),
232 if the linker supports it. If you say 'y' here, but your linker
233 does not support --build-id option, a warning is issued and this
238 choice CC_GCC_LNK_HASH_STYLE_CHOICE
240 prompt "linker hash style"
241 depends on CC_GCC_HAS_LNK_HASH_STYLE
242 depends on BINUTILS_HAS_HASH_STYLE
244 config CC_GCC_LNK_HASH_STYLE_DEFAULT
248 Do not specify any value, and use the default value (sysv).
250 config CC_GCC_LNK_HASH_STYLE_SYSV
254 Force use of the SYSV hash style.
256 config CC_GCC_LNK_HASH_STYLE_GNU
260 Force use of the GNU hash style.
262 config CC_GCC_LNK_HASH_STYLE_BOTH
266 Force use of both hash styles.
268 endchoice # CC_GCC_LNK_HASH_STYLE_CHOICE
270 config CC_GCC_LNK_HASH_STYLE
272 default "" if CC_GCC_LNK_HASH_STYLE_DEFAULT
273 default "sysv" if CC_GCC_LNK_HASH_STYLE_SYSV
274 default "gnu" if CC_GCC_LNK_HASH_STYLE_GNU
275 default "both" if CC_GCC_LNK_HASH_STYLE_BOTH
277 #-----------------------------------------------------------------------------
279 config CC_GCC_HAS_ARCH_OPTIONS
282 comment "archictecture-specific options"
283 depends on CC_GCC_HAS_ARCH_OPTIONS
286 source "config/cc/gcc.in.mips"