7 prompt "binutils version"
8 # Don't remove next line
9 # CT_INSERT_VERSION_BELOW
11 config BINUTILS_V_2_22
13 prompt "2.22 (EXPERIMENTAL)"
14 depends on EXPERIMENTAL
15 select BINUTILS_2_22_or_later
17 config BINUTILS_V_2_21_53
19 prompt "2.21.53 (EXPERIMENTAL)"
20 depends on EXPERIMENTAL
21 select BINUTILS_2_21_or_later
23 config BINUTILS_V_2_21_1a
26 select BINUTILS_2_21_or_later
28 config BINUTILS_V_2_20_1a
31 select BINUTILS_2_20_or_later
33 config BINUTILS_V_2_19_1a
36 select BINUTILS_2_19_or_later
38 config BINUTILS_V_2_18a
41 select BINUTILS_2_18_or_later
43 config BINUTILS_V_2_17a
45 prompt "2.17a (OBSOLETE)"
48 config BINUTILS_V_2_16_1a
50 prompt "2.16.1a (OBSOLETE)"
55 config BINUTILS_VERSION
57 # Don't remove next line
58 # CT_INSERT_VERSION_STRING_BELOW
59 default "2.22" if BINUTILS_V_2_22
60 default "2.21.53" if BINUTILS_V_2_21_53
61 default "2.21.1a" if BINUTILS_V_2_21_1a
62 default "2.20.1a" if BINUTILS_V_2_20_1a
63 default "2.19.1a" if BINUTILS_V_2_19_1a
64 default "2.18a" if BINUTILS_V_2_18a
65 default "2.17a" if BINUTILS_V_2_17a
66 default "2.16.1a" if BINUTILS_V_2_16_1a
68 config BINUTILS_2_22_or_later
70 select BINUTILS_2_21_or_later
71 select BINUTILS_HAS_GOLD
72 select BINUTILS_HAS_PLUGINS
74 config BINUTILS_2_21_or_later
76 select BINUTILS_2_20_or_later
77 select BINUTILS_HAS_GOLD
78 select BINUTILS_HAS_PLUGINS
80 config BINUTILS_2_20_or_later
82 select BINUTILS_2_19_or_later
84 config BINUTILS_2_19_or_later
86 select BINUTILS_2_18_or_later
88 config BINUTILS_2_18_or_later
90 select BINUTILS_HAS_PKGVERSION_BUGURL
91 select BINUTILS_HAS_HASH_STYLE
93 config BINUTILS_HAS_HASH_STYLE
96 config BINUTILS_HAS_GOLD
99 config BINUTILS_GOLD_SUPPORTS_ARCH
102 config BINUTILS_HAS_PLUGINS
105 config BINUTILS_HAS_PKGVERSION_BUGURL
108 # Only these architectures have support in gold
110 select BINUTILS_GOLD_SUPPORTS_ARCH
113 select BINUTILS_GOLD_SUPPORTS_ARCH
115 # Force using the BFD linker if needed
116 # This is the case for some C libraries (eg. glibc and
117 # eglibc at least) and affected components can select this
118 config BINUTILS_FORCE_LD_BFD
123 prompt "Linkers to enable"
125 config BINUTILS_LINKER_LD
129 The historical, bfd linker.
131 config BINUTILS_LINKER_GOLD
134 depends on BINUTILS_HAS_GOLD
135 depends on BINUTILS_GOLD_SUPPORTS_ARCH
136 depends on ! BINUTILS_FORCE_LD_BFD
137 depends on EXPERIMENTAL
138 select BINUTILS_GOLD_INSTALLED
140 gold is a new, optimised, multi-threaded linker with support
141 for plugins. Designed to be a drop-in replacement for the
142 original linker, ld, it can be much faster, with a 5:1 or
143 bigger ratio being not uncommon, YMMV.
145 config BINUTILS_LINKER_LD_GOLD
148 depends on BINUTILS_HAS_GOLD
149 depends on BINUTILS_GOLD_SUPPORTS_ARCH
150 depends on EXPERIMENTAL
151 select BINUTILS_GOLD_INSTALLED
152 select BINUTILS_LINKER_BOTH
154 Both the historical ld and the new gold linkers will be
155 installed, with ld being the default linker used.
157 See help for gold, above.
159 config BINUTILS_LINKER_GOLD_LD
162 depends on BINUTILS_HAS_GOLD
163 depends on BINUTILS_GOLD_SUPPORTS_ARCH
164 depends on EXPERIMENTAL
165 select BINUTILS_GOLD_INSTALLED
166 select BINUTILS_LINKER_BOTH
167 select BINUTILS_LD_WRAPPER if BINUTILS_FORCE_LD_BFD
169 Both the historical ld and the new gold linkers will be
170 installed, with gold being the default linker used.
172 See help for gold, above.
174 endchoice # Enable linkers
176 if BINUTILS_LINKER_GOLD
177 comment "WARNING! gold is not capable of"
178 comment "| building glibc/eglibc!"
179 endif # BINUTILS_LINKER_GOLD
181 config BINUTILS_GOLD_INSTALLED
184 config BINUTILS_GOLD_THREADS
186 prompt "| Enable threaded gold"
187 depends on BINUTILS_GOLD_INSTALLED
189 When configured with threads, gold can link in parallel,
190 possibly cooperating with a make jobserver.
192 config BINUTILS_LINKER_BOTH
195 config BINUTILS_LINKERS_LIST
197 default "ld" if BINUTILS_LINKER_LD
198 default "gold" if BINUTILS_LINKER_GOLD
199 default "ld,gold" if BINUTILS_LINKER_LD_GOLD
200 default "gold,ld" if BINUTILS_LINKER_GOLD_LD
202 config BINUTILS_LD_WRAPPER
204 prompt "| Add ld wrapper"
205 depends on BINUTILS_LINKER_BOTH
207 Add an ld wrapper that calls to either gold or ld.
209 By default, the wrapper will call to the default wrapper,
210 but if you set the environment variable CTNG_LD_IS, you
211 can change which linker will get called:
212 CTNG_LD_IS=gold will unconditionally call the gold linker
213 CTNG_LD_IS=bfd will unconditionally call the old bfd ld linker
215 config BINUTILS_LINKER_DEFAULT
217 default "bfd" if BINUTILS_LINKER_LD || BINUTILS_LINKER_LD_GOLD
218 default "gold" if BINUTILS_LINKER_GOLD || BINUTILS_LINKER_GOLD_LD
220 config BINUTILS_PLUGINS
222 prompt "Enable support for plugins"
223 depends on BINUTILS_HAS_PLUGINS
224 depends on ! STATIC_TOOLCHAIN
226 binutils can be extended through the use of plugins.
227 Especially, gold can use the lto-plugin, as installed
228 by gcc, to handle LTO.
230 config BINUTILS_EXTRA_CONFIG_ARRAY
232 prompt "binutils extra config"
235 Extra flags passed onto ./configure when configuring
237 You can enter multiple arguments here, and arguments can contain spaces
238 if they are properly quoted (or escaped, but prefer quotes). Eg.:
239 --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
241 config BINUTILS_FOR_TARGET
243 prompt "binutils libraries for the target"
244 depends on ! BARE_METAL
247 Some utilities may need binutils libraries to be available on
248 the target, eg. oprofile.
250 if BINUTILS_FOR_TARGET
252 config BINUTILS_FOR_TARGET_IBERTY
257 config BINUTILS_FOR_TARGET_BFD
262 endif # BINUTILS_FOR_TARGET