config/binutils/binutils.in
author David Holsgrove <david.holsgrove@xilinx.com>
Thu Oct 11 14:39:41 2012 +1000 (2012-10-11)
changeset 3089 3662412ddd59
parent 2947 479064d9a546
child 3121 5016315d88ba
permissions -rw-r--r--
binutils/binutils: Add CUSTOM version and CUSTOM_LOCATION config options and GetCustom

CUSTOM_LOCATION config options only presented in menuconfig if component
CUSTOM version selected.

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