7 prompt "binutils version"
8 # Don't remove next line
9 # CT_INSERT_VERSION_BELOW
11 config BINUTILS_V_2_23_1
13 prompt "2.23.1 (EXPERIMENTAL)"
14 depends on EXPERIMENTAL
15 select BINUTILS_2_23_or_later
17 config BINUTILS_V_2_22
20 select BINUTILS_2_22_or_later
22 config BINUTILS_V_2_21_53
25 select BINUTILS_2_21_or_later
27 config BINUTILS_V_2_21_1a
30 select BINUTILS_2_21_or_later
32 config BINUTILS_V_2_20_1a
35 select BINUTILS_2_20_or_later
37 config BINUTILS_V_2_19_1a
40 select BINUTILS_2_19_or_later
42 config BINUTILS_V_2_18a
45 select BINUTILS_2_18_or_later
47 config BINUTILS_CUSTOM
49 prompt "Custom binutils"
50 depends on EXPERIMENTAL
51 select BINUTILS_2_22_or_later
57 config BINUTILS_CUSTOM_LOCATION
59 prompt "Full path to custom binutils source"
62 Enter the path to the directory (or tarball) of your source for binutils,
63 or leave blank to use default CT_CUSTOM_LOCATION_ROOT_DIR/binutils
65 endif # BINUTILS_CUSTOM
67 config BINUTILS_VERSION
69 # Don't remove next line
70 # CT_INSERT_VERSION_STRING_BELOW
71 default "2.23.1" if BINUTILS_V_2_23_1
72 default "2.22" if BINUTILS_V_2_22
73 default "2.21.53" if BINUTILS_V_2_21_53
74 default "2.21.1a" if BINUTILS_V_2_21_1a
75 default "2.20.1a" if BINUTILS_V_2_20_1a
76 default "2.19.1a" if BINUTILS_V_2_19_1a
77 default "2.18a" if BINUTILS_V_2_18a
78 default "custom" if BINUTILS_CUSTOM
80 config BINUTILS_2_23_or_later
82 select BINUTILS_2_22_or_later
83 select BINUTILS_HAS_GOLD
84 select BINUTILS_HAS_PLUGINS
86 config BINUTILS_2_22_or_later
88 select BINUTILS_2_21_or_later
89 select BINUTILS_HAS_GOLD
90 select BINUTILS_HAS_PLUGINS
92 config BINUTILS_2_21_or_later
94 select BINUTILS_2_20_or_later
95 select BINUTILS_HAS_GOLD
96 select BINUTILS_HAS_PLUGINS
98 config BINUTILS_2_20_or_later
100 select BINUTILS_2_19_or_later
102 config BINUTILS_2_19_or_later
104 select BINUTILS_2_18_or_later
106 config BINUTILS_2_18_or_later
108 select BINUTILS_HAS_PKGVERSION_BUGURL
109 select BINUTILS_HAS_HASH_STYLE
111 config BINUTILS_HAS_HASH_STYLE
114 config BINUTILS_HAS_GOLD
117 # gold only suports the listed architectures
118 config BINUTILS_GOLD_SUPPORTS_ARCH
120 default y if ARCH_arm
121 default y if ARCH_x86
123 config BINUTILS_HAS_PLUGINS
126 config BINUTILS_HAS_PKGVERSION_BUGURL
129 # Force using the BFD linker if needed
130 # This is the case for some C libraries (eg. glibc and
131 # eglibc at least) and affected components can select this
132 config BINUTILS_FORCE_LD_BFD
137 prompt "Linkers to enable"
139 config BINUTILS_LINKER_LD
143 The historical, bfd linker.
145 config BINUTILS_LINKER_GOLD
148 depends on BINUTILS_HAS_GOLD
149 depends on BINUTILS_GOLD_SUPPORTS_ARCH
150 depends on ! BINUTILS_FORCE_LD_BFD
151 select BINUTILS_GOLD_INSTALLED
153 gold is a new, optimised, multi-threaded linker with support
154 for plugins. Designed to be a drop-in replacement for the
155 original linker, ld, it can be much faster, with a 5:1 or
156 bigger ratio being not uncommon, YMMV.
158 config BINUTILS_LINKER_LD_GOLD
161 depends on BINUTILS_HAS_GOLD
162 depends on BINUTILS_GOLD_SUPPORTS_ARCH
163 select BINUTILS_GOLD_INSTALLED
164 select BINUTILS_LINKER_BOTH
166 Both the historical ld and the new gold linkers will be
167 installed, with ld being the default linker used.
169 See help for gold, above.
171 config BINUTILS_LINKER_GOLD_LD
174 depends on BINUTILS_HAS_GOLD
175 depends on BINUTILS_GOLD_SUPPORTS_ARCH
176 select BINUTILS_GOLD_INSTALLED
177 select BINUTILS_LINKER_BOTH
178 select BINUTILS_LD_WRAPPER if BINUTILS_FORCE_LD_BFD
180 Both the historical ld and the new gold linkers will be
181 installed, with gold being the default linker used.
183 See help for gold, above.
185 endchoice # Enable linkers
187 if BINUTILS_LINKER_GOLD
188 comment "WARNING! gold is not capable of"
189 comment "| building glibc/eglibc!"
190 endif # BINUTILS_LINKER_GOLD
192 config BINUTILS_GOLD_INSTALLED
195 config BINUTILS_GOLD_THREADS
197 prompt "| Enable threaded gold"
198 depends on BINUTILS_GOLD_INSTALLED
200 When configured with threads, gold can link in parallel,
201 possibly cooperating with a make jobserver.
203 config BINUTILS_LINKER_BOTH
206 config BINUTILS_LINKERS_LIST
208 default "ld" if BINUTILS_LINKER_LD
209 default "gold" if BINUTILS_LINKER_GOLD
210 default "ld,gold" if BINUTILS_LINKER_LD_GOLD
211 default "gold,ld" if BINUTILS_LINKER_GOLD_LD
213 config BINUTILS_LD_WRAPPER
215 prompt "| Add ld wrapper"
216 depends on BINUTILS_LINKER_BOTH
218 Add an ld wrapper that calls to either gold or ld.
220 By default, the wrapper will call to the default wrapper,
221 but if you set the environment variable CTNG_LD_IS, you
222 can change which linker will get called:
223 CTNG_LD_IS=gold will unconditionally call the gold linker
224 CTNG_LD_IS=bfd will unconditionally call the old bfd ld linker
226 config BINUTILS_LINKER_DEFAULT
228 default "bfd" if BINUTILS_LINKER_LD || BINUTILS_LINKER_LD_GOLD
229 default "gold" if BINUTILS_LINKER_GOLD || BINUTILS_LINKER_GOLD_LD
231 config BINUTILS_PLUGINS
233 prompt "Enable support for plugins"
234 depends on BINUTILS_HAS_PLUGINS
235 depends on ! STATIC_TOOLCHAIN
237 binutils can be extended through the use of plugins.
238 Especially, gold can use the lto-plugin, as installed
239 by gcc, to handle LTO.
241 config BINUTILS_EXTRA_CONFIG_ARRAY
243 prompt "binutils extra config"
246 Extra flags passed onto ./configure when configuring
248 You can enter multiple arguments here, and arguments can contain spaces
249 if they are properly quoted (or escaped, but prefer quotes). Eg.:
250 --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
252 config BINUTILS_FOR_TARGET
254 prompt "binutils libraries for the target"
255 depends on ! BARE_METAL
258 Some utilities may need binutils libraries to be available on
259 the target, eg. oprofile.
261 if BINUTILS_FOR_TARGET
263 config BINUTILS_FOR_TARGET_IBERTY
268 config BINUTILS_FOR_TARGET_BFD
273 endif # BINUTILS_FOR_TARGET