7 prompt "binutils version"
8 # Don't remove next line
9 # CT_INSERT_VERSION_BELOW
11 config BINUTILS_V_2_24
13 prompt "2.24 (EXPERIMENTAL)"
14 depends on EXPERIMENTAL
15 select BINUTILS_2_24_or_later
17 config BINUTILS_V_2_23_2
19 prompt "2.23.2 (EXPERIMENTAL)"
20 depends on EXPERIMENTAL
21 select BINUTILS_2_23_or_later
23 config BINUTILS_V_2_23_1
25 prompt "2.23.1 (EXPERIMENTAL)"
26 depends on EXPERIMENTAL
27 select BINUTILS_2_23_or_later
29 config BINUTILS_V_2_22
32 select BINUTILS_2_22_or_later
34 config BINUTILS_V_2_21_53
37 select BINUTILS_2_21_or_later
39 config BINUTILS_V_2_21_1a
42 select BINUTILS_2_21_or_later
44 config BINUTILS_V_2_20_1a
47 select BINUTILS_2_20_or_later
49 config BINUTILS_V_2_19_1a
52 select BINUTILS_2_19_or_later
54 config BINUTILS_V_2_18a
57 select BINUTILS_2_18_or_later
59 config BINUTILS_CUSTOM
61 prompt "Custom binutils"
62 depends on EXPERIMENTAL
63 select BINUTILS_2_22_or_later
69 config BINUTILS_CUSTOM_LOCATION
71 prompt "Full path to custom binutils source"
74 Enter the path to the directory (or tarball) of your source for binutils,
75 or leave blank to use default CT_CUSTOM_LOCATION_ROOT_DIR/binutils
77 endif # BINUTILS_CUSTOM
79 config BINUTILS_VERSION
81 # Don't remove next line
82 # CT_INSERT_VERSION_STRING_BELOW
83 default "2.24" if BINUTILS_V_2_24
84 default "2.23.2" if BINUTILS_V_2_23_2
85 default "2.23.1" if BINUTILS_V_2_23_1
86 default "2.22" if BINUTILS_V_2_22
87 default "2.21.53" if BINUTILS_V_2_21_53
88 default "2.21.1a" if BINUTILS_V_2_21_1a
89 default "2.20.1a" if BINUTILS_V_2_20_1a
90 default "2.19.1a" if BINUTILS_V_2_19_1a
91 default "2.18a" if BINUTILS_V_2_18a
92 default "custom" if BINUTILS_CUSTOM
94 config BINUTILS_2_24_or_later
96 select BINUTILS_2_23_or_later
98 config BINUTILS_2_23_or_later
100 select BINUTILS_2_22_or_later
102 config BINUTILS_2_22_or_later
104 select BINUTILS_2_21_or_later
106 config BINUTILS_2_21_or_later
108 select BINUTILS_2_20_or_later
109 select BINUTILS_HAS_GOLD
110 select BINUTILS_HAS_PLUGINS
112 config BINUTILS_2_20_or_later
114 select BINUTILS_2_19_or_later
116 config BINUTILS_2_19_or_later
118 select BINUTILS_2_18_or_later
120 config BINUTILS_2_18_or_later
122 select BINUTILS_HAS_PKGVERSION_BUGURL
123 select BINUTILS_HAS_HASH_STYLE
125 config BINUTILS_HAS_HASH_STYLE
128 config BINUTILS_HAS_GOLD
131 # gold only suports the listed architectures
132 config BINUTILS_GOLD_SUPPORTS_ARCH
134 default y if ARCH_arm
135 default y if ARCH_x86
137 config BINUTILS_HAS_PLUGINS
140 config BINUTILS_HAS_PKGVERSION_BUGURL
143 # Force using the BFD linker if needed
144 # This is the case for some C libraries (eg. glibc and
145 # eglibc at least) and affected components can select this
146 config BINUTILS_FORCE_LD_BFD
151 prompt "Linkers to enable"
153 config BINUTILS_LINKER_LD
157 The historical, bfd linker.
159 config BINUTILS_LINKER_GOLD
162 depends on BINUTILS_HAS_GOLD
163 depends on BINUTILS_GOLD_SUPPORTS_ARCH
164 depends on ! BINUTILS_FORCE_LD_BFD
165 select BINUTILS_GOLD_INSTALLED
167 gold is a new, optimised, multi-threaded linker with support
168 for plugins. Designed to be a drop-in replacement for the
169 original linker, ld, it can be much faster, with a 5:1 or
170 bigger ratio being not uncommon, YMMV.
172 config BINUTILS_LINKER_LD_GOLD
175 depends on BINUTILS_HAS_GOLD
176 depends on BINUTILS_GOLD_SUPPORTS_ARCH
177 select BINUTILS_GOLD_INSTALLED
178 select BINUTILS_LINKER_BOTH
180 Both the historical ld and the new gold linkers will be
181 installed, with ld being the default linker used.
183 See help for gold, above.
185 config BINUTILS_LINKER_GOLD_LD
188 depends on BINUTILS_HAS_GOLD
189 depends on BINUTILS_GOLD_SUPPORTS_ARCH
190 select BINUTILS_GOLD_INSTALLED
191 select BINUTILS_LINKER_BOTH
192 select BINUTILS_LD_WRAPPER if BINUTILS_FORCE_LD_BFD
194 Both the historical ld and the new gold linkers will be
195 installed, with gold being the default linker used.
197 See help for gold, above.
199 endchoice # Enable linkers
201 if BINUTILS_LINKER_GOLD
202 comment "WARNING! gold is not capable of"
203 comment "| building glibc/eglibc!"
204 endif # BINUTILS_LINKER_GOLD
206 config BINUTILS_GOLD_INSTALLED
209 config BINUTILS_GOLD_THREADS
211 prompt "| Enable threaded gold"
212 depends on BINUTILS_GOLD_INSTALLED
214 When configured with threads, gold can link in parallel,
215 possibly cooperating with a make jobserver.
217 config BINUTILS_LINKER_BOTH
220 config BINUTILS_LINKERS_LIST
222 default "ld" if BINUTILS_LINKER_LD
223 default "gold" if BINUTILS_LINKER_GOLD
224 default "ld,gold" if BINUTILS_LINKER_LD_GOLD
225 default "gold,ld" if BINUTILS_LINKER_GOLD_LD
227 config BINUTILS_LD_WRAPPER
229 prompt "| Add ld wrapper"
230 depends on BINUTILS_LINKER_BOTH
232 Add an ld wrapper that calls to either gold or ld.
234 By default, the wrapper will call to the default wrapper,
235 but if you set the environment variable CTNG_LD_IS, you
236 can change which linker will get called:
237 CTNG_LD_IS=gold will unconditionally call the gold linker
238 CTNG_LD_IS=bfd will unconditionally call the old bfd ld linker
240 config BINUTILS_LINKER_DEFAULT
242 default "bfd" if BINUTILS_LINKER_LD || BINUTILS_LINKER_LD_GOLD
243 default "gold" if BINUTILS_LINKER_GOLD || BINUTILS_LINKER_GOLD_LD
245 config BINUTILS_PLUGINS
247 prompt "Enable support for plugins"
248 depends on BINUTILS_HAS_PLUGINS
249 depends on ! STATIC_TOOLCHAIN
251 binutils can be extended through the use of plugins.
252 Especially, gold can use the lto-plugin, as installed
253 by gcc, to handle LTO.
255 config BINUTILS_EXTRA_CONFIG_ARRAY
257 prompt "binutils extra config"
260 Extra flags passed onto ./configure when configuring
262 You can enter multiple arguments here, and arguments can contain spaces
263 if they are properly quoted (or escaped, but prefer quotes). Eg.:
264 --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
266 config BINUTILS_FOR_TARGET
268 prompt "binutils libraries for the target"
269 depends on ! BARE_METAL
272 Some utilities may need binutils libraries to be available on
273 the target, eg. oprofile.
275 if BINUTILS_FOR_TARGET
277 config BINUTILS_FOR_TARGET_IBERTY
282 config BINUTILS_FOR_TARGET_BFD
287 endif # BINUTILS_FOR_TARGET