7 prompt "binutils version"
8 # Don't remove next line
9 # CT_INSERT_VERSION_BELOW
11 config BINUTILS_V_2_21
13 depends on EXPERIMENTAL
15 select BINUTILS_2_21_or_later
17 config BINUTILS_V_2_20_1
21 config BINUTILS_V_2_20
25 config BINUTILS_V_2_19_1
29 config BINUTILS_V_2_19
33 config BINUTILS_V_2_18
37 config BINUTILS_V_2_17
39 prompt "2.17 (OBSOLETE)"
42 config BINUTILS_V_2_16_1
44 prompt "2.16.1 (OBSOLETE)"
49 config BINUTILS_VERSION
51 # Don't remove next line
52 # CT_INSERT_VERSION_STRING_BELOW
53 default "2.21" if BINUTILS_V_2_21
54 default "2.20.1" if BINUTILS_V_2_20_1
55 default "2.20" if BINUTILS_V_2_20
56 default "2.19.1" if BINUTILS_V_2_19_1
57 default "2.19" if BINUTILS_V_2_19
58 default "2.18" if BINUTILS_V_2_18
59 default "2.17" if BINUTILS_V_2_17
60 default "2.16.1" if BINUTILS_V_2_16_1
62 config BINUTILS_2_21_or_later
64 select BINUTILS_HAS_GOLD
65 select BINUTILS_HAS_PLUGINS
67 config BINUTILS_HAS_GOLD
70 config BINUTILS_GOLD_SUPPORTS_ARCH
73 config BINUTILS_HAS_PLUGINS
76 # Only these architectures have support in gold
78 select BINUTILS_GOLD_SUPPORTS_ARCH
81 select BINUTILS_GOLD_SUPPORTS_ARCH
83 # Force using the BFD linker if needed
84 # This is the case for some C libraries (eg. glibc and
85 # eglibc at least) and affected components can select this
86 config BINUTILS_FORCE_LD_BFD
91 prompt "Linkers to enable"
93 config BINUTILS_LINKER_LD
97 The historical, bfd linker.
99 config BINUTILS_LINKER_GOLD
102 depends on BINUTILS_HAS_GOLD
103 depends on BINUTILS_GOLD_SUPPORTS_ARCH
104 depends on ! BINUTILS_FORCE_LD_BFD
105 depends on EXPERIMENTAL
106 select BINUTILS_GOLD_INSTALLED
108 gold is a new, optimised, multi-threaded linker with support
109 for plugins. Designed to be a drop-in replacement for the
110 original linker, ld, it can be much faster, with a 5:1 or
111 bigger ratio being not uncommon, YMMV.
113 config BINUTILS_LINKER_LD_GOLD
116 depends on BINUTILS_HAS_GOLD
117 depends on BINUTILS_GOLD_SUPPORTS_ARCH
118 depends on EXPERIMENTAL
119 select BINUTILS_GOLD_INSTALLED
120 select BINUTILS_LINKER_BOTH
122 Both the historical ld and the new gold linkers will be
123 installed, with ld being the default linker used.
125 See help for gold, above.
127 config BINUTILS_LINKER_GOLD_LD
130 depends on BINUTILS_HAS_GOLD
131 depends on BINUTILS_GOLD_SUPPORTS_ARCH
132 depends on EXPERIMENTAL
133 select BINUTILS_GOLD_INSTALLED
134 select BINUTILS_LINKER_BOTH
135 select BINUTILS_LD_WRAPPER if BINUTILS_FORCE_LD_BFD
137 Both the historical ld and the new gold linkers will be
138 installed, with gold being the default linker used.
140 See help for gold, above.
142 endchoice # Enable linkers
144 if BINUTILS_LINKER_GOLD
145 comment "WARNING! gold is not capable of"
146 comment "| building glibc/eglibc!"
147 endif # BINUTILS_LINKER_GOLD
149 config BINUTILS_GOLD_INSTALLED
152 config BINUTILS_GOLD_THREADS
154 prompt "| Enable threaded gold"
155 depends on BINUTILS_GOLD_INSTALLED
157 When configured with threads, gold can link in parallel,
158 possibly cooperating with a make jobserver.
160 config BINUTILS_LINKER_BOTH
163 config BINUTILS_LINKERS_LIST
165 default "ld" if BINUTILS_LINKER_LD
166 default "gold" if BINUTILS_LINKER_GOLD
167 default "ld,gold" if BINUTILS_LINKER_LD_GOLD
168 default "gold,ld" if BINUTILS_LINKER_GOLD_LD
170 config BINUTILS_LD_WRAPPER
172 prompt "| Add ld wrapper"
173 depends on BINUTILS_LINKER_BOTH
175 Add an ld wrapper that calls to either gold or ld.
177 By default, the wrapper will call to the default wrapper,
178 but if you set the environment variable CTNG_LD_IS, you
179 can change which linker will get called:
180 CTNG_LD_IS=gold will unconditionally call the gold linker
181 CTNG_LD_IS=bfd will unconditionally call the old bfd ld linker
183 config BINUTILS_LINKER_DEFAULT
185 default "bfd" if BINUTILS_LINKER_LD || BINUTILS_LINKER_LD_GOLD
186 default "gold" if BINUTILS_LINKER_GOLD || BINUTILS_LINKER_GOLD_LD
188 config BINUTILS_PLUGINS
190 prompt "Enable support for plugins"
191 depends on BINUTILS_HAS_PLUGINS
192 depends on ! STATIC_TOOLCHAIN
194 binutils can be extended through the use of plugins.
195 Especially, gold can use the lto-plugin, as installed
196 by gcc, to handle LTO.
198 config BINUTILS_EXTRA_CONFIG
200 prompt "binutils extra config"
203 Extra flags passed onto ./configure when configuring
205 config BINUTILS_FOR_TARGET
207 prompt "binutils libraries for the target"
208 depends on ! BARE_METAL
212 Some utilities may need binutils libraries to be available on
213 the target, eg. oprofile.
215 if BINUTILS_FOR_TARGET
217 config BINUTILS_FOR_TARGET_IBERTY
222 config BINUTILS_FOR_TARGET_BFD
227 endif # BINUTILS_FOR_TARGET