1 # gcc configuration options
6 depends on CC_GCC_4_3_or_later
7 default "crosstool-NG-${CT_VERSION}"
9 Specify a string that identifies your package. You may wish to include
10 a build number or build date. This version string will be included in
11 the output of gcc --version.
13 This is passed to the configure flag --with-pkgversion.
18 depends on CC_GCC_4_3_or_later
21 Specify the URL that users should visit if they wish to report a bug.
23 config CC_ENABLE_CXX_FLAGS
25 prompt "Flags to pass to --enable-cxx-flags"
28 Enter here the value of the gcc's ./configure option --enable-cxx-flags.
29 Leave empty if you don't know better.
31 Note: just pass in the option _value_, that is only the part that goes
34 config CC_CORE_EXTRA_CONFIG_ARRAY
36 prompt "Core gcc extra config"
39 Extra flags to pass onto ./configure when configuring the core gcc.
41 The core gcc is a stripped down, C-only compiler needed to build
42 the C library. Kinda bootstrap gcc, if you wish.
44 You can enter multiple arguments here, and arguments can contain spaces
45 if they are properly quoted (or escaped, but prefer quotes). Eg.:
46 --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
48 config CC_EXTRA_CONFIG_ARRAY
50 prompt "gcc extra config"
52 depends on ! BARE_METAL
54 Extra flags to pass onto ./configure when configuring gcc.
56 You can enter multiple arguments here, and arguments can contain spaces
57 if they are properly quoted (or escaped, but prefer quotes). Eg.:
58 --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
60 config STATIC_TOOLCHAIN
61 select CC_STATIC_LIBSTDCXX if CC_GCC_4_4_or_later
63 config CC_STATIC_LIBSTDCXX
65 prompt "Link libstdc++ statically into the gcc binary"
67 depends on CC_GCC_4_4_or_later
69 Newer gcc versions use the PPL library which is C++ code. Statically
70 linking libstdc++ increases the likeliness that the gcc binary will
71 run on machines other than the one which it was built on, without
72 having to worry about distributing the matching version of libstdc++
75 #-----------------------------------------------------------------------------
76 # Optimisation features
78 comment "Optimisation features"
80 config CC_GCC_USE_GRAPHITE
82 prompt "Enable GRAPHITE loop optimisations"
84 depends on CC_GCC_HAS_GRAPHITE
85 select CC_GCC_USE_PPL_CLOOG
87 Enable the GRAPHITE loop optimsations.
89 This requires the PPL and CLooG companion libraries, and
90 those will be automatically build for you.
92 On some systems (eg. Cygwin), PPL and/or CLooG may not
93 build properly (yet), so you'll have to say 'N' here.
95 # The way LTO works is a bit twisted.
96 # See: http://gcc.gnu.org/wiki/LinkTimeOptimization#Requirements
98 # - if binutils has plugins: LTO is handled by ld/gold by loading
99 # the plugin when linking
100 # - if binutils does not have plugins: LTO is handled by collect2
101 # In any case, LTO support does not depend on plugins, but takes
103 # Also, only the 4.5 series needs libelf for LTO; 4.6 has dropped
105 config CC_GCC_USE_LTO
109 depends on CC_GCC_HAS_LTO
110 select CC_GCC_USE_LIBELF if CC_GCC_4_5
112 Enable the Link Time Optimisations.
114 This will require the libelf companion library, and it
115 wil be build automatically for you.
117 #-----------------------------------------------------------------------------
118 comment "Settings for libraries running on target"
120 config CC_GCC_ENABLE_TARGET_OPTSPACE
122 prompt "Optimize gcc libs for size"
125 Pass --enable-target-optspace to crossgcc's configure.
127 This will compile crossgcc's libs with -Os.
129 config CC_GCC_LIBMUDFLAP
131 prompt "Compile libmudflap"
134 libmudflap is a pointer-use checking tool, which can detect
135 various mis-usages of pointers in C and (to some extents) C++.
137 You should say 'N' here, as libmduflap generates instrumented
138 code (thus it is a bit bigger and a bit slower) and requires
139 re-compilation and re-link, while it exists better run-time
140 alternatives (eg. DUMA, dmalloc...) that need neither re-
141 compilation nor re-link.
143 config CC_GCC_LIBGOMP
145 prompt "Compile libgomp"
148 libgomp is "the GNU implementation of the OpenMP Application Programming
149 Interface (API) for multi-platform shared-memory parallel programming in
150 C/C++ and Fortran". See:
151 http://gcc.gnu.org/onlinedocs/libgomp/
153 The default is 'N'. Say 'Y' if you need it, and report success/failure.
157 prompt "Compile libssp"
160 libssp is the run-time Stack-Smashing Protection library.
162 The default is 'N'. Say 'Y' if you need it, and report success/failure.
164 #-----------------------------------------------------------------------------
166 comment "Misc. obscure options."
170 prompt "Use __cxa_atexit"
172 depends on ! BARE_METAL
174 If you get the missing symbol "__cxa_atexit" when building C++ programs,
175 you might want to try disabling this option.
177 config CC_GCC_DISABLE_PCH
179 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'.