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_CUSTOM
45 prompt "Custom binutils"
46 depends on EXPERIMENTAL
47 select BINUTILS_2_22_or_later
53 config BINUTILS_CUSTOM_LOCATION
55 prompt "Full path to custom binutils source"
58 Enter the path to the directory (or tarball) of your source for binutils,
59 or leave blank to use default CT_CUSTOM_LOCATION_ROOT_DIR/binutils
61 endif # BINUTILS_CUSTOM
63 config BINUTILS_VERSION
65 # Don't remove next line
66 # CT_INSERT_VERSION_STRING_BELOW
67 default "2.22" if BINUTILS_V_2_22
68 default "2.21.53" if BINUTILS_V_2_21_53
69 default "2.21.1a" if BINUTILS_V_2_21_1a
70 default "2.20.1a" if BINUTILS_V_2_20_1a
71 default "2.19.1a" if BINUTILS_V_2_19_1a
72 default "2.18a" if BINUTILS_V_2_18a
73 default "custom" if BINUTILS_CUSTOM
75 config BINUTILS_2_22_or_later
77 select BINUTILS_2_21_or_later
78 select BINUTILS_HAS_GOLD
79 select BINUTILS_HAS_PLUGINS
81 config BINUTILS_2_21_or_later
83 select BINUTILS_2_20_or_later
84 select BINUTILS_HAS_GOLD
85 select BINUTILS_HAS_PLUGINS
87 config BINUTILS_2_20_or_later
89 select BINUTILS_2_19_or_later
91 config BINUTILS_2_19_or_later
93 select BINUTILS_2_18_or_later
95 config BINUTILS_2_18_or_later
97 select BINUTILS_HAS_PKGVERSION_BUGURL
98 select BINUTILS_HAS_HASH_STYLE
100 config BINUTILS_HAS_HASH_STYLE
103 config BINUTILS_HAS_GOLD
106 # gold only suports the listed architectures
107 config BINUTILS_GOLD_SUPPORTS_ARCH
109 default y if ARCH_arm
110 default y if ARCH_x86
112 config BINUTILS_HAS_PLUGINS
115 config BINUTILS_HAS_PKGVERSION_BUGURL
118 # Force using the BFD linker if needed
119 # This is the case for some C libraries (eg. glibc and
120 # eglibc at least) and affected components can select this
121 config BINUTILS_FORCE_LD_BFD
126 prompt "Linkers to enable"
128 config BINUTILS_LINKER_LD
132 The historical, bfd linker.
134 config BINUTILS_LINKER_GOLD
137 depends on BINUTILS_HAS_GOLD
138 depends on BINUTILS_GOLD_SUPPORTS_ARCH
139 depends on ! BINUTILS_FORCE_LD_BFD
140 depends on EXPERIMENTAL
141 select BINUTILS_GOLD_INSTALLED
143 gold is a new, optimised, multi-threaded linker with support
144 for plugins. Designed to be a drop-in replacement for the
145 original linker, ld, it can be much faster, with a 5:1 or
146 bigger ratio being not uncommon, YMMV.
148 config BINUTILS_LINKER_LD_GOLD
151 depends on BINUTILS_HAS_GOLD
152 depends on BINUTILS_GOLD_SUPPORTS_ARCH
153 depends on EXPERIMENTAL
154 select BINUTILS_GOLD_INSTALLED
155 select BINUTILS_LINKER_BOTH
157 Both the historical ld and the new gold linkers will be
158 installed, with ld being the default linker used.
160 See help for gold, above.
162 config BINUTILS_LINKER_GOLD_LD
165 depends on BINUTILS_HAS_GOLD
166 depends on BINUTILS_GOLD_SUPPORTS_ARCH
167 depends on EXPERIMENTAL
168 select BINUTILS_GOLD_INSTALLED
169 select BINUTILS_LINKER_BOTH
170 select BINUTILS_LD_WRAPPER if BINUTILS_FORCE_LD_BFD
172 Both the historical ld and the new gold linkers will be
173 installed, with gold being the default linker used.
175 See help for gold, above.
177 endchoice # Enable linkers
179 if BINUTILS_LINKER_GOLD
180 comment "WARNING! gold is not capable of"
181 comment "| building glibc/eglibc!"
182 endif # BINUTILS_LINKER_GOLD
184 config BINUTILS_GOLD_INSTALLED
187 config BINUTILS_GOLD_THREADS
189 prompt "| Enable threaded gold"
190 depends on BINUTILS_GOLD_INSTALLED
192 When configured with threads, gold can link in parallel,
193 possibly cooperating with a make jobserver.
195 config BINUTILS_LINKER_BOTH
198 config BINUTILS_LINKERS_LIST
200 default "ld" if BINUTILS_LINKER_LD
201 default "gold" if BINUTILS_LINKER_GOLD
202 default "ld,gold" if BINUTILS_LINKER_LD_GOLD
203 default "gold,ld" if BINUTILS_LINKER_GOLD_LD
205 config BINUTILS_LD_WRAPPER
207 prompt "| Add ld wrapper"
208 depends on BINUTILS_LINKER_BOTH
210 Add an ld wrapper that calls to either gold or ld.
212 By default, the wrapper will call to the default wrapper,
213 but if you set the environment variable CTNG_LD_IS, you
214 can change which linker will get called:
215 CTNG_LD_IS=gold will unconditionally call the gold linker
216 CTNG_LD_IS=bfd will unconditionally call the old bfd ld linker
218 config BINUTILS_LINKER_DEFAULT
220 default "bfd" if BINUTILS_LINKER_LD || BINUTILS_LINKER_LD_GOLD
221 default "gold" if BINUTILS_LINKER_GOLD || BINUTILS_LINKER_GOLD_LD
223 config BINUTILS_PLUGINS
225 prompt "Enable support for plugins"
226 depends on BINUTILS_HAS_PLUGINS
227 depends on ! STATIC_TOOLCHAIN
229 binutils can be extended through the use of plugins.
230 Especially, gold can use the lto-plugin, as installed
231 by gcc, to handle LTO.
233 config BINUTILS_EXTRA_CONFIG_ARRAY
235 prompt "binutils extra config"
238 Extra flags passed onto ./configure when configuring
240 You can enter multiple arguments here, and arguments can contain spaces
241 if they are properly quoted (or escaped, but prefer quotes). Eg.:
242 --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
244 config BINUTILS_FOR_TARGET
246 prompt "binutils libraries for the target"
247 depends on ! BARE_METAL
250 Some utilities may need binutils libraries to be available on
251 the target, eg. oprofile.
253 if BINUTILS_FOR_TARGET
255 config BINUTILS_FOR_TARGET_IBERTY
260 config BINUTILS_FOR_TARGET_BFD
265 endif # BINUTILS_FOR_TARGET