config/binutils/binutils.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Apr 05 01:02:28 2011 +0200 (2011-04-05)
changeset 2376 369664fd7cba
parent 2374 e99f599ff64d
child 2467 200836977ce6
permissions -rw-r--r--
binutils/binutils: add blind option to force use of ld.bfd during build

gold is not capable of building glibc/eglibc, so we have to
force using the BFD linker, ld.bfd.

Offer a blind option that affected components can select to
force use of the BFD linker during the build.

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