1 # Misc library-related options
3 config CC_GCC_ENABLE_TARGET_OPTSPACE
5 prompt "Optimize gcc libs for size"
8 Pass --enable-target-optspace to crossgcc's configure.
10 This will compile crossgcc's libs with -Os.
12 config CC_GCC_USE_GRAPHITE
14 prompt "Enable GRAPHITE loop optimisations"
16 depends on CC_GCC_HAS_GRAPHITE
17 select CC_GCC_USE_PPL_CLOOG
19 Enable the GRAPHITE loop optimsations.
21 This requires the PPL and CLooG companion libraries, and
22 those will be automatically build for you.
24 On some systems (eg. Cygwin), PPL and/or CLooG may not
25 build properly (yet), so you'll have to say 'N' here.
27 # The way LTO works is a bit twisted.
28 # See: http://gcc.gnu.org/wiki/LinkTimeOptimization#Requirements
30 # - if binutils has plugins: LTO is handled by ld/gold by loading
31 # the plugin when linking
32 # - if binutils does not have plugins: LTO is handled by collect2
33 # In any case, LTO support does not depend on plugins, but takes
35 # Also, only the 4.5 series needs libelf for LTO; 4.6 has dropped
41 depends on CC_GCC_HAS_LTO
42 select CC_GCC_USE_LIBELF if CC_GCC_4_5
44 Enable the Link Time Optimisations.
46 This will require the libelf companion library, and it
47 wil be build automatically for you.
49 config STATIC_TOOLCHAIN
50 select CC_STATIC_LIBSTDCXX if CC_GCC_4_4_or_later
52 config CC_STATIC_LIBSTDCXX
54 prompt "Link libstdc++ statically into the gcc binary"
56 depends on CC_GCC_4_4_or_later
58 Newer gcc versions use the PPL library which is C++ code. Statically
59 linking libstdc++ increases the likeliness that the gcc binary will
60 run on machines other than the one which it was built on, without
61 having to worry about distributing the matching version of libstdc++
64 config CC_GCC_LIBMUDFLAP
66 prompt "Compile libmudflap"
69 libmudflap is a pointer-use checking tool, which can detect
70 various mis-usages of pointers in C and (to some extents) C++.
72 You should say 'N' here, as libmduflap generates instrumented
73 code (thus it is a bit bigger and a bit slower) and requires
74 re-compilation and re-link, while it exists better run-time
75 alternatives (eg. DUMA, dmalloc...) that need neither re-
76 compilation nor re-link.
80 prompt "Compile libgomp"
83 libgomp is "the GNU implementation of the OpenMP Application Programming
84 Interface (API) for multi-platform shared-memory parallel programming in
85 C/C++ and Fortran". See:
86 http://gcc.gnu.org/onlinedocs/libgomp/
88 The default is 'N'. Say 'Y' if you need it, and report success/failure.
92 prompt "Compile libssp"
95 libssp is the run-time Stack-Smashing Protection library.
97 The default is 'N'. Say 'Y' if you need it, and report success/failure.
99 #-----------------------------------------------------------------------------
101 comment "Misc. obscure options."
105 prompt "Use __cxa_atexit"
107 depends on ! BARE_METAL
109 If you get the missing symbol "__cxa_atexit" when building C++ programs,
110 you might want to try disabling this option.
112 config CC_GCC_DISABLE_PCH
114 prompt "Do not build PCH"
117 Say 'y' here to not use Pre-Compiled Headers in the resulting toolchain.
118 at the expense of speed when compiling C++ code.
120 For some configurations (most notably canadian?), PCH are broken, and
121 need to be disabled. Please see:
122 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40974
124 config CC_GCC_SJLJ_EXCEPTIONS
126 prompt "Use sjlj for exceptions"
127 depends on ! BARE_METAL
130 'sjlj' is short for setjmp/longjmp.
132 On some architectures, stack unwinding during exception handling
133 works perfectly well without using sjlj, while on some others,
134 use of sjlj is required for proper stack unwinding.
136 Option | sjlj use | Associated ./configure switch
137 ---------+--------------------+--------------------------------
138 Y | forcibly used | --enable-sjlj-exceptions
139 M | auto | (none, ./configure decides)
140 N | forcibly not used | --disable-sjlj-exceptions
142 It should be safe to say 'M' or 'N'.
144 It can happen that ./configure is wrong in some cases. Known
145 case is for ARM big endian, where you should say 'N'.
147 config CC_GCC_LDBL_128
149 prompt "Enable 128-bit long doubles"
151 depends on CC_GCC_4_2_or_later
153 Saying 'Y' will force gcc to use 128-bit wide long doubles
154 Saying 'N' will force gcc to use 64-bit wide long doubles
155 Saying 'M' will let gcc choose (default is 128-bit for
156 glibc >= 2.4, 64-bit otherwise)
158 If in doubt, keep the default, ie. 'M'.