yann@2144
|
1 |
# Misc library-related options
|
yann@2144
|
2 |
|
yann@2041
|
3 |
config CC_GCC_ENABLE_TARGET_OPTSPACE
|
yann@2041
|
4 |
bool
|
yann@2041
|
5 |
prompt "Optimize gcc libs for size"
|
yann@2041
|
6 |
default y
|
yann@2041
|
7 |
help
|
yann@2041
|
8 |
Pass --enable-target-optspace to crossgcc's configure.
|
yann@2041
|
9 |
|
yann@2041
|
10 |
This will compile crossgcc's libs with -Os.
|
yann@2041
|
11 |
|
yann@2122
|
12 |
config CC_GCC_USE_GRAPHITE
|
yann@2122
|
13 |
bool
|
yann@2122
|
14 |
prompt "Enable GRAPHITE loop optimisations"
|
yann@2122
|
15 |
default y
|
yann@2122
|
16 |
depends on CC_GCC_HAS_GRAPHITE
|
yann@2122
|
17 |
select CC_GCC_USE_PPL_CLOOG
|
yann@2122
|
18 |
help
|
yann@2122
|
19 |
Enable the GRAPHITE loop optimsations.
|
yann@2122
|
20 |
|
yann@2122
|
21 |
This requires the PPL and CLooG companion libraries, and
|
yann@2122
|
22 |
those will be automatically build for you.
|
yann@2122
|
23 |
|
yann@2122
|
24 |
On some systems (eg. Cygwin), PPL and/or CLooG may not
|
yann@2122
|
25 |
build properly (yet), so you'll have to say 'N' here.
|
yann@2122
|
26 |
|
yann@2122
|
27 |
config CC_GCC_USE_LTO
|
yann@2122
|
28 |
bool
|
yann@2122
|
29 |
prompt "Enable LTO"
|
yann@2122
|
30 |
default y
|
yann@2122
|
31 |
depends on CC_GCC_HAS_LTO
|
yann@2122
|
32 |
select CC_GCC_USE_LIBELF
|
yann@2122
|
33 |
help
|
yann@2122
|
34 |
Enable the Link Time Optimisations.
|
yann@2122
|
35 |
|
yann@2122
|
36 |
This will require the libelf companion library, and it
|
yann@2122
|
37 |
wil be build automatically for you.
|
yann@2122
|
38 |
|
bryanhundven@2211
|
39 |
config STATIC_TOOLCHAIN
|
bryanhundven@2211
|
40 |
select CC_STATIC_LIBSTDCXX if CC_GCC_4_4_or_later
|
bryanhundven@2211
|
41 |
|
js@2045
|
42 |
config CC_STATIC_LIBSTDCXX
|
js@2045
|
43 |
bool
|
js@2045
|
44 |
prompt "Link libstdc++ statically into the gcc binary"
|
js@2045
|
45 |
default y
|
js@2045
|
46 |
depends on CC_GCC_4_4_or_later
|
js@2045
|
47 |
help
|
js@2045
|
48 |
Newer gcc versions use the PPL library which is C++ code. Statically
|
js@2045
|
49 |
linking libstdc++ increases the likeliness that the gcc binary will
|
js@2045
|
50 |
run on machines other than the one which it was built on, without
|
js@2045
|
51 |
having to worry about distributing the matching version of libstdc++
|
js@2045
|
52 |
along with it.
|
js@2045
|
53 |
|
yann@2144
|
54 |
config CC_GCC_LIBMUDFLAP
|
yann@2144
|
55 |
bool
|
yann@2144
|
56 |
prompt "Compile libmudflap"
|
yann@2144
|
57 |
default n
|
yann@2144
|
58 |
help
|
yann@2144
|
59 |
libmudflap is a pointer-use checking tool, which can detect
|
yann@2144
|
60 |
various mis-usages of pointers in C and (to some extents) C++.
|
yann@2144
|
61 |
|
yann@2144
|
62 |
You should say 'N' here, as libmduflap generates instrumented
|
yann@2144
|
63 |
code (thus it is a bit bigger and a bit slower) and requires
|
yann@2144
|
64 |
re-compilation and re-link, while it exists better run-time
|
yann@2144
|
65 |
alternatives (eg. DUMA, dmalloc...) that need neither re-
|
yann@2144
|
66 |
compilation nor re-link.
|
yann@2144
|
67 |
|
yann@2145
|
68 |
config CC_GCC_LIBGOMP
|
yann@2145
|
69 |
bool
|
yann@2145
|
70 |
prompt "Compile libgomp"
|
yann@2145
|
71 |
default n
|
yann@2145
|
72 |
help
|
yann@2145
|
73 |
libgomp is "the GNU implementation of the OpenMP Application Programming
|
yann@2145
|
74 |
Interface (API) for multi-platform shared-memory parallel programming in
|
yann@2145
|
75 |
C/C++ and Fortran". See:
|
yann@2145
|
76 |
http://gcc.gnu.org/onlinedocs/libgomp/
|
yann@2145
|
77 |
|
yann@2145
|
78 |
The default is 'N'. Say 'Y' if you need it, and report success/failure.
|
yann@2145
|
79 |
|
yann@2146
|
80 |
config CC_GCC_LIBSSP
|
yann@2146
|
81 |
bool
|
yann@2146
|
82 |
prompt "Compile libssp"
|
yann@2146
|
83 |
default n
|
yann@2146
|
84 |
help
|
yann@2146
|
85 |
libssp is the run-time Stack-Smashing Protection library.
|
yann@2146
|
86 |
|
yann@2146
|
87 |
The default is 'N'. Say 'Y' if you need it, and report success/failure.
|
yann@2146
|
88 |
|
yann@2144
|
89 |
#-----------------------------------------------------------------------------
|
yann@2144
|
90 |
|
yann@2041
|
91 |
comment "Misc. obscure options."
|
yann@2041
|
92 |
|
yann@2041
|
93 |
config CC_CXA_ATEXIT
|
yann@2041
|
94 |
bool
|
yann@2041
|
95 |
prompt "Use __cxa_atexit"
|
yann@2041
|
96 |
default y
|
yann@2041
|
97 |
depends on ! BARE_METAL
|
yann@2041
|
98 |
help
|
yann@2041
|
99 |
If you get the missing symbol "__cxa_atexit" when building C++ programs,
|
yann@2041
|
100 |
you might want to try disabling this option.
|
yann@2041
|
101 |
|
yann@2041
|
102 |
config CC_GCC_DISABLE_PCH
|
yann@2041
|
103 |
bool
|
yann@2041
|
104 |
prompt "Do not build PCH"
|
yann@2041
|
105 |
default n
|
yann@2041
|
106 |
help
|
yann@2041
|
107 |
Say 'y' here to not use Pre-Compiled Headers in the resulting toolchain.
|
yann@2041
|
108 |
at the expense of speed when compiling C++ code.
|
yann@2041
|
109 |
|
yann@2041
|
110 |
For some configurations (most notably canadian?), PCH are broken, and
|
yann@2041
|
111 |
need to be disabled. Please see:
|
yann@2041
|
112 |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40974
|
yann@2041
|
113 |
|
yann@2042
|
114 |
config CC_GCC_SJLJ_EXCEPTIONS
|
yann@2042
|
115 |
tristate
|
yann@2041
|
116 |
prompt "Use sjlj for exceptions"
|
yann@2054
|
117 |
depends on ! BARE_METAL
|
yann@2042
|
118 |
default m
|
yann@2041
|
119 |
help
|
yann@2042
|
120 |
'sjlj' is short for setjmp/longjmp.
|
yann@2041
|
121 |
|
yann@2042
|
122 |
On some architectures, stack unwinding during exception handling
|
yann@2042
|
123 |
works perfectly well without using sjlj, while on some others,
|
yann@2042
|
124 |
use of sjlj is required for proper stack unwinding.
|
yann@2041
|
125 |
|
yann@2042
|
126 |
Option | sjlj use | Associated ./configure switch
|
yann@2042
|
127 |
---------+--------------------+--------------------------------
|
yann@2042
|
128 |
Y | forcibly used | --enable-sjlj-exceptions
|
yann@2042
|
129 |
M | auto | (none, ./configure decides)
|
yann@2042
|
130 |
N | forcibly not used | --disable-sjlj-exceptions
|
yann@2041
|
131 |
|
yann@2042
|
132 |
It should be safe to say 'M' or 'N'.
|
yann@2042
|
133 |
|
yann@2042
|
134 |
It can happen that ./configure is wrong in some cases. Known
|
yann@2042
|
135 |
case is for ARM big endian, where you should say 'N'.
|
yann@2043
|
136 |
|
yann@2143
|
137 |
config CC_GCC_LDBL_128
|
yann@2143
|
138 |
tristate
|
yann@2143
|
139 |
prompt "Enable 128-bit long doubles"
|
yann@2143
|
140 |
default m
|
yann@2143
|
141 |
depends on CC_GCC_4_2_or_later
|
yann@2143
|
142 |
help
|
yann@2143
|
143 |
Saying 'Y' will force gcc to use 128-bit wide long doubles
|
yann@2143
|
144 |
Saying 'N' will force gcc to use 64-bit wide long doubles
|
yann@2143
|
145 |
Saying 'M' will let gcc choose (default is 128-bit for
|
yann@2143
|
146 |
glibc >= 2.4, 64-bit otherwise)
|
yann@2143
|
147 |
|
yann@2143
|
148 |
If in doubt, keep the default, ie. 'M'.
|