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 CONFIGURE_has_static_libstdcxx
48 depends on CC_GCC_4_4_or_later
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 #-----------------------------------------------------------------------------
57 # Optimisation features
59 comment "Optimisation features"
61 config CC_GCC_USE_GRAPHITE
63 prompt "Enable GRAPHITE loop optimisations"
65 depends on CC_GCC_HAS_GRAPHITE
66 select CC_GCC_USE_PPL_CLOOG
68 Enable the GRAPHITE loop optimsations.
70 This requires the PPL and CLooG companion libraries, and
71 those will be automatically build for you.
73 On some systems (eg. Cygwin), PPL and/or CLooG may not
74 build properly (yet), so you'll have to say 'N' here.
76 # The way LTO works is a bit twisted.
77 # See: http://gcc.gnu.org/wiki/LinkTimeOptimization#Requirements
79 # - if binutils has plugins: LTO is handled by ld/gold by loading
80 # the plugin when linking
81 # - if binutils does not have plugins: LTO is handled by collect2
82 # In any case, LTO support does not depend on plugins, but takes
84 # Also, only the 4.5 series needs libelf for LTO; 4.6 has dropped
90 depends on CC_GCC_HAS_LTO
91 select CC_GCC_USE_LIBELF if CC_GCC_4_5
93 Enable the Link Time Optimisations.
95 This will require the libelf companion library, and it
96 wil be build automatically for you.
98 #-----------------------------------------------------------------------------
99 comment "Settings for libraries running on target"
101 config CC_GCC_ENABLE_TARGET_OPTSPACE
103 prompt "Optimize gcc libs for size"
106 Pass --enable-target-optspace to crossgcc's configure.
108 This will compile crossgcc's libs with -Os.
110 config CC_GCC_LIBMUDFLAP
112 prompt "Compile libmudflap"
114 libmudflap is a pointer-use checking tool, which can detect
115 various mis-usages of pointers in C and (to some extents) C++.
117 You should say 'N' here, as libmduflap generates instrumented
118 code (thus it is a bit bigger and a bit slower) and requires
119 re-compilation and re-link, while it exists better run-time
120 alternatives (eg. DUMA, dmalloc...) that need neither re-
121 compilation nor re-link.
123 config CC_GCC_LIBGOMP
125 prompt "Compile libgomp"
127 libgomp is "the GNU implementation of the OpenMP Application Programming
128 Interface (API) for multi-platform shared-memory parallel programming in
129 C/C++ and Fortran". See:
130 http://gcc.gnu.org/onlinedocs/libgomp/
132 The default is 'N'. Say 'Y' if you need it, and report success/failure.
136 prompt "Compile libssp"
138 libssp is the run-time Stack-Smashing Protection library.
140 The default is 'N'. Say 'Y' if you need it, and report success/failure.
142 #-----------------------------------------------------------------------------
144 comment "Misc. obscure options."
148 prompt "Use __cxa_atexit"
150 depends on ! BARE_METAL
152 If you get the missing symbol "__cxa_atexit" when building C++ programs,
153 you might want to try disabling this option.
155 config CC_GCC_DISABLE_PCH
157 prompt "Do not build PCH"
159 Say 'y' here to not use Pre-Compiled Headers in the resulting toolchain.
160 at the expense of speed when compiling C++ code.
162 For some configurations (most notably canadian?), PCH are broken, and
163 need to be disabled. Please see:
164 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40974
166 config CC_GCC_SJLJ_EXCEPTIONS
168 prompt "Use sjlj for exceptions"
169 depends on ! BARE_METAL
172 'sjlj' is short for setjmp/longjmp.
174 On some architectures, stack unwinding during exception handling
175 works perfectly well without using sjlj, while on some others,
176 use of sjlj is required for proper stack unwinding.
178 Option | sjlj use | Associated ./configure switch
179 ---------+--------------------+--------------------------------
180 Y | forcibly used | --enable-sjlj-exceptions
181 M | auto | (none, ./configure decides)
182 N | forcibly not used | --disable-sjlj-exceptions
184 It should be safe to say 'M' or 'N'.
186 It can happen that ./configure is wrong in some cases. Known
187 case is for ARM big endian, where you should say 'N'.
189 config CC_GCC_LDBL_128
191 prompt "Enable 128-bit long doubles"
193 depends on CC_GCC_4_2_or_later
195 Saying 'Y' will force gcc to use 128-bit wide long doubles
196 Saying 'N' will force gcc to use 64-bit wide long doubles
197 Saying 'M' will let gcc choose (default is 128-bit for
198 glibc >= 2.4, 64-bit otherwise)
200 If in doubt, keep the default, ie. 'M'.