config/binutils/binutils.in
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Mon Dec 30 19:08:37 2013 +0100 (2013-12-30)
changeset 3257 7b7d953f9cfb
parent 3240 bc4b36e3df0c
child 3263 16f46c7ed41b
permissions -rw-r--r--
binutils/binutils: 2.23.2 is a 2_23_or_later (ie. has gold)

Thus spake Niels:
This commit adds support for binutils 2.23.2

http://crosstool-ng.org/hg/crosstool-ng/rev/bc4b36e3df0c

However, in 'config/binutils/binutils.in <http://binutils.in>' the
Kconfig option to select this version of binutils does not automatically
select the symbol 'BINUTILS_2_23_or_later'. This makes gold unavailable
for the latest version of binutils. I'm not sure whether this is on
purpose or not, my impression is that you forgot to add the line "select
BINUTILS_2_23_or_later".

The problem still persists in the latest version in the repository
(032ebcc89c96).

Reported-by: Niels Penneman <niels@penneman.org>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
yann@1345
     1
# binutils options
yann@1345
     2
yann@1345
     3
comment "GNU binutils"
yann@1345
     4
yann@1345
     5
choice
yann@1345
     6
    bool
yann@1345
     7
    prompt "binutils version"
yann@1535
     8
# Don't remove next line
yann@1535
     9
# CT_INSERT_VERSION_BELOW
yann@1345
    10
yann@3240
    11
config BINUTILS_V_2_23_2
yann@3240
    12
    bool
yann@3240
    13
    prompt "2.23.2 (EXPERIMENTAL)"
yann@3240
    14
    depends on EXPERIMENTAL
yann@3257
    15
    select BINUTILS_2_23_or_later
yann@3240
    16
yann@3154
    17
config BINUTILS_V_2_23_1
yann@3154
    18
    bool
yann@3154
    19
    prompt "2.23.1 (EXPERIMENTAL)"
yann@3154
    20
    depends on EXPERIMENTAL
yann@3173
    21
    select BINUTILS_2_23_or_later
yann@3154
    22
titus@2797
    23
config BINUTILS_V_2_22
titus@2797
    24
    bool
yann@3149
    25
    prompt "2.22"
titus@2797
    26
    select BINUTILS_2_22_or_later
titus@2797
    27
michael@2696
    28
config BINUTILS_V_2_21_53
michael@2696
    29
    bool
yann@3149
    30
    prompt "2.21.53"
michael@2696
    31
    select BINUTILS_2_21_or_later
michael@2696
    32
yann@2665
    33
config BINUTILS_V_2_21_1a
yann@2665
    34
    bool
yann@2665
    35
    prompt "2.21.1a"
yann@2665
    36
    select BINUTILS_2_21_or_later
yann@2665
    37
yann@2664
    38
config BINUTILS_V_2_20_1a
js@2012
    39
    bool
yann@2664
    40
    prompt "2.20.1a"
benoit@2488
    41
    select BINUTILS_2_20_or_later
js@2012
    42
yann@2664
    43
config BINUTILS_V_2_19_1a
yann@1345
    44
    bool
yann@2664
    45
    prompt "2.19.1a"
benoit@2488
    46
    select BINUTILS_2_19_or_later
yann@1345
    47
yann@2664
    48
config BINUTILS_V_2_18a
yann@1345
    49
    bool
yann@2664
    50
    prompt "2.18a"
benoit@2488
    51
    select BINUTILS_2_18_or_later
yann@1345
    52
david@3089
    53
config BINUTILS_CUSTOM
david@3089
    54
    bool
david@3089
    55
    prompt "Custom binutils"
david@3089
    56
    depends on EXPERIMENTAL
david@3089
    57
    select BINUTILS_2_22_or_later
david@3089
    58
yann@1345
    59
endchoice
yann@1345
    60
david@3089
    61
if BINUTILS_CUSTOM
david@3089
    62
david@3089
    63
config BINUTILS_CUSTOM_LOCATION
david@3089
    64
    string
david@3089
    65
    prompt "Full path to custom binutils source"
david@3089
    66
    default ""
david@3089
    67
    help
david@3089
    68
      Enter the path to the directory (or tarball) of your source for binutils,
david@3089
    69
      or leave blank to use default CT_CUSTOM_LOCATION_ROOT_DIR/binutils
david@3089
    70
david@3089
    71
endif # BINUTILS_CUSTOM
david@3089
    72
yann@1345
    73
config BINUTILS_VERSION
yann@1345
    74
    string
yann@1535
    75
# Don't remove next line
yann@1535
    76
# CT_INSERT_VERSION_STRING_BELOW
yann@3240
    77
    default "2.23.2" if BINUTILS_V_2_23_2
yann@3154
    78
    default "2.23.1" if BINUTILS_V_2_23_1
titus@2797
    79
    default "2.22" if BINUTILS_V_2_22
michael@2696
    80
    default "2.21.53" if BINUTILS_V_2_21_53
yann@2665
    81
    default "2.21.1a" if BINUTILS_V_2_21_1a
yann@2664
    82
    default "2.20.1a" if BINUTILS_V_2_20_1a
yann@2664
    83
    default "2.19.1a" if BINUTILS_V_2_19_1a
yann@2664
    84
    default "2.18a" if BINUTILS_V_2_18a
david@3089
    85
    default "custom" if BINUTILS_CUSTOM
yann@1345
    86
yann@3173
    87
config BINUTILS_2_23_or_later
yann@3173
    88
    bool
yann@3173
    89
    select BINUTILS_2_22_or_later
yann@3173
    90
    select BINUTILS_HAS_GOLD
yann@3173
    91
    select BINUTILS_HAS_PLUGINS
yann@3173
    92
titus@2797
    93
config BINUTILS_2_22_or_later
titus@2797
    94
    bool
titus@2797
    95
    select BINUTILS_2_21_or_later
titus@2797
    96
    select BINUTILS_HAS_GOLD
titus@2797
    97
    select BINUTILS_HAS_PLUGINS
titus@2797
    98
yann@2243
    99
config BINUTILS_2_21_or_later
yann@2243
   100
    bool
benoit@2488
   101
    select BINUTILS_2_20_or_later
yann@2244
   102
    select BINUTILS_HAS_GOLD
yann@2245
   103
    select BINUTILS_HAS_PLUGINS
yann@2244
   104
benoit@2488
   105
config BINUTILS_2_20_or_later
benoit@2488
   106
    bool
benoit@2488
   107
    select BINUTILS_2_19_or_later
benoit@2488
   108
benoit@2488
   109
config BINUTILS_2_19_or_later
benoit@2488
   110
    bool
benoit@2488
   111
    select BINUTILS_2_18_or_later
benoit@2488
   112
benoit@2488
   113
config BINUTILS_2_18_or_later
benoit@2488
   114
    bool
benoit@2488
   115
    select BINUTILS_HAS_PKGVERSION_BUGURL
yann@2947
   116
    select BINUTILS_HAS_HASH_STYLE
yann@2947
   117
yann@2947
   118
config BINUTILS_HAS_HASH_STYLE
yann@2947
   119
    bool
benoit@2488
   120
yann@2244
   121
config BINUTILS_HAS_GOLD
yann@2244
   122
    bool
yann@2244
   123
diorcet@3121
   124
# gold only suports the listed architectures
yann@2372
   125
config BINUTILS_GOLD_SUPPORTS_ARCH
yann@2372
   126
    bool
diorcet@3121
   127
    default y if ARCH_arm
diorcet@3121
   128
    default y if ARCH_x86
yann@2372
   129
yann@2245
   130
config BINUTILS_HAS_PLUGINS
yann@2245
   131
    bool
yann@2245
   132
benoit@2488
   133
config BINUTILS_HAS_PKGVERSION_BUGURL
benoit@2488
   134
    bool
benoit@2488
   135
yann@2376
   136
# Force using the BFD linker if needed
yann@2376
   137
# This is the case for some C libraries (eg. glibc and
yann@2376
   138
# eglibc at least) and affected components can select this
yann@2376
   139
config BINUTILS_FORCE_LD_BFD
yann@2376
   140
    bool
yann@2376
   141
yann@2244
   142
choice
yann@2244
   143
    bool
yann@2244
   144
    prompt "Linkers to enable"
yann@2244
   145
yann@2244
   146
config BINUTILS_LINKER_LD
yann@2244
   147
    bool
yann@2244
   148
    prompt "ld"
yann@2244
   149
    help
yann@2244
   150
      The historical, bfd linker.
yann@2244
   151
yann@2244
   152
config BINUTILS_LINKER_GOLD
yann@2244
   153
    bool
yann@2244
   154
    prompt "gold"
yann@2244
   155
    depends on BINUTILS_HAS_GOLD
yann@2373
   156
    depends on BINUTILS_GOLD_SUPPORTS_ARCH
yann@2376
   157
    depends on ! BINUTILS_FORCE_LD_BFD
yann@2244
   158
    select BINUTILS_GOLD_INSTALLED
yann@2244
   159
    help
yann@2244
   160
      gold is a new, optimised, multi-threaded linker with support
yann@2244
   161
      for plugins. Designed to be a drop-in replacement for the
yann@2244
   162
      original linker, ld, it can be much faster, with a 5:1 or
yann@2244
   163
      bigger ratio being not uncommon, YMMV.
yann@2244
   164
yann@2244
   165
config BINUTILS_LINKER_LD_GOLD
yann@2244
   166
    bool
yann@2244
   167
    prompt "ld, gold"
yann@2244
   168
    depends on BINUTILS_HAS_GOLD
yann@2373
   169
    depends on BINUTILS_GOLD_SUPPORTS_ARCH
yann@2244
   170
    select BINUTILS_GOLD_INSTALLED
yann@2247
   171
    select BINUTILS_LINKER_BOTH
yann@2244
   172
    help
yann@2244
   173
      Both the historical ld and the new gold linkers will be
yann@2244
   174
      installed, with ld being the default linker used.
yann@2244
   175
      
yann@2244
   176
      See help for gold, above.
yann@2244
   177
yann@2244
   178
config BINUTILS_LINKER_GOLD_LD
yann@2244
   179
    bool
yann@2244
   180
    prompt "gold, ld"
yann@2244
   181
    depends on BINUTILS_HAS_GOLD
yann@2373
   182
    depends on BINUTILS_GOLD_SUPPORTS_ARCH
yann@2244
   183
    select BINUTILS_GOLD_INSTALLED
yann@2247
   184
    select BINUTILS_LINKER_BOTH
yann@2376
   185
    select BINUTILS_LD_WRAPPER if BINUTILS_FORCE_LD_BFD
yann@2244
   186
    help
yann@2244
   187
      Both the historical ld and the new gold linkers will be
yann@2244
   188
      installed, with gold being the default linker used.
yann@2244
   189
      
yann@2244
   190
      See help for gold, above.
yann@2244
   191
yann@2244
   192
endchoice # Enable linkers
yann@2244
   193
yann@2374
   194
if BINUTILS_LINKER_GOLD
yann@2374
   195
comment "WARNING! gold is not capable of"
yann@2374
   196
comment "|         building glibc/eglibc!"
yann@2374
   197
endif # BINUTILS_LINKER_GOLD
yann@2374
   198
yann@2244
   199
config BINUTILS_GOLD_INSTALLED
yann@2244
   200
    bool
yann@2244
   201
yann@2246
   202
config BINUTILS_GOLD_THREADS
yann@2246
   203
    bool
yann@2246
   204
    prompt "|  Enable threaded gold"
yann@2246
   205
    depends on BINUTILS_GOLD_INSTALLED
yann@2246
   206
    help
yann@2246
   207
      When configured with threads, gold can link in parallel,
yann@2246
   208
      possibly cooperating with a make jobserver.
yann@2246
   209
yann@2247
   210
config BINUTILS_LINKER_BOTH
yann@2247
   211
    bool
yann@2247
   212
yann@2244
   213
config BINUTILS_LINKERS_LIST
yann@2244
   214
    string
yann@2244
   215
    default "ld"        if BINUTILS_LINKER_LD
yann@2244
   216
    default "gold"      if BINUTILS_LINKER_GOLD
yann@2244
   217
    default "ld,gold"   if BINUTILS_LINKER_LD_GOLD
yann@2244
   218
    default "gold,ld"   if BINUTILS_LINKER_GOLD_LD
yann@2244
   219
yann@2247
   220
config BINUTILS_LD_WRAPPER
yann@2247
   221
    bool
yann@2247
   222
    prompt "|  Add ld wrapper"
yann@2247
   223
    depends on BINUTILS_LINKER_BOTH
yann@2247
   224
    help
yann@2247
   225
      Add an ld wrapper that calls to either gold or ld.
yann@2247
   226
      
yann@2247
   227
      By default, the wrapper will call to the default wrapper,
yann@2247
   228
      but if you set the environment variable CTNG_LD_IS, you
yann@2247
   229
      can change which linker will get called:
yann@2247
   230
        CTNG_LD_IS=gold     will unconditionally call the gold linker
yann@2247
   231
        CTNG_LD_IS=bfd      will unconditionally call the old bfd ld linker
yann@2247
   232
yann@2247
   233
config BINUTILS_LINKER_DEFAULT
yann@2247
   234
    string
yann@2373
   235
    default "bfd"   if BINUTILS_LINKER_LD || BINUTILS_LINKER_LD_GOLD
yann@2373
   236
    default "gold"  if BINUTILS_LINKER_GOLD || BINUTILS_LINKER_GOLD_LD
yann@2243
   237
yann@2245
   238
config BINUTILS_PLUGINS
yann@2245
   239
    bool
yann@2245
   240
    prompt "Enable support for plugins"
yann@2245
   241
    depends on BINUTILS_HAS_PLUGINS
yann@2316
   242
    depends on ! STATIC_TOOLCHAIN
yann@2245
   243
    help
yann@2245
   244
      binutils can be extended through the use of plugins.
yann@2245
   245
      Especially, gold can use the lto-plugin, as installed
yann@2245
   246
      by gcc, to handle LTO.
yann@2245
   247
yann@2467
   248
config BINUTILS_EXTRA_CONFIG_ARRAY
yann@1345
   249
    string
yann@1345
   250
    prompt "binutils extra config"
yann@1345
   251
    default ""
yann@1345
   252
    help
yann@1345
   253
      Extra flags passed onto ./configure when configuring
yann@2469
   254
      
yann@2469
   255
      You can enter multiple arguments here, and arguments can contain spaces
yann@2469
   256
      if they are properly quoted (or escaped, but prefer quotes). Eg.:
yann@2469
   257
          --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
yann@1345
   258
yann@1345
   259
config BINUTILS_FOR_TARGET
yann@1345
   260
    bool
yann@1345
   261
    prompt "binutils libraries for the target"
yann@1345
   262
    depends on ! BARE_METAL
yann@1844
   263
    depends on ! BACKEND
yann@1345
   264
    help
yann@1345
   265
      Some utilities may need binutils libraries to be available on
yann@1345
   266
      the target, eg. oprofile.
yann@1345
   267
yann@1345
   268
if BINUTILS_FOR_TARGET
yann@1345
   269
yann@1345
   270
config BINUTILS_FOR_TARGET_IBERTY
yann@1345
   271
    bool
yann@1345
   272
    prompt "libiberty"
yann@1345
   273
    default y
yann@1345
   274
yann@1345
   275
config BINUTILS_FOR_TARGET_BFD
yann@1345
   276
    bool
yann@1345
   277
    prompt "libbfd"
yann@1345
   278
    default y
yann@1345
   279
yann@1345
   280
endif # BINUTILS_FOR_TARGET