7 prompt "binutils version"
8 # Don't remove next line
9 # CT_INSERT_VERSION_BELOW
11 config BINUTILS_V_2_22
14 select BINUTILS_2_22_or_later
16 config BINUTILS_V_2_21_53
19 select BINUTILS_2_21_or_later
21 config BINUTILS_V_2_21_1a
24 select BINUTILS_2_21_or_later
26 config BINUTILS_V_2_20_1a
29 select BINUTILS_2_20_or_later
31 config BINUTILS_V_2_19_1a
34 select BINUTILS_2_19_or_later
36 config BINUTILS_V_2_18a
39 select BINUTILS_2_18_or_later
41 config BINUTILS_CUSTOM
43 prompt "Custom binutils"
44 depends on EXPERIMENTAL
45 select BINUTILS_2_22_or_later
51 config BINUTILS_CUSTOM_LOCATION
53 prompt "Full path to custom binutils source"
56 Enter the path to the directory (or tarball) of your source for binutils,
57 or leave blank to use default CT_CUSTOM_LOCATION_ROOT_DIR/binutils
59 endif # BINUTILS_CUSTOM
61 config BINUTILS_VERSION
63 # Don't remove next line
64 # CT_INSERT_VERSION_STRING_BELOW
65 default "2.22" if BINUTILS_V_2_22
66 default "2.21.53" if BINUTILS_V_2_21_53
67 default "2.21.1a" if BINUTILS_V_2_21_1a
68 default "2.20.1a" if BINUTILS_V_2_20_1a
69 default "2.19.1a" if BINUTILS_V_2_19_1a
70 default "2.18a" if BINUTILS_V_2_18a
71 default "custom" if BINUTILS_CUSTOM
73 config BINUTILS_2_22_or_later
75 select BINUTILS_2_21_or_later
76 select BINUTILS_HAS_GOLD
77 select BINUTILS_HAS_PLUGINS
79 config BINUTILS_2_21_or_later
81 select BINUTILS_2_20_or_later
82 select BINUTILS_HAS_GOLD
83 select BINUTILS_HAS_PLUGINS
85 config BINUTILS_2_20_or_later
87 select BINUTILS_2_19_or_later
89 config BINUTILS_2_19_or_later
91 select BINUTILS_2_18_or_later
93 config BINUTILS_2_18_or_later
95 select BINUTILS_HAS_PKGVERSION_BUGURL
96 select BINUTILS_HAS_HASH_STYLE
98 config BINUTILS_HAS_HASH_STYLE
101 config BINUTILS_HAS_GOLD
104 # gold only suports the listed architectures
105 config BINUTILS_GOLD_SUPPORTS_ARCH
107 default y if ARCH_arm
108 default y if ARCH_x86
110 config BINUTILS_HAS_PLUGINS
113 config BINUTILS_HAS_PKGVERSION_BUGURL
116 # Force using the BFD linker if needed
117 # This is the case for some C libraries (eg. glibc and
118 # eglibc at least) and affected components can select this
119 config BINUTILS_FORCE_LD_BFD
124 prompt "Linkers to enable"
126 config BINUTILS_LINKER_LD
130 The historical, bfd linker.
132 config BINUTILS_LINKER_GOLD
135 depends on BINUTILS_HAS_GOLD
136 depends on BINUTILS_GOLD_SUPPORTS_ARCH
137 depends on ! BINUTILS_FORCE_LD_BFD
138 select BINUTILS_GOLD_INSTALLED
140 gold is a new, optimised, multi-threaded linker with support
141 for plugins. Designed to be a drop-in replacement for the
142 original linker, ld, it can be much faster, with a 5:1 or
143 bigger ratio being not uncommon, YMMV.
145 config BINUTILS_LINKER_LD_GOLD
148 depends on BINUTILS_HAS_GOLD
149 depends on BINUTILS_GOLD_SUPPORTS_ARCH
150 select BINUTILS_GOLD_INSTALLED
151 select BINUTILS_LINKER_BOTH
153 Both the historical ld and the new gold linkers will be
154 installed, with ld being the default linker used.
156 See help for gold, above.
158 config BINUTILS_LINKER_GOLD_LD
161 depends on BINUTILS_HAS_GOLD
162 depends on BINUTILS_GOLD_SUPPORTS_ARCH
163 select BINUTILS_GOLD_INSTALLED
164 select BINUTILS_LINKER_BOTH
165 select BINUTILS_LD_WRAPPER if BINUTILS_FORCE_LD_BFD
167 Both the historical ld and the new gold linkers will be
168 installed, with gold being the default linker used.
170 See help for gold, above.
172 endchoice # Enable linkers
174 if BINUTILS_LINKER_GOLD
175 comment "WARNING! gold is not capable of"
176 comment "| building glibc/eglibc!"
177 endif # BINUTILS_LINKER_GOLD
179 config BINUTILS_GOLD_INSTALLED
182 config BINUTILS_GOLD_THREADS
184 prompt "| Enable threaded gold"
185 depends on BINUTILS_GOLD_INSTALLED
187 When configured with threads, gold can link in parallel,
188 possibly cooperating with a make jobserver.
190 config BINUTILS_LINKER_BOTH
193 config BINUTILS_LINKERS_LIST
195 default "ld" if BINUTILS_LINKER_LD
196 default "gold" if BINUTILS_LINKER_GOLD
197 default "ld,gold" if BINUTILS_LINKER_LD_GOLD
198 default "gold,ld" if BINUTILS_LINKER_GOLD_LD
200 config BINUTILS_LD_WRAPPER
202 prompt "| Add ld wrapper"
203 depends on BINUTILS_LINKER_BOTH
205 Add an ld wrapper that calls to either gold or ld.
207 By default, the wrapper will call to the default wrapper,
208 but if you set the environment variable CTNG_LD_IS, you
209 can change which linker will get called:
210 CTNG_LD_IS=gold will unconditionally call the gold linker
211 CTNG_LD_IS=bfd will unconditionally call the old bfd ld linker
213 config BINUTILS_LINKER_DEFAULT
215 default "bfd" if BINUTILS_LINKER_LD || BINUTILS_LINKER_LD_GOLD
216 default "gold" if BINUTILS_LINKER_GOLD || BINUTILS_LINKER_GOLD_LD
218 config BINUTILS_PLUGINS
220 prompt "Enable support for plugins"
221 depends on BINUTILS_HAS_PLUGINS
222 depends on ! STATIC_TOOLCHAIN
224 binutils can be extended through the use of plugins.
225 Especially, gold can use the lto-plugin, as installed
226 by gcc, to handle LTO.
228 config BINUTILS_EXTRA_CONFIG_ARRAY
230 prompt "binutils extra config"
233 Extra flags passed onto ./configure when configuring
235 You can enter multiple arguments here, and arguments can contain spaces
236 if they are properly quoted (or escaped, but prefer quotes). Eg.:
237 --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
239 config BINUTILS_FOR_TARGET
241 prompt "binutils libraries for the target"
242 depends on ! BARE_METAL
245 Some utilities may need binutils libraries to be available on
246 the target, eg. oprofile.
248 if BINUTILS_FOR_TARGET
250 config BINUTILS_FOR_TARGET_IBERTY
255 config BINUTILS_FOR_TARGET_BFD
260 endif # BINUTILS_FOR_TARGET