7 prompt "binutils version"
8 # Don't remove next line
9 # CT_INSERT_VERSION_BELOW
11 config BINUTILS_V_2_20_1a
14 select BINUTILS_2_20_or_later
16 config BINUTILS_V_2_19_1a
19 select BINUTILS_2_19_or_later
21 config BINUTILS_V_2_18a
24 select BINUTILS_2_18_or_later
26 config BINUTILS_V_2_17a
28 prompt "2.17a (OBSOLETE)"
31 config BINUTILS_V_2_16_1a
33 prompt "2.16.1a (OBSOLETE)"
38 config BINUTILS_VERSION
40 # Don't remove next line
41 # CT_INSERT_VERSION_STRING_BELOW
42 default "2.20.1a" if BINUTILS_V_2_20_1a
43 default "2.19.1a" if BINUTILS_V_2_19_1a
44 default "2.18a" if BINUTILS_V_2_18a
45 default "2.17a" if BINUTILS_V_2_17a
46 default "2.16.1a" if BINUTILS_V_2_16_1a
48 config BINUTILS_2_21_or_later
50 select BINUTILS_2_20_or_later
51 select BINUTILS_HAS_GOLD
52 select BINUTILS_HAS_PLUGINS
54 config BINUTILS_2_20_or_later
56 select BINUTILS_2_19_or_later
58 config BINUTILS_2_19_or_later
60 select BINUTILS_2_18_or_later
62 config BINUTILS_2_18_or_later
64 select BINUTILS_HAS_PKGVERSION_BUGURL
66 config BINUTILS_HAS_GOLD
69 config BINUTILS_GOLD_SUPPORTS_ARCH
72 config BINUTILS_HAS_PLUGINS
75 config BINUTILS_HAS_PKGVERSION_BUGURL
78 # Only these architectures have support in gold
80 select BINUTILS_GOLD_SUPPORTS_ARCH
83 select BINUTILS_GOLD_SUPPORTS_ARCH
85 # Force using the BFD linker if needed
86 # This is the case for some C libraries (eg. glibc and
87 # eglibc at least) and affected components can select this
88 config BINUTILS_FORCE_LD_BFD
93 prompt "Linkers to enable"
95 config BINUTILS_LINKER_LD
99 The historical, bfd linker.
101 config BINUTILS_LINKER_GOLD
104 depends on BINUTILS_HAS_GOLD
105 depends on BINUTILS_GOLD_SUPPORTS_ARCH
106 depends on ! BINUTILS_FORCE_LD_BFD
107 depends on EXPERIMENTAL
108 select BINUTILS_GOLD_INSTALLED
110 gold is a new, optimised, multi-threaded linker with support
111 for plugins. Designed to be a drop-in replacement for the
112 original linker, ld, it can be much faster, with a 5:1 or
113 bigger ratio being not uncommon, YMMV.
115 config BINUTILS_LINKER_LD_GOLD
118 depends on BINUTILS_HAS_GOLD
119 depends on BINUTILS_GOLD_SUPPORTS_ARCH
120 depends on EXPERIMENTAL
121 select BINUTILS_GOLD_INSTALLED
122 select BINUTILS_LINKER_BOTH
124 Both the historical ld and the new gold linkers will be
125 installed, with ld being the default linker used.
127 See help for gold, above.
129 config BINUTILS_LINKER_GOLD_LD
132 depends on BINUTILS_HAS_GOLD
133 depends on BINUTILS_GOLD_SUPPORTS_ARCH
134 depends on EXPERIMENTAL
135 select BINUTILS_GOLD_INSTALLED
136 select BINUTILS_LINKER_BOTH
137 select BINUTILS_LD_WRAPPER if BINUTILS_FORCE_LD_BFD
139 Both the historical ld and the new gold linkers will be
140 installed, with gold being the default linker used.
142 See help for gold, above.
144 endchoice # Enable linkers
146 if BINUTILS_LINKER_GOLD
147 comment "WARNING! gold is not capable of"
148 comment "| building glibc/eglibc!"
149 endif # BINUTILS_LINKER_GOLD
151 config BINUTILS_GOLD_INSTALLED
154 config BINUTILS_GOLD_THREADS
156 prompt "| Enable threaded gold"
157 depends on BINUTILS_GOLD_INSTALLED
159 When configured with threads, gold can link in parallel,
160 possibly cooperating with a make jobserver.
162 config BINUTILS_LINKER_BOTH
165 config BINUTILS_LINKERS_LIST
167 default "ld" if BINUTILS_LINKER_LD
168 default "gold" if BINUTILS_LINKER_GOLD
169 default "ld,gold" if BINUTILS_LINKER_LD_GOLD
170 default "gold,ld" if BINUTILS_LINKER_GOLD_LD
172 config BINUTILS_LD_WRAPPER
174 prompt "| Add ld wrapper"
175 depends on BINUTILS_LINKER_BOTH
177 Add an ld wrapper that calls to either gold or ld.
179 By default, the wrapper will call to the default wrapper,
180 but if you set the environment variable CTNG_LD_IS, you
181 can change which linker will get called:
182 CTNG_LD_IS=gold will unconditionally call the gold linker
183 CTNG_LD_IS=bfd will unconditionally call the old bfd ld linker
185 config BINUTILS_LINKER_DEFAULT
187 default "bfd" if BINUTILS_LINKER_LD || BINUTILS_LINKER_LD_GOLD
188 default "gold" if BINUTILS_LINKER_GOLD || BINUTILS_LINKER_GOLD_LD
190 config BINUTILS_PLUGINS
192 prompt "Enable support for plugins"
193 depends on BINUTILS_HAS_PLUGINS
194 depends on ! STATIC_TOOLCHAIN
196 binutils can be extended through the use of plugins.
197 Especially, gold can use the lto-plugin, as installed
198 by gcc, to handle LTO.
200 config BINUTILS_EXTRA_CONFIG_ARRAY
202 prompt "binutils extra config"
205 Extra flags passed onto ./configure when configuring
207 You can enter multiple arguments here, and arguments can contain spaces
208 if they are properly quoted (or escaped, but prefer quotes). Eg.:
209 --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
211 config BINUTILS_FOR_TARGET
213 prompt "binutils libraries for the target"
214 depends on ! BARE_METAL
217 Some utilities may need binutils libraries to be available on
218 the target, eg. oprofile.
220 if BINUTILS_FOR_TARGET
222 config BINUTILS_FOR_TARGET_IBERTY
227 config BINUTILS_FOR_TARGET_BFD
232 endif # BINUTILS_FOR_TARGET