7 prompt "binutils version"
8 # Don't remove next line
9 # CT_INSERT_VERSION_BELOW
11 config BINUTILS_V_2_24
15 config BINUTILS_V_2_23_2
17 prompt "2.23.2 (EXPERIMENTAL)"
18 depends on EXPERIMENTAL
19 select BINUTILS_2_23_or_later
21 config BINUTILS_V_2_23_1
23 prompt "2.23.1 (EXPERIMENTAL)"
24 depends on EXPERIMENTAL
25 select BINUTILS_2_23_or_later
27 config BINUTILS_V_2_22
30 select BINUTILS_2_22_or_later
32 config BINUTILS_V_2_21_53
35 select BINUTILS_2_21_or_later
37 config BINUTILS_V_2_21_1a
40 select BINUTILS_2_21_or_later
42 config BINUTILS_V_2_20_1a
45 select BINUTILS_2_20_or_later
47 config BINUTILS_V_2_19_1a
50 select BINUTILS_2_19_or_later
52 config BINUTILS_V_2_18a
55 select BINUTILS_2_18_or_later
57 config BINUTILS_CUSTOM
59 prompt "Custom binutils"
60 depends on EXPERIMENTAL
61 select BINUTILS_2_22_or_later
67 config BINUTILS_CUSTOM_LOCATION
69 prompt "Full path to custom binutils source"
72 Enter the path to the directory (or tarball) of your source for binutils,
73 or leave blank to use default CT_CUSTOM_LOCATION_ROOT_DIR/binutils
75 endif # BINUTILS_CUSTOM
77 config BINUTILS_VERSION
79 # Don't remove next line
80 # CT_INSERT_VERSION_STRING_BELOW
81 default "2.24" if BINUTILS_V_2_24
82 default "2.23.2" if BINUTILS_V_2_23_2
83 default "2.23.1" if BINUTILS_V_2_23_1
84 default "2.22" if BINUTILS_V_2_22
85 default "2.21.53" if BINUTILS_V_2_21_53
86 default "2.21.1a" if BINUTILS_V_2_21_1a
87 default "2.20.1a" if BINUTILS_V_2_20_1a
88 default "2.19.1a" if BINUTILS_V_2_19_1a
89 default "2.18a" if BINUTILS_V_2_18a
90 default "custom" if BINUTILS_CUSTOM
92 config BINUTILS_2_24_or_later
94 select BINUTILS_2_23_or_later
96 config BINUTILS_2_23_or_later
98 select BINUTILS_2_22_or_later
100 config BINUTILS_2_22_or_later
102 select BINUTILS_2_21_or_later
104 config BINUTILS_2_21_or_later
106 select BINUTILS_2_20_or_later
107 select BINUTILS_HAS_GOLD
108 select BINUTILS_HAS_PLUGINS
110 config BINUTILS_2_20_or_later
112 select BINUTILS_2_19_or_later
114 config BINUTILS_2_19_or_later
116 select BINUTILS_2_18_or_later
118 config BINUTILS_2_18_or_later
120 select BINUTILS_HAS_PKGVERSION_BUGURL
121 select BINUTILS_HAS_HASH_STYLE
123 config BINUTILS_HAS_HASH_STYLE
126 config BINUTILS_HAS_GOLD
129 # gold only suports the listed architectures
130 config BINUTILS_GOLD_SUPPORTS_ARCH
132 default y if ARCH_arm
133 default y if ARCH_x86
135 config BINUTILS_HAS_PLUGINS
138 config BINUTILS_HAS_PKGVERSION_BUGURL
141 # Force using the BFD linker if needed
142 # This is the case for some C libraries (eg. glibc and
143 # eglibc at least) and affected components can select this
144 config BINUTILS_FORCE_LD_BFD
149 prompt "Linkers to enable"
151 config BINUTILS_LINKER_LD
155 The historical, bfd linker.
157 config BINUTILS_LINKER_GOLD
160 depends on BINUTILS_HAS_GOLD
161 depends on BINUTILS_GOLD_SUPPORTS_ARCH
162 depends on ! BINUTILS_FORCE_LD_BFD
163 select BINUTILS_GOLD_INSTALLED
165 gold is a new, optimised, multi-threaded linker with support
166 for plugins. Designed to be a drop-in replacement for the
167 original linker, ld, it can be much faster, with a 5:1 or
168 bigger ratio being not uncommon, YMMV.
170 config BINUTILS_LINKER_LD_GOLD
173 depends on BINUTILS_HAS_GOLD
174 depends on BINUTILS_GOLD_SUPPORTS_ARCH
175 select BINUTILS_GOLD_INSTALLED
176 select BINUTILS_LINKER_BOTH
178 Both the historical ld and the new gold linkers will be
179 installed, with ld being the default linker used.
181 See help for gold, above.
183 config BINUTILS_LINKER_GOLD_LD
186 depends on BINUTILS_HAS_GOLD
187 depends on BINUTILS_GOLD_SUPPORTS_ARCH
188 select BINUTILS_GOLD_INSTALLED
189 select BINUTILS_LINKER_BOTH
190 select BINUTILS_LD_WRAPPER if BINUTILS_FORCE_LD_BFD
192 Both the historical ld and the new gold linkers will be
193 installed, with gold being the default linker used.
195 See help for gold, above.
197 endchoice # Enable linkers
199 if BINUTILS_LINKER_GOLD
200 comment "WARNING! gold is not capable of"
201 comment "| building glibc/eglibc!"
202 endif # BINUTILS_LINKER_GOLD
204 config BINUTILS_GOLD_INSTALLED
207 config BINUTILS_GOLD_THREADS
209 prompt "| Enable threaded gold"
210 depends on BINUTILS_GOLD_INSTALLED
212 When configured with threads, gold can link in parallel,
213 possibly cooperating with a make jobserver.
215 config BINUTILS_LINKER_BOTH
218 config BINUTILS_LINKERS_LIST
220 default "ld" if BINUTILS_LINKER_LD
221 default "gold" if BINUTILS_LINKER_GOLD
222 default "ld,gold" if BINUTILS_LINKER_LD_GOLD
223 default "gold,ld" if BINUTILS_LINKER_GOLD_LD
225 config BINUTILS_LD_WRAPPER
227 prompt "| Add ld wrapper"
228 depends on BINUTILS_LINKER_BOTH
230 Add an ld wrapper that calls to either gold or ld.
232 By default, the wrapper will call to the default wrapper,
233 but if you set the environment variable CTNG_LD_IS, you
234 can change which linker will get called:
235 CTNG_LD_IS=gold will unconditionally call the gold linker
236 CTNG_LD_IS=bfd will unconditionally call the old bfd ld linker
238 config BINUTILS_LINKER_DEFAULT
240 default "bfd" if BINUTILS_LINKER_LD || BINUTILS_LINKER_LD_GOLD
241 default "gold" if BINUTILS_LINKER_GOLD || BINUTILS_LINKER_GOLD_LD
243 config BINUTILS_PLUGINS
245 prompt "Enable support for plugins"
246 depends on BINUTILS_HAS_PLUGINS
247 depends on ! STATIC_TOOLCHAIN
249 binutils can be extended through the use of plugins.
250 Especially, gold can use the lto-plugin, as installed
251 by gcc, to handle LTO.
253 config BINUTILS_EXTRA_CONFIG_ARRAY
255 prompt "binutils extra config"
258 Extra flags passed onto ./configure when configuring
260 You can enter multiple arguments here, and arguments can contain spaces
261 if they are properly quoted (or escaped, but prefer quotes). Eg.:
262 --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
264 config BINUTILS_FOR_TARGET
266 prompt "binutils libraries for the target"
267 depends on ! BARE_METAL
270 Some utilities may need binutils libraries to be available on
271 the target, eg. oprofile.
273 if BINUTILS_FOR_TARGET
275 config BINUTILS_FOR_TARGET_IBERTY
280 config BINUTILS_FOR_TARGET_BFD
285 endif # BINUTILS_FOR_TARGET