config/binutils/binutils.in
author "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
Tue May 31 20:39:42 2011 +0200 (2011-05-31)
changeset 2488 58a28561f1bc
parent 2484 d1a8c2ae7946
child 2663 7179903f8d2e
permissions -rw-r--r--
binutils: use the PKGVERSION and BUGURL options

This patch makes binutils benefit from the TOOLCHAIN_PKGVERSION and
TOOLCHAIN_BUGURL options.

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