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
16 config BINUTILS_V_2_22
19 select BINUTILS_2_22_or_later
21 config BINUTILS_V_2_21_53
24 select BINUTILS_2_21_or_later
26 config BINUTILS_V_2_21_1a
29 select BINUTILS_2_21_or_later
31 config BINUTILS_V_2_20_1a
34 select BINUTILS_2_20_or_later
36 config BINUTILS_V_2_19_1a
39 select BINUTILS_2_19_or_later
41 config BINUTILS_V_2_18a
44 select BINUTILS_2_18_or_later
46 config BINUTILS_CUSTOM
48 prompt "Custom binutils"
49 depends on EXPERIMENTAL
50 select BINUTILS_2_22_or_later
56 config BINUTILS_CUSTOM_LOCATION
58 prompt "Full path to custom binutils source"
61 Enter the path to the directory (or tarball) of your source for binutils,
62 or leave blank to use default CT_CUSTOM_LOCATION_ROOT_DIR/binutils
64 endif # BINUTILS_CUSTOM
66 config BINUTILS_VERSION
68 # Don't remove next line
69 # CT_INSERT_VERSION_STRING_BELOW
70 default "2.23.1" if BINUTILS_V_2_23_1
71 default "2.22" if BINUTILS_V_2_22
72 default "2.21.53" if BINUTILS_V_2_21_53
73 default "2.21.1a" if BINUTILS_V_2_21_1a
74 default "2.20.1a" if BINUTILS_V_2_20_1a
75 default "2.19.1a" if BINUTILS_V_2_19_1a
76 default "2.18a" if BINUTILS_V_2_18a
77 default "custom" if BINUTILS_CUSTOM
79 config BINUTILS_2_22_or_later
81 select BINUTILS_2_21_or_later
82 select BINUTILS_HAS_GOLD
83 select BINUTILS_HAS_PLUGINS
85 config BINUTILS_2_21_or_later
87 select BINUTILS_2_20_or_later
88 select BINUTILS_HAS_GOLD
89 select BINUTILS_HAS_PLUGINS
91 config BINUTILS_2_20_or_later
93 select BINUTILS_2_19_or_later
95 config BINUTILS_2_19_or_later
97 select BINUTILS_2_18_or_later
99 config BINUTILS_2_18_or_later
101 select BINUTILS_HAS_PKGVERSION_BUGURL
102 select BINUTILS_HAS_HASH_STYLE
104 config BINUTILS_HAS_HASH_STYLE
107 config BINUTILS_HAS_GOLD
110 # gold only suports the listed architectures
111 config BINUTILS_GOLD_SUPPORTS_ARCH
113 default y if ARCH_arm
114 default y if ARCH_x86
116 config BINUTILS_HAS_PLUGINS
119 config BINUTILS_HAS_PKGVERSION_BUGURL
122 # Force using the BFD linker if needed
123 # This is the case for some C libraries (eg. glibc and
124 # eglibc at least) and affected components can select this
125 config BINUTILS_FORCE_LD_BFD
130 prompt "Linkers to enable"
132 config BINUTILS_LINKER_LD
136 The historical, bfd linker.
138 config BINUTILS_LINKER_GOLD
141 depends on BINUTILS_HAS_GOLD
142 depends on BINUTILS_GOLD_SUPPORTS_ARCH
143 depends on ! BINUTILS_FORCE_LD_BFD
144 select BINUTILS_GOLD_INSTALLED
146 gold is a new, optimised, multi-threaded linker with support
147 for plugins. Designed to be a drop-in replacement for the
148 original linker, ld, it can be much faster, with a 5:1 or
149 bigger ratio being not uncommon, YMMV.
151 config BINUTILS_LINKER_LD_GOLD
154 depends on BINUTILS_HAS_GOLD
155 depends on BINUTILS_GOLD_SUPPORTS_ARCH
156 select BINUTILS_GOLD_INSTALLED
157 select BINUTILS_LINKER_BOTH
159 Both the historical ld and the new gold linkers will be
160 installed, with ld being the default linker used.
162 See help for gold, above.
164 config BINUTILS_LINKER_GOLD_LD
167 depends on BINUTILS_HAS_GOLD
168 depends on BINUTILS_GOLD_SUPPORTS_ARCH
169 select BINUTILS_GOLD_INSTALLED
170 select BINUTILS_LINKER_BOTH
171 select BINUTILS_LD_WRAPPER if BINUTILS_FORCE_LD_BFD
173 Both the historical ld and the new gold linkers will be
174 installed, with gold being the default linker used.
176 See help for gold, above.
178 endchoice # Enable linkers
180 if BINUTILS_LINKER_GOLD
181 comment "WARNING! gold is not capable of"
182 comment "| building glibc/eglibc!"
183 endif # BINUTILS_LINKER_GOLD
185 config BINUTILS_GOLD_INSTALLED
188 config BINUTILS_GOLD_THREADS
190 prompt "| Enable threaded gold"
191 depends on BINUTILS_GOLD_INSTALLED
193 When configured with threads, gold can link in parallel,
194 possibly cooperating with a make jobserver.
196 config BINUTILS_LINKER_BOTH
199 config BINUTILS_LINKERS_LIST
201 default "ld" if BINUTILS_LINKER_LD
202 default "gold" if BINUTILS_LINKER_GOLD
203 default "ld,gold" if BINUTILS_LINKER_LD_GOLD
204 default "gold,ld" if BINUTILS_LINKER_GOLD_LD
206 config BINUTILS_LD_WRAPPER
208 prompt "| Add ld wrapper"
209 depends on BINUTILS_LINKER_BOTH
211 Add an ld wrapper that calls to either gold or ld.
213 By default, the wrapper will call to the default wrapper,
214 but if you set the environment variable CTNG_LD_IS, you
215 can change which linker will get called:
216 CTNG_LD_IS=gold will unconditionally call the gold linker
217 CTNG_LD_IS=bfd will unconditionally call the old bfd ld linker
219 config BINUTILS_LINKER_DEFAULT
221 default "bfd" if BINUTILS_LINKER_LD || BINUTILS_LINKER_LD_GOLD
222 default "gold" if BINUTILS_LINKER_GOLD || BINUTILS_LINKER_GOLD_LD
224 config BINUTILS_PLUGINS
226 prompt "Enable support for plugins"
227 depends on BINUTILS_HAS_PLUGINS
228 depends on ! STATIC_TOOLCHAIN
230 binutils can be extended through the use of plugins.
231 Especially, gold can use the lto-plugin, as installed
232 by gcc, to handle LTO.
234 config BINUTILS_EXTRA_CONFIG_ARRAY
236 prompt "binutils extra config"
239 Extra flags passed onto ./configure when configuring
241 You can enter multiple arguments here, and arguments can contain spaces
242 if they are properly quoted (or escaped, but prefer quotes). Eg.:
243 --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
245 config BINUTILS_FOR_TARGET
247 prompt "binutils libraries for the target"
248 depends on ! BARE_METAL
251 Some utilities may need binutils libraries to be available on
252 the target, eg. oprofile.
254 if BINUTILS_FOR_TARGET
256 config BINUTILS_FOR_TARGET_IBERTY
261 config BINUTILS_FOR_TARGET_BFD
266 endif # BINUTILS_FOR_TARGET