config/binutils/binutils.in
author Michael Hope <michael.hope@linaro.org>
Wed Oct 19 15:27:32 2011 +1300 (2011-10-19)
changeset 2739 f320e22f2cba
parent 2665 5b7e91ec300c
child 2797 ce8ada0b1d41
permissions -rw-r--r--
arch: add softfp support

Some architectures support a mixed hard/soft floating point, where
the compiler emits hardware floating point instructions, but passes
the operands in core (aka integer) registers.

For example, ARM supports this mode (to come in the next changeset).

Add support for softfp cross compilers to the GCC and GLIBC
configuration. Needed for Ubuntu and other distros that are softfp.

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