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
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 config CC_EXTRA_CONFIG
46 prompt "gcc extra config"
48 depends on ! BARE_METAL
50 Extra flags to pass onto ./configure when configuring gcc.
52 config STATIC_TOOLCHAIN
53 select CC_STATIC_LIBSTDCXX if CC_GCC_4_4_or_later
55 config CC_STATIC_LIBSTDCXX
57 prompt "Link libstdc++ statically into the gcc binary"
59 depends on CC_GCC_4_4_or_later
61 Newer gcc versions use the PPL library which is C++ code. Statically
62 linking libstdc++ increases the likeliness that the gcc binary will
63 run on machines other than the one which it was built on, without
64 having to worry about distributing the matching version of libstdc++
67 #-----------------------------------------------------------------------------
68 # Optimisation features
70 comment "Optimisation features"
72 config CC_GCC_USE_GRAPHITE
74 prompt "Enable GRAPHITE loop optimisations"
76 depends on CC_GCC_HAS_GRAPHITE
77 select CC_GCC_USE_PPL_CLOOG
79 Enable the GRAPHITE loop optimsations.
81 This requires the PPL and CLooG companion libraries, and
82 those will be automatically build for you.
84 On some systems (eg. Cygwin), PPL and/or CLooG may not
85 build properly (yet), so you'll have to say 'N' here.
87 # The way LTO works is a bit twisted.
88 # See: http://gcc.gnu.org/wiki/LinkTimeOptimization#Requirements
90 # - if binutils has plugins: LTO is handled by ld/gold by loading
91 # the plugin when linking
92 # - if binutils does not have plugins: LTO is handled by collect2
93 # In any case, LTO support does not depend on plugins, but takes
95 # Also, only the 4.5 series needs libelf for LTO; 4.6 has dropped
101 depends on CC_GCC_HAS_LTO
102 select CC_GCC_USE_LIBELF if CC_GCC_4_5
104 Enable the Link Time Optimisations.
106 This will require the libelf companion library, and it
107 wil be build automatically for you.
109 #-----------------------------------------------------------------------------
110 comment "Settings for libraries running on target"
112 config CC_GCC_ENABLE_TARGET_OPTSPACE
114 prompt "Optimize gcc libs for size"
117 Pass --enable-target-optspace to crossgcc's configure.
119 This will compile crossgcc's libs with -Os.
121 config CC_GCC_LIBMUDFLAP
123 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"
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"
152 libssp is the run-time Stack-Smashing Protection library.
154 The default is 'N'. Say 'Y' if you need it, and report success/failure.
156 #-----------------------------------------------------------------------------
158 comment "Misc. obscure options."
162 prompt "Use __cxa_atexit"
164 depends on ! BARE_METAL
166 If you get the missing symbol "__cxa_atexit" when building C++ programs,
167 you might want to try disabling this option.
169 config CC_GCC_DISABLE_PCH
171 prompt "Do not build PCH"
174 Say 'y' here to not use Pre-Compiled Headers in the resulting toolchain.
175 at the expense of speed when compiling C++ code.
177 For some configurations (most notably canadian?), PCH are broken, and
178 need to be disabled. Please see:
179 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40974
181 config CC_GCC_SJLJ_EXCEPTIONS
183 prompt "Use sjlj for exceptions"
184 depends on ! BARE_METAL
187 'sjlj' is short for setjmp/longjmp.
189 On some architectures, stack unwinding during exception handling
190 works perfectly well without using sjlj, while on some others,
191 use of sjlj is required for proper stack unwinding.
193 Option | sjlj use | Associated ./configure switch
194 ---------+--------------------+--------------------------------
195 Y | forcibly used | --enable-sjlj-exceptions
196 M | auto | (none, ./configure decides)
197 N | forcibly not used | --disable-sjlj-exceptions
199 It should be safe to say 'M' or 'N'.
201 It can happen that ./configure is wrong in some cases. Known
202 case is for ARM big endian, where you should say 'N'.
204 config CC_GCC_LDBL_128
206 prompt "Enable 128-bit long doubles"
208 depends on CC_GCC_4_2_or_later
210 Saying 'Y' will force gcc to use 128-bit wide long doubles
211 Saying 'N' will force gcc to use 64-bit wide long doubles
212 Saying 'M' will let gcc choose (default is 128-bit for
213 glibc >= 2.4, 64-bit otherwise)
215 If in doubt, keep the default, ie. 'M'.