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
49 Newer gcc versions use the PPL library which is C++ code. Statically
50 linking libstdc++ increases the likeliness that the gcc binary will
51 run on machines other than the one which it was built on, without
52 having to worry about distributing the matching version of libstdc++
55 #-----------------------------------------------------------------------------
56 # Optimisation features
58 comment "Optimisation features"
60 config CC_GCC_USE_GRAPHITE
62 prompt "Enable GRAPHITE loop optimisations"
64 depends on CC_GCC_HAS_GRAPHITE
65 select CC_GCC_USE_PPL_CLOOG
67 Enable the GRAPHITE loop optimsations.
69 This requires the PPL and CLooG companion libraries, and
70 those will be automatically build for you.
72 On some systems (eg. Cygwin), PPL and/or CLooG may not
73 build properly (yet), so you'll have to say 'N' here.
75 # The way LTO works is a bit twisted.
76 # See: http://gcc.gnu.org/wiki/LinkTimeOptimization#Requirements
78 # - if binutils has plugins: LTO is handled by ld/gold by loading
79 # the plugin when linking
80 # - if binutils does not have plugins: LTO is handled by collect2
81 # In any case, LTO support does not depend on plugins, but takes
83 # Also, only the 4.5 series needs libelf for LTO; 4.6 has dropped
89 depends on CC_GCC_HAS_LTO
90 select CC_GCC_USE_LIBELF if CC_GCC_4_5
92 Enable the Link Time Optimisations.
94 This will require the libelf companion library, and it
95 wil be build automatically for you.
97 #-----------------------------------------------------------------------------
98 comment "Settings for libraries running on target"
100 config CC_GCC_ENABLE_TARGET_OPTSPACE
102 prompt "Optimize gcc libs for size"
105 Pass --enable-target-optspace to crossgcc's configure.
107 This will compile crossgcc's libs with -Os.
109 config CC_GCC_LIBMUDFLAP
111 prompt "Compile libmudflap"
113 libmudflap is a pointer-use checking tool, which can detect
114 various mis-usages of pointers in C and (to some extents) C++.
116 You should say 'N' here, as libmduflap generates instrumented
117 code (thus it is a bit bigger and a bit slower) and requires
118 re-compilation and re-link, while it exists better run-time
119 alternatives (eg. DUMA, dmalloc...) that need neither re-
120 compilation nor re-link.
122 config CC_GCC_LIBGOMP
124 prompt "Compile libgomp"
126 libgomp is "the GNU implementation of the OpenMP Application Programming
127 Interface (API) for multi-platform shared-memory parallel programming in
128 C/C++ and Fortran". See:
129 http://gcc.gnu.org/onlinedocs/libgomp/
131 The default is 'N'. Say 'Y' if you need it, and report success/failure.
135 prompt "Compile libssp"
137 libssp is the run-time Stack-Smashing Protection library.
139 The default is 'N'. Say 'Y' if you need it, and report success/failure.
141 #-----------------------------------------------------------------------------
143 comment "Misc. obscure options."
147 prompt "Use __cxa_atexit"
149 depends on ! BARE_METAL
151 If you get the missing symbol "__cxa_atexit" when building C++ programs,
152 you might want to try disabling this option.
154 config CC_GCC_DISABLE_PCH
156 prompt "Do not build PCH"
158 Say 'y' here to not use Pre-Compiled Headers in the resulting toolchain.
159 at the expense of speed when compiling C++ code.
161 For some configurations (most notably canadian?), PCH are broken, and
162 need to be disabled. Please see:
163 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40974
165 config CC_GCC_SJLJ_EXCEPTIONS
167 prompt "Use sjlj for exceptions"
168 depends on ! BARE_METAL
171 'sjlj' is short for setjmp/longjmp.
173 On some architectures, stack unwinding during exception handling
174 works perfectly well without using sjlj, while on some others,
175 use of sjlj is required for proper stack unwinding.
177 Option | sjlj use | Associated ./configure switch
178 ---------+--------------------+--------------------------------
179 Y | forcibly used | --enable-sjlj-exceptions
180 M | auto | (none, ./configure decides)
181 N | forcibly not used | --disable-sjlj-exceptions
183 It should be safe to say 'M' or 'N'.
185 It can happen that ./configure is wrong in some cases. Known
186 case is for ARM big endian, where you should say 'N'.
188 config CC_GCC_LDBL_128
190 prompt "Enable 128-bit long doubles"
192 depends on CC_GCC_4_2_or_later
194 Saying 'Y' will force gcc to use 128-bit wide long doubles
195 Saying 'N' will force gcc to use 64-bit wide long doubles
196 Saying 'M' will let gcc choose (default is 128-bit for
197 glibc >= 2.4, 64-bit otherwise)
199 If in doubt, keep the default, ie. 'M'.