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_V_2_17a
45 prompt "2.17a (OBSOLETE)"
48 config BINUTILS_V_2_16_1a
50 prompt "2.16.1a (OBSOLETE)"
55 config BINUTILS_VERSION
57 # Don't remove next line
58 # CT_INSERT_VERSION_STRING_BELOW
59 default "2.22" if BINUTILS_V_2_22
60 default "2.21.53" if BINUTILS_V_2_21_53
61 default "2.21.1a" if BINUTILS_V_2_21_1a
62 default "2.20.1a" if BINUTILS_V_2_20_1a
63 default "2.19.1a" if BINUTILS_V_2_19_1a
64 default "2.18a" if BINUTILS_V_2_18a
65 default "2.17a" if BINUTILS_V_2_17a
66 default "2.16.1a" if BINUTILS_V_2_16_1a
68 config BINUTILS_2_22_or_later
70 select BINUTILS_2_21_or_later
71 select BINUTILS_HAS_GOLD
72 select BINUTILS_HAS_PLUGINS
74 config BINUTILS_2_21_or_later
76 select BINUTILS_2_20_or_later
77 select BINUTILS_HAS_GOLD
78 select BINUTILS_HAS_PLUGINS
80 config BINUTILS_2_20_or_later
82 select BINUTILS_2_19_or_later
84 config BINUTILS_2_19_or_later
86 select BINUTILS_2_18_or_later
88 config BINUTILS_2_18_or_later
90 select BINUTILS_HAS_PKGVERSION_BUGURL
92 config BINUTILS_HAS_GOLD
95 config BINUTILS_GOLD_SUPPORTS_ARCH
98 config BINUTILS_HAS_PLUGINS
101 config BINUTILS_HAS_PKGVERSION_BUGURL
104 # Only these architectures have support in gold
106 select BINUTILS_GOLD_SUPPORTS_ARCH
109 select BINUTILS_GOLD_SUPPORTS_ARCH
111 # Force using the BFD linker if needed
112 # This is the case for some C libraries (eg. glibc and
113 # eglibc at least) and affected components can select this
114 config BINUTILS_FORCE_LD_BFD
119 prompt "Linkers to enable"
121 config BINUTILS_LINKER_LD
125 The historical, bfd linker.
127 config BINUTILS_LINKER_GOLD
130 depends on BINUTILS_HAS_GOLD
131 depends on BINUTILS_GOLD_SUPPORTS_ARCH
132 depends on ! BINUTILS_FORCE_LD_BFD
133 depends on EXPERIMENTAL
134 select BINUTILS_GOLD_INSTALLED
136 gold is a new, optimised, multi-threaded linker with support
137 for plugins. Designed to be a drop-in replacement for the
138 original linker, ld, it can be much faster, with a 5:1 or
139 bigger ratio being not uncommon, YMMV.
141 config BINUTILS_LINKER_LD_GOLD
144 depends on BINUTILS_HAS_GOLD
145 depends on BINUTILS_GOLD_SUPPORTS_ARCH
146 depends on EXPERIMENTAL
147 select BINUTILS_GOLD_INSTALLED
148 select BINUTILS_LINKER_BOTH
150 Both the historical ld and the new gold linkers will be
151 installed, with ld being the default linker used.
153 See help for gold, above.
155 config BINUTILS_LINKER_GOLD_LD
158 depends on BINUTILS_HAS_GOLD
159 depends on BINUTILS_GOLD_SUPPORTS_ARCH
160 depends on EXPERIMENTAL
161 select BINUTILS_GOLD_INSTALLED
162 select BINUTILS_LINKER_BOTH
163 select BINUTILS_LD_WRAPPER if BINUTILS_FORCE_LD_BFD
165 Both the historical ld and the new gold linkers will be
166 installed, with gold being the default linker used.
168 See help for gold, above.
170 endchoice # Enable linkers
172 if BINUTILS_LINKER_GOLD
173 comment "WARNING! gold is not capable of"
174 comment "| building glibc/eglibc!"
175 endif # BINUTILS_LINKER_GOLD
177 config BINUTILS_GOLD_INSTALLED
180 config BINUTILS_GOLD_THREADS
182 prompt "| Enable threaded gold"
183 depends on BINUTILS_GOLD_INSTALLED
185 When configured with threads, gold can link in parallel,
186 possibly cooperating with a make jobserver.
188 config BINUTILS_LINKER_BOTH
191 config BINUTILS_LINKERS_LIST
193 default "ld" if BINUTILS_LINKER_LD
194 default "gold" if BINUTILS_LINKER_GOLD
195 default "ld,gold" if BINUTILS_LINKER_LD_GOLD
196 default "gold,ld" if BINUTILS_LINKER_GOLD_LD
198 config BINUTILS_LD_WRAPPER
200 prompt "| Add ld wrapper"
201 depends on BINUTILS_LINKER_BOTH
203 Add an ld wrapper that calls to either gold or ld.
205 By default, the wrapper will call to the default wrapper,
206 but if you set the environment variable CTNG_LD_IS, you
207 can change which linker will get called:
208 CTNG_LD_IS=gold will unconditionally call the gold linker
209 CTNG_LD_IS=bfd will unconditionally call the old bfd ld linker
211 config BINUTILS_LINKER_DEFAULT
213 default "bfd" if BINUTILS_LINKER_LD || BINUTILS_LINKER_LD_GOLD
214 default "gold" if BINUTILS_LINKER_GOLD || BINUTILS_LINKER_GOLD_LD
216 config BINUTILS_PLUGINS
218 prompt "Enable support for plugins"
219 depends on BINUTILS_HAS_PLUGINS
220 depends on ! STATIC_TOOLCHAIN
222 binutils can be extended through the use of plugins.
223 Especially, gold can use the lto-plugin, as installed
224 by gcc, to handle LTO.
226 config BINUTILS_EXTRA_CONFIG_ARRAY
228 prompt "binutils extra config"
231 Extra flags passed onto ./configure when configuring
233 You can enter multiple arguments here, and arguments can contain spaces
234 if they are properly quoted (or escaped, but prefer quotes). Eg.:
235 --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
237 config BINUTILS_FOR_TARGET
239 prompt "binutils libraries for the target"
240 depends on ! BARE_METAL
243 Some utilities may need binutils libraries to be available on
244 the target, eg. oprofile.
246 if BINUTILS_FOR_TARGET
248 config BINUTILS_FOR_TARGET_IBERTY
253 config BINUTILS_FOR_TARGET_BFD
258 endif # BINUTILS_FOR_TARGET