config/binutils/binutils.in
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Mon Feb 25 21:19:31 2013 +0100 (2013-02-25)
changeset 3185 f89f8e6f8766
parent 3154 5d3c8b601af3
child 3240 bc4b36e3df0c
permissions -rw-r--r--
Makefile: fix parrallel (-j) installs

Currently, we would remove previously installed patches before
installing the new ones. Unfortunately, that does not play well
with heavily parallel installs.

Now, we consider it is the responsibility of the user to first
uninstall any previous version before installing a new one.

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