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
85 prompt "Linkers to enable"
87 config BINUTILS_LINKER_LD
91 The historical, bfd linker.
93 config BINUTILS_LINKER_GOLD
96 depends on BINUTILS_HAS_GOLD
97 depends on BINUTILS_GOLD_SUPPORTS_ARCH
98 depends on EXPERIMENTAL
99 select BINUTILS_GOLD_INSTALLED
101 gold is a new, optimised, multi-threaded linker with support
102 for plugins. Designed to be a drop-in replacement for the
103 original linker, ld, it can be much faster, with a 5:1 or
104 bigger ratio being not uncommon, YMMV.
106 config BINUTILS_LINKER_LD_GOLD
109 depends on BINUTILS_HAS_GOLD
110 depends on BINUTILS_GOLD_SUPPORTS_ARCH
111 depends on EXPERIMENTAL
112 select BINUTILS_GOLD_INSTALLED
113 select BINUTILS_LINKER_BOTH
115 Both the historical ld and the new gold linkers will be
116 installed, with ld being the default linker used.
118 See help for gold, above.
120 config BINUTILS_LINKER_GOLD_LD
123 depends on BINUTILS_HAS_GOLD
124 depends on BINUTILS_GOLD_SUPPORTS_ARCH
125 depends on EXPERIMENTAL
126 select BINUTILS_GOLD_INSTALLED
127 select BINUTILS_LINKER_BOTH
129 Both the historical ld and the new gold linkers will be
130 installed, with gold being the default linker used.
132 See help for gold, above.
134 endchoice # Enable linkers
136 if BINUTILS_LINKER_GOLD
137 comment "WARNING! gold is not capable of"
138 comment "| building glibc/eglibc!"
139 endif # BINUTILS_LINKER_GOLD
141 config BINUTILS_GOLD_INSTALLED
144 config BINUTILS_GOLD_THREADS
146 prompt "| Enable threaded gold"
147 depends on BINUTILS_GOLD_INSTALLED
149 When configured with threads, gold can link in parallel,
150 possibly cooperating with a make jobserver.
152 config BINUTILS_LINKER_BOTH
155 config BINUTILS_LINKERS_LIST
157 default "ld" if BINUTILS_LINKER_LD
158 default "gold" if BINUTILS_LINKER_GOLD
159 default "ld,gold" if BINUTILS_LINKER_LD_GOLD
160 default "gold,ld" if BINUTILS_LINKER_GOLD_LD
162 config BINUTILS_LD_WRAPPER
164 prompt "| Add ld wrapper"
165 depends on BINUTILS_LINKER_BOTH
167 Add an ld wrapper that calls to either gold or ld.
169 By default, the wrapper will call to the default wrapper,
170 but if you set the environment variable CTNG_LD_IS, you
171 can change which linker will get called:
172 CTNG_LD_IS=gold will unconditionally call the gold linker
173 CTNG_LD_IS=bfd will unconditionally call the old bfd ld linker
175 config BINUTILS_LINKER_DEFAULT
177 default "bfd" if BINUTILS_LINKER_LD || BINUTILS_LINKER_LD_GOLD
178 default "gold" if BINUTILS_LINKER_GOLD || BINUTILS_LINKER_GOLD_LD
180 config BINUTILS_PLUGINS
182 prompt "Enable support for plugins"
183 depends on BINUTILS_HAS_PLUGINS
184 depends on ! STATIC_TOOLCHAIN
186 binutils can be extended through the use of plugins.
187 Especially, gold can use the lto-plugin, as installed
188 by gcc, to handle LTO.
190 config BINUTILS_EXTRA_CONFIG
192 prompt "binutils extra config"
195 Extra flags passed onto ./configure when configuring
197 config BINUTILS_FOR_TARGET
199 prompt "binutils libraries for the target"
200 depends on ! BARE_METAL
204 Some utilities may need binutils libraries to be available on
205 the target, eg. oprofile.
207 if BINUTILS_FOR_TARGET
209 config BINUTILS_FOR_TARGET_IBERTY
214 config BINUTILS_FOR_TARGET_BFD
219 endif # BINUTILS_FOR_TARGET