config/binutils/binutils.in
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Sun May 11 23:43:52 2014 +0200 (2014-05-11)
changeset 3320 78af1c99bc6d
parent 3264 38113b831a2f
permissions -rw-r--r--
scripts/functions: add target_endian_le and target_endian_be

We currently define target_endian_el and target_endian_eb to be the
tuple extension depending on endianness, defined to be respectively
'el' or 'eb' according to the endianness.

Some architecture do not use 'el' or 'eb', but use 'le' or 'be'.

Provide that as well, as two new variables: target_endian_le and
target_endian_be.

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