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
95 select BINUTILS_HAS_GOLD
96 select BINUTILS_HAS_PLUGINS
98 config BINUTILS_2_23_or_later
100 select BINUTILS_2_22_or_later
101 select BINUTILS_HAS_GOLD
102 select BINUTILS_HAS_PLUGINS
104 config BINUTILS_2_22_or_later
106 select BINUTILS_2_21_or_later
107 select BINUTILS_HAS_GOLD
108 select BINUTILS_HAS_PLUGINS
110 config BINUTILS_2_21_or_later
112 select BINUTILS_2_20_or_later
113 select BINUTILS_HAS_GOLD
114 select BINUTILS_HAS_PLUGINS
116 config BINUTILS_2_20_or_later
118 select BINUTILS_2_19_or_later
120 config BINUTILS_2_19_or_later
122 select BINUTILS_2_18_or_later
124 config BINUTILS_2_18_or_later
126 select BINUTILS_HAS_PKGVERSION_BUGURL
127 select BINUTILS_HAS_HASH_STYLE
129 config BINUTILS_HAS_HASH_STYLE
132 config BINUTILS_HAS_GOLD
135 # gold only suports the listed architectures
136 config BINUTILS_GOLD_SUPPORTS_ARCH
138 default y if ARCH_arm
139 default y if ARCH_x86
141 config BINUTILS_HAS_PLUGINS
144 config BINUTILS_HAS_PKGVERSION_BUGURL
147 # Force using the BFD linker if needed
148 # This is the case for some C libraries (eg. glibc and
149 # eglibc at least) and affected components can select this
150 config BINUTILS_FORCE_LD_BFD
155 prompt "Linkers to enable"
157 config BINUTILS_LINKER_LD
161 The historical, bfd linker.
163 config BINUTILS_LINKER_GOLD
166 depends on BINUTILS_HAS_GOLD
167 depends on BINUTILS_GOLD_SUPPORTS_ARCH
168 depends on ! BINUTILS_FORCE_LD_BFD
169 select BINUTILS_GOLD_INSTALLED
171 gold is a new, optimised, multi-threaded linker with support
172 for plugins. Designed to be a drop-in replacement for the
173 original linker, ld, it can be much faster, with a 5:1 or
174 bigger ratio being not uncommon, YMMV.
176 config BINUTILS_LINKER_LD_GOLD
179 depends on BINUTILS_HAS_GOLD
180 depends on BINUTILS_GOLD_SUPPORTS_ARCH
181 select BINUTILS_GOLD_INSTALLED
182 select BINUTILS_LINKER_BOTH
184 Both the historical ld and the new gold linkers will be
185 installed, with ld being the default linker used.
187 See help for gold, above.
189 config BINUTILS_LINKER_GOLD_LD
192 depends on BINUTILS_HAS_GOLD
193 depends on BINUTILS_GOLD_SUPPORTS_ARCH
194 select BINUTILS_GOLD_INSTALLED
195 select BINUTILS_LINKER_BOTH
196 select BINUTILS_LD_WRAPPER if BINUTILS_FORCE_LD_BFD
198 Both the historical ld and the new gold linkers will be
199 installed, with gold being the default linker used.
201 See help for gold, above.
203 endchoice # Enable linkers
205 if BINUTILS_LINKER_GOLD
206 comment "WARNING! gold is not capable of"
207 comment "| building glibc/eglibc!"
208 endif # BINUTILS_LINKER_GOLD
210 config BINUTILS_GOLD_INSTALLED
213 config BINUTILS_GOLD_THREADS
215 prompt "| Enable threaded gold"
216 depends on BINUTILS_GOLD_INSTALLED
218 When configured with threads, gold can link in parallel,
219 possibly cooperating with a make jobserver.
221 config BINUTILS_LINKER_BOTH
224 config BINUTILS_LINKERS_LIST
226 default "ld" if BINUTILS_LINKER_LD
227 default "gold" if BINUTILS_LINKER_GOLD
228 default "ld,gold" if BINUTILS_LINKER_LD_GOLD
229 default "gold,ld" if BINUTILS_LINKER_GOLD_LD
231 config BINUTILS_LD_WRAPPER
233 prompt "| Add ld wrapper"
234 depends on BINUTILS_LINKER_BOTH
236 Add an ld wrapper that calls to either gold or ld.
238 By default, the wrapper will call to the default wrapper,
239 but if you set the environment variable CTNG_LD_IS, you
240 can change which linker will get called:
241 CTNG_LD_IS=gold will unconditionally call the gold linker
242 CTNG_LD_IS=bfd will unconditionally call the old bfd ld linker
244 config BINUTILS_LINKER_DEFAULT
246 default "bfd" if BINUTILS_LINKER_LD || BINUTILS_LINKER_LD_GOLD
247 default "gold" if BINUTILS_LINKER_GOLD || BINUTILS_LINKER_GOLD_LD
249 config BINUTILS_PLUGINS
251 prompt "Enable support for plugins"
252 depends on BINUTILS_HAS_PLUGINS
253 depends on ! STATIC_TOOLCHAIN
255 binutils can be extended through the use of plugins.
256 Especially, gold can use the lto-plugin, as installed
257 by gcc, to handle LTO.
259 config BINUTILS_EXTRA_CONFIG_ARRAY
261 prompt "binutils extra config"
264 Extra flags passed onto ./configure when configuring
266 You can enter multiple arguments here, and arguments can contain spaces
267 if they are properly quoted (or escaped, but prefer quotes). Eg.:
268 --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
270 config BINUTILS_FOR_TARGET
272 prompt "binutils libraries for the target"
273 depends on ! BARE_METAL
276 Some utilities may need binutils libraries to be available on
277 the target, eg. oprofile.
279 if BINUTILS_FOR_TARGET
281 config BINUTILS_FOR_TARGET_IBERTY
286 config BINUTILS_FOR_TARGET_BFD
291 endif # BINUTILS_FOR_TARGET