config/binutils/binutils.in
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Thu Dec 27 12:45:22 2012 +0100 (2012-12-27)
changeset 3152 b286c7993be5
parent 3149 e1611da4bb05
child 3154 5d3c8b601af3
permissions -rw-r--r--
scripts/addToolsVersion: properly handle .in vs. .in.2

While most components have their version in the .in file, some
have it in the .in.2 (eg. elf2flt).

Currently, to handle this case, we indiscriminately munge both files,
but this is wrong: in the elf2flt case, if we add a binutils version,
we do not want it to be added to elf2flt, and conversely.

So, for each tool, we need to explicitly know what file to munge.

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