7 prompt "binutils version"
8 # Don't remove next line
9 # CT_INSERT_VERSION_BELOW
11 config BINUTILS_V_2_23_2
13 prompt "2.23.2 (EXPERIMENTAL)"
14 depends on EXPERIMENTAL
16 config BINUTILS_V_2_23_1
18 prompt "2.23.1 (EXPERIMENTAL)"
19 depends on EXPERIMENTAL
20 select BINUTILS_2_23_or_later
22 config BINUTILS_V_2_22
25 select BINUTILS_2_22_or_later
27 config BINUTILS_V_2_21_53
30 select BINUTILS_2_21_or_later
32 config BINUTILS_V_2_21_1a
35 select BINUTILS_2_21_or_later
37 config BINUTILS_V_2_20_1a
40 select BINUTILS_2_20_or_later
42 config BINUTILS_V_2_19_1a
45 select BINUTILS_2_19_or_later
47 config BINUTILS_V_2_18a
50 select BINUTILS_2_18_or_later
52 config BINUTILS_CUSTOM
54 prompt "Custom binutils"
55 depends on EXPERIMENTAL
56 select BINUTILS_2_22_or_later
62 config BINUTILS_CUSTOM_LOCATION
64 prompt "Full path to custom binutils source"
67 Enter the path to the directory (or tarball) of your source for binutils,
68 or leave blank to use default CT_CUSTOM_LOCATION_ROOT_DIR/binutils
70 endif # BINUTILS_CUSTOM
72 config BINUTILS_VERSION
74 # Don't remove next line
75 # CT_INSERT_VERSION_STRING_BELOW
76 default "2.23.2" if BINUTILS_V_2_23_2
77 default "2.23.1" if BINUTILS_V_2_23_1
78 default "2.22" if BINUTILS_V_2_22
79 default "2.21.53" if BINUTILS_V_2_21_53
80 default "2.21.1a" if BINUTILS_V_2_21_1a
81 default "2.20.1a" if BINUTILS_V_2_20_1a
82 default "2.19.1a" if BINUTILS_V_2_19_1a
83 default "2.18a" if BINUTILS_V_2_18a
84 default "custom" if BINUTILS_CUSTOM
86 config BINUTILS_2_23_or_later
88 select BINUTILS_2_22_or_later
89 select BINUTILS_HAS_GOLD
90 select BINUTILS_HAS_PLUGINS
92 config BINUTILS_2_22_or_later
94 select BINUTILS_2_21_or_later
95 select BINUTILS_HAS_GOLD
96 select BINUTILS_HAS_PLUGINS
98 config BINUTILS_2_21_or_later
100 select BINUTILS_2_20_or_later
101 select BINUTILS_HAS_GOLD
102 select BINUTILS_HAS_PLUGINS
104 config BINUTILS_2_20_or_later
106 select BINUTILS_2_19_or_later
108 config BINUTILS_2_19_or_later
110 select BINUTILS_2_18_or_later
112 config BINUTILS_2_18_or_later
114 select BINUTILS_HAS_PKGVERSION_BUGURL
115 select BINUTILS_HAS_HASH_STYLE
117 config BINUTILS_HAS_HASH_STYLE
120 config BINUTILS_HAS_GOLD
123 # gold only suports the listed architectures
124 config BINUTILS_GOLD_SUPPORTS_ARCH
126 default y if ARCH_arm
127 default y if ARCH_x86
129 config BINUTILS_HAS_PLUGINS
132 config BINUTILS_HAS_PKGVERSION_BUGURL
135 # Force using the BFD linker if needed
136 # This is the case for some C libraries (eg. glibc and
137 # eglibc at least) and affected components can select this
138 config BINUTILS_FORCE_LD_BFD
143 prompt "Linkers to enable"
145 config BINUTILS_LINKER_LD
149 The historical, bfd linker.
151 config BINUTILS_LINKER_GOLD
154 depends on BINUTILS_HAS_GOLD
155 depends on BINUTILS_GOLD_SUPPORTS_ARCH
156 depends on ! BINUTILS_FORCE_LD_BFD
157 select BINUTILS_GOLD_INSTALLED
159 gold is a new, optimised, multi-threaded linker with support
160 for plugins. Designed to be a drop-in replacement for the
161 original linker, ld, it can be much faster, with a 5:1 or
162 bigger ratio being not uncommon, YMMV.
164 config BINUTILS_LINKER_LD_GOLD
167 depends on BINUTILS_HAS_GOLD
168 depends on BINUTILS_GOLD_SUPPORTS_ARCH
169 select BINUTILS_GOLD_INSTALLED
170 select BINUTILS_LINKER_BOTH
172 Both the historical ld and the new gold linkers will be
173 installed, with ld being the default linker used.
175 See help for gold, above.
177 config BINUTILS_LINKER_GOLD_LD
180 depends on BINUTILS_HAS_GOLD
181 depends on BINUTILS_GOLD_SUPPORTS_ARCH
182 select BINUTILS_GOLD_INSTALLED
183 select BINUTILS_LINKER_BOTH
184 select BINUTILS_LD_WRAPPER if BINUTILS_FORCE_LD_BFD
186 Both the historical ld and the new gold linkers will be
187 installed, with gold being the default linker used.
189 See help for gold, above.
191 endchoice # Enable linkers
193 if BINUTILS_LINKER_GOLD
194 comment "WARNING! gold is not capable of"
195 comment "| building glibc/eglibc!"
196 endif # BINUTILS_LINKER_GOLD
198 config BINUTILS_GOLD_INSTALLED
201 config BINUTILS_GOLD_THREADS
203 prompt "| Enable threaded gold"
204 depends on BINUTILS_GOLD_INSTALLED
206 When configured with threads, gold can link in parallel,
207 possibly cooperating with a make jobserver.
209 config BINUTILS_LINKER_BOTH
212 config BINUTILS_LINKERS_LIST
214 default "ld" if BINUTILS_LINKER_LD
215 default "gold" if BINUTILS_LINKER_GOLD
216 default "ld,gold" if BINUTILS_LINKER_LD_GOLD
217 default "gold,ld" if BINUTILS_LINKER_GOLD_LD
219 config BINUTILS_LD_WRAPPER
221 prompt "| Add ld wrapper"
222 depends on BINUTILS_LINKER_BOTH
224 Add an ld wrapper that calls to either gold or ld.
226 By default, the wrapper will call to the default wrapper,
227 but if you set the environment variable CTNG_LD_IS, you
228 can change which linker will get called:
229 CTNG_LD_IS=gold will unconditionally call the gold linker
230 CTNG_LD_IS=bfd will unconditionally call the old bfd ld linker
232 config BINUTILS_LINKER_DEFAULT
234 default "bfd" if BINUTILS_LINKER_LD || BINUTILS_LINKER_LD_GOLD
235 default "gold" if BINUTILS_LINKER_GOLD || BINUTILS_LINKER_GOLD_LD
237 config BINUTILS_PLUGINS
239 prompt "Enable support for plugins"
240 depends on BINUTILS_HAS_PLUGINS
241 depends on ! STATIC_TOOLCHAIN
243 binutils can be extended through the use of plugins.
244 Especially, gold can use the lto-plugin, as installed
245 by gcc, to handle LTO.
247 config BINUTILS_EXTRA_CONFIG_ARRAY
249 prompt "binutils extra config"
252 Extra flags passed onto ./configure when configuring
254 You can enter multiple arguments here, and arguments can contain spaces
255 if they are properly quoted (or escaped, but prefer quotes). Eg.:
256 --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
258 config BINUTILS_FOR_TARGET
260 prompt "binutils libraries for the target"
261 depends on ! BARE_METAL
264 Some utilities may need binutils libraries to be available on
265 the target, eg. oprofile.
267 if BINUTILS_FOR_TARGET
269 config BINUTILS_FOR_TARGET_IBERTY
274 config BINUTILS_FOR_TARGET_BFD
279 endif # BINUTILS_FOR_TARGET