config/cc/gcc.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mon Jun 27 15:15:00 2011 +0200 (2011-06-27)
changeset 2522 ff2481a6e60f
parent 2521 9cfca603f892
child 2572 5711f9422329
permissions -rw-r--r--
cc/gcc: add option for linker hash style

Add an option to specify the hash type that gcc will ask the linker to use.
It is a provision for the upcoming 4.7, as no version currently supports it.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
yann@448
     1
# Compiler options
yann@2444
     2
#
yann@2444
     3
## select CC_SUPPORT_CXX
yann@2444
     4
## select CC_SUPPORT_FORTRAN
yann@2444
     5
## select CC_SUPPORT_JAVA
yann@2444
     6
## select CC_SUPPORT_ADA
yann@2444
     7
## select CC_SUPPORT_OBJC
yann@2444
     8
## select CC_SUPPORT_OBJCXX
yann@2444
     9
##
yann@2444
    10
## help gcc is the full-blown GNU compiler. This is what most people will choose.
yann@2444
    11
## help
yann@2444
    12
## help gcc supports many languages, a powerful code parser, optimised binary
yann@2444
    13
## help output, and lots of other features.
yann@923
    14
yann@2367
    15
config CC_GCC_SHOW_LINARO
yann@2367
    16
    bool
yann@2367
    17
    prompt "Show Linaro versions (EXPERIMENTAL)"
yann@2367
    18
    depends on EXPERIMENTAL
yann@2367
    19
    help
yann@2367
    20
      Linaro is maintaining some advanced/more stable/experimental versions
yann@2367
    21
      of gcc, especially for the ARM architecture.
yann@2367
    22
      
yann@2367
    23
      Those versions have not been blessed by the gcc comunity (nor have they
yann@2367
    24
      been cursed either!), but they look to be pretty much stable, and even
yann@2367
    25
      more stable than the upstream versions. YMMV...
yann@2367
    26
      
yann@2367
    27
      If you do not know what this Linaro stuff is, then simply say 'n' here,
yann@2367
    28
      and rest in peace. OTOH, if you know what you are doing, you will be
yann@2367
    29
      able to use and enjoy :-) the Linaro versions by saying 'y' here.
yann@2367
    30
      
yann@2367
    31
      Linaro: http://www.linaro.org/
yann@2367
    32
yann@448
    33
choice
yann@448
    34
    bool
yann@448
    35
    prompt "gcc version"
yann@1535
    36
# Don't remove next line
yann@1535
    37
# CT_INSERT_VERSION_BELOW
yann@448
    38
benoit@2510
    39
config CC_V_linaro_4_6_2011_06_0
yann@2366
    40
    bool
benoit@2510
    41
    prompt "linaro-4.6-2011.06-0 (EXPERIMENTAL)"
yann@2367
    42
    depends on CC_GCC_SHOW_LINARO
yann@2366
    43
    select CC_GCC_4_6
yann@2366
    44
bryanhundven@2516
    45
config CC_V_4_6_1
bryanhundven@2516
    46
    bool
bryanhundven@2516
    47
    prompt "4.6.1 (EXPERIMENTAL)"
bryanhundven@2516
    48
    depends on EXPERIMENTAL
bryanhundven@2516
    49
    select CC_GCC_4_6
bryanhundven@2516
    50
yann@2365
    51
config CC_V_4_6_0
yann@2365
    52
    bool
yann@2365
    53
    prompt "4.6.0 (EXPERIMENTAL)"
yann@2365
    54
    depends on EXPERIMENTAL
yann@2365
    55
    select CC_GCC_4_6
yann@2365
    56
benoit@2510
    57
config CC_V_linaro_4_5_2011_06_0
yann@2302
    58
    bool
benoit@2510
    59
    prompt "linaro-4.5-2011.06-0 (EXPERIMENTAL)"
yann@2367
    60
    depends on CC_GCC_SHOW_LINARO
yann@2362
    61
    select CC_GCC_4_5
yann@2302
    62
bryanhundven@2516
    63
config CC_V_4_5_3
bryanhundven@2516
    64
    bool
bryanhundven@2516
    65
    prompt "4.5.3 (EXPERIMENTAL)"
bryanhundven@2516
    66
    depends on EXPERIMENTAL
bryanhundven@2516
    67
    select CC_GCC_4_5
bryanhundven@2516
    68
bryanhundven@2233
    69
config CC_V_4_5_2
bryanhundven@2233
    70
    bool
bryanhundven@2233
    71
    prompt "4.5.2 (EXPERIMENTAL)"
bryanhundven@2233
    72
    depends on EXPERIMENTAL
yann@2362
    73
    select CC_GCC_4_5
bryanhundven@2233
    74
lacombar@2061
    75
config CC_V_4_5_1
lacombar@2061
    76
    bool
lacombar@2061
    77
    prompt "4.5.1 (EXPERIMENTAL)"
lacombar@2061
    78
    depends on EXPERIMENTAL
yann@2362
    79
    select CC_GCC_4_5
lacombar@2061
    80
yann@1921
    81
config CC_V_4_5_0
yann@1921
    82
    bool
yann@1921
    83
    prompt "4.5.0 (EXPERIMENTAL)"
yann@1921
    84
    depends on EXPERIMENTAL
yann@2362
    85
    select CC_GCC_4_5
yann@1921
    86
yann@2302
    87
yann@2302
    88
config CC_V_linaro_4_4_2011_02_0
yann@2302
    89
    bool
yann@2302
    90
    prompt "linaro-4.4-2011.02-0 (EXPERIMENTAL)"
yann@2367
    91
    depends on CC_GCC_SHOW_LINARO
yann@2362
    92
    select CC_GCC_4_4
yann@2302
    93
yann@2406
    94
config CC_V_4_4_6
yann@2406
    95
    bool
yann@2406
    96
    prompt "4.4.6"
yann@2440
    97
    select CC_GCC_4_4
yann@2406
    98
yann@2149
    99
config CC_V_4_4_5
yann@2149
   100
    bool
yann@2149
   101
    prompt "4.4.5"
yann@2362
   102
    select CC_GCC_4_4
yann@2149
   103
yann@1948
   104
config CC_V_4_4_4
yann@1948
   105
    bool
yann@2149
   106
    prompt "4.4.4"
yann@2362
   107
    select CC_GCC_4_4
yann@1948
   108
yann@1752
   109
config CC_V_4_4_3
yann@1752
   110
    bool
yann@1778
   111
    prompt "4.4.3"
yann@2362
   112
    select CC_GCC_4_4
yann@1752
   113
yann@1611
   114
config CC_V_4_4_2
yann@1611
   115
    bool
yann@1778
   116
    prompt "4.4.2"
yann@2362
   117
    select CC_GCC_4_4
yann@1611
   118
yann@1534
   119
config CC_V_4_4_1
yann@448
   120
    bool
yann@1778
   121
    prompt "4.4.1"
yann@2362
   122
    select CC_GCC_4_4
yann@1462
   123
yann@1268
   124
config CC_V_4_4_0
yann@1268
   125
    bool
yann@1778
   126
    prompt "4.4.0"
yann@2362
   127
    select CC_GCC_4_4
yann@1268
   128
bryanhundven@2516
   129
config CC_V_4_3_6
bryanhundven@2516
   130
    bool
bryanhundven@2516
   131
    prompt "4.3.6"
bryanhundven@2516
   132
    select CC_GCC_4_3
bryanhundven@2516
   133
yann@2124
   134
config CC_V_4_3_5
yann@2124
   135
    bool
yann@2124
   136
    prompt "4.3.5"
yann@2362
   137
    select CC_GCC_4_3
yann@2124
   138
yann@1534
   139
config CC_V_4_3_4
yann@1442
   140
    bool
yann@1534
   141
    prompt "4.3.4"
yann@2362
   142
    select CC_GCC_4_3
yann@1534
   143
yann@1534
   144
config CC_V_4_3_3
yann@1534
   145
    bool
yann@1534
   146
    prompt "4.3.3"
yann@2362
   147
    select CC_GCC_4_3
yann@1534
   148
yann@1534
   149
config CC_V_4_3_2
yann@1534
   150
    bool
yann@1534
   151
    prompt "4.3.2"
yann@2362
   152
    select CC_GCC_4_3
yann@1534
   153
yann@1534
   154
config CC_V_4_3_1
yann@1534
   155
    bool
yann@1534
   156
    prompt "4.3.1"
yann@2362
   157
    select CC_GCC_4_3
yann@1534
   158
yann@1534
   159
config CC_V_4_2_4
yann@1534
   160
    bool
yann@1534
   161
    prompt "4.2.4"
yann@2362
   162
    select CC_GCC_4_2
yann@1534
   163
yann@1534
   164
config CC_V_4_2_3
yann@1534
   165
    bool
yann@1615
   166
    prompt "4.2.3 (OBSOLETE)"
yann@2362
   167
    select CC_GCC_4_2
yann@1615
   168
    depends on OBSOLETE
yann@1534
   169
yann@1534
   170
config CC_V_4_2_2
yann@1534
   171
    bool
yann@1534
   172
    prompt "4.2.2"
yann@2362
   173
    select CC_GCC_4_2
yann@1534
   174
yann@1534
   175
config CC_V_4_2_1
yann@1534
   176
    bool
yann@1615
   177
    prompt "4.2.1 (OBSOLETE)"
yann@2362
   178
    select CC_GCC_4_2
yann@1615
   179
    depends on OBSOLETE
yann@1534
   180
yann@1534
   181
config CC_V_4_2_0
yann@1534
   182
    bool
yann@1615
   183
    prompt "4.2.0 (OBSOLETE)"
yann@2362
   184
    select CC_GCC_4_2
yann@1615
   185
    depends on OBSOLETE
yann@1534
   186
yann@1534
   187
config CC_V_4_1_2
yann@1534
   188
    bool
yann@1615
   189
    prompt "4.1.2 (OBSOLETE)"
yann@1615
   190
    depends on OBSOLETE
yann@1534
   191
yann@1534
   192
config CC_V_4_0_4
yann@1534
   193
    bool
yann@1615
   194
    prompt "4.0.4 (OBSOLETE)"
yann@1615
   195
    depends on OBSOLETE
yann@1534
   196
yann@1534
   197
config CC_V_3_4_6
yann@1534
   198
    bool
yann@1534
   199
    prompt "3.4.6 (OBSOLETE)"
yann@1534
   200
    depends on OBSOLETE
yann@1534
   201
yann@448
   202
endchoice
yann@448
   203
yann@2362
   204
config CC_GCC_4_2
yann@2362
   205
    bool
yann@2362
   206
    select CC_GCC_4_2_or_later
yann@2362
   207
lacombar@1881
   208
config CC_GCC_4_2_or_later
lacombar@1881
   209
    bool
lacombar@1881
   210
yann@2362
   211
config CC_GCC_4_3
yann@2362
   212
    bool
yann@2362
   213
    select CC_GCC_4_3_or_later
yann@2362
   214
    select CC_GCC_USE_GMP_MPFR
benoit@2486
   215
    select CC_GCC_HAS_PKGVERSION_BUGURL
yann@2362
   216
yann@1268
   217
config CC_GCC_4_3_or_later
yann@1268
   218
    bool
lacombar@1881
   219
    select CC_GCC_4_2_or_later
yann@2362
   220
yann@2362
   221
config CC_GCC_4_4
yann@2362
   222
    bool
yann@2362
   223
    select CC_GCC_4_4_or_later
yann@1848
   224
    select CC_GCC_USE_GMP_MPFR
yann@2362
   225
    select CC_GCC_HAS_GRAPHITE
benoit@2486
   226
    select CC_GCC_HAS_PKGVERSION_BUGURL
yann@1268
   227
yann@1320
   228
config CC_GCC_4_4_or_later
yann@1268
   229
    bool
yann@1805
   230
    select CC_GCC_4_3_or_later
yann@2362
   231
yann@2362
   232
config CC_GCC_4_5
yann@2362
   233
    bool
yann@2362
   234
    select CC_GCC_4_5_or_later
yann@2362
   235
    select CC_GCC_USE_GMP_MPFR
yann@2362
   236
    select CC_GCC_USE_MPC
yann@2122
   237
    select CC_GCC_HAS_GRAPHITE
yann@2362
   238
    select CC_GCC_HAS_LTO
benoit@2486
   239
    select CC_GCC_HAS_PKGVERSION_BUGURL
yann@2521
   240
    select CC_GCC_HAS_BUILD_ID
yann@1848
   241
yann@1920
   242
config CC_GCC_4_5_or_later
yann@1920
   243
    bool
yann@1920
   244
    select CC_GCC_4_4_or_later
yann@2122
   245
yann@2363
   246
config CC_GCC_4_6
yann@2363
   247
    bool
yann@2363
   248
    select CC_GCC_4_6_or_later
yann@2363
   249
    select CC_GCC_USE_GMP_MPFR
yann@2363
   250
    select CC_GCC_USE_MPC
yann@2363
   251
    select CC_GCC_HAS_GRAPHITE
yann@2363
   252
    select CC_GCC_HAS_LTO
benoit@2486
   253
    select CC_GCC_HAS_PKGVERSION_BUGURL
yann@2521
   254
    select CC_GCC_HAS_BUILD_ID
yann@2363
   255
yann@2363
   256
config CC_GCC_4_6_or_later
yann@2363
   257
    bool
yann@2363
   258
    select CC_GCC_4_5_or_later
yann@2363
   259
yann@2122
   260
config CC_GCC_HAS_GRAPHITE
yann@2122
   261
    bool
yann@2122
   262
yann@2287
   263
# The way LTO works is a bit twisted.
yann@2287
   264
# See: http://gcc.gnu.org/wiki/LinkTimeOptimization#Requirements
yann@2287
   265
# Basically:
yann@2287
   266
#   - if binutils has plugins: LTO is handled by ld/gold by loading
yann@2287
   267
#     the plugin when linking
yann@2287
   268
#   - if binutils does not have plugins: LTO is handled by collect2
yann@2287
   269
# In any case, LTO support does not depend on plugins, but takes
yann@2287
   270
# advantage of it
yann@2122
   271
config CC_GCC_HAS_LTO
yann@2122
   272
    bool
yann@1920
   273
benoit@2486
   274
config CC_GCC_HAS_PKGVERSION_BUGURL
benoit@2486
   275
    bool
benoit@2486
   276
yann@2521
   277
config CC_GCC_HAS_BUILD_ID
yann@2521
   278
    bool
yann@2521
   279
yann@2522
   280
# For the upcoming 4.7 ?
yann@2522
   281
# None have linker-hash-style support for now...
yann@2522
   282
config CC_GCC_HAS_LNK_HASH_STYLE
yann@2522
   283
    bool
yann@2522
   284
yann@2287
   285
# Only enable gcc's support for plugins if binutils has it as well
yann@2287
   286
# They are usefull only when doing LTO, but it does no harm enabling
yann@2287
   287
# them even without LTO.
yann@2287
   288
config CC_GCC_ENABLE_PLUGINS
yann@2287
   289
    bool
yann@2287
   290
    depends on BINUTILS_PLUGINS
yann@2316
   291
    depends on ! STATIC_TOOLCHAIN
yann@2287
   292
    default y
yann@2287
   293
yann@2287
   294
# If binutils installs gold, enable support for gold in gcc
yann@2287
   295
config CC_GCC_GOLD
yann@2287
   296
    bool
yann@2287
   297
    depends on BINUTILS_GOLD_INSTALLED
yann@2287
   298
    default y
yann@2287
   299
yann@1848
   300
config CC_GCC_USE_GMP_MPFR
yann@1848
   301
    bool
yann@2131
   302
    select GMP_NEEDED
yann@2131
   303
    select MPFR_NEEDED
yann@1848
   304
yann@2014
   305
config CC_GCC_USE_PPL_CLOOG
yann@1848
   306
    bool
yann@2131
   307
    select PPL_NEEDED
yann@2131
   308
    select CLOOG_NEEDED
yann@1268
   309
yann@2122
   310
config CC_GCC_USE_MPC
yann@1920
   311
    bool
yann@2131
   312
    select MPC_NEEDED
yann@2122
   313
yann@2122
   314
config CC_GCC_USE_LIBELF
yann@2122
   315
    bool
yann@2131
   316
    select LIBELF_NEEDED
yann@1920
   317
yann@448
   318
config CC_VERSION
yann@448
   319
    string
yann@1535
   320
# Don't remove next line
yann@1535
   321
# CT_INSERT_VERSION_STRING_BELOW
benoit@2510
   322
    default "linaro-4.6-2011.06-0" if CC_V_linaro_4_6_2011_06_0
bryanhundven@2516
   323
    default "4.6.1" if CC_V_4_6_1
yann@2365
   324
    default "4.6.0" if CC_V_4_6_0
benoit@2510
   325
    default "linaro-4.5-2011.06-0" if CC_V_linaro_4_5_2011_06_0
bryanhundven@2516
   326
    default "4.5.3" if CC_V_4_5_3
bryanhundven@2233
   327
    default "4.5.2" if CC_V_4_5_2
lacombar@2061
   328
    default "4.5.1" if CC_V_4_5_1
yann@1921
   329
    default "4.5.0" if CC_V_4_5_0
yann@2302
   330
    default "linaro-4.4-2011.02-0" if CC_V_linaro_4_4_2011_02_0
bryanhundven@2516
   331
    default "4.4.6" if CC_V_4_4_6
yann@2149
   332
    default "4.4.5" if CC_V_4_4_5
yann@1948
   333
    default "4.4.4" if CC_V_4_4_4
yann@1752
   334
    default "4.4.3" if CC_V_4_4_3
yann@1611
   335
    default "4.4.2" if CC_V_4_4_2
yann@1534
   336
    default "4.4.1" if CC_V_4_4_1
yann@1534
   337
    default "4.4.0" if CC_V_4_4_0
bryanhundven@2516
   338
    default "4.3.6" if CC_V_4_3_6
yann@2124
   339
    default "4.3.5" if CC_V_4_3_5
yann@1534
   340
    default "4.3.4" if CC_V_4_3_4
yann@1534
   341
    default "4.3.3" if CC_V_4_3_3
yann@1534
   342
    default "4.3.2" if CC_V_4_3_2
yann@1534
   343
    default "4.3.1" if CC_V_4_3_1
yann@1534
   344
    default "4.3.0" if CC_V_4_3_0
yann@1534
   345
    default "4.2.4" if CC_V_4_2_4
yann@1534
   346
    default "4.2.3" if CC_V_4_2_3
yann@1534
   347
    default "4.2.2" if CC_V_4_2_2
yann@1534
   348
    default "4.2.1" if CC_V_4_2_1
yann@1534
   349
    default "4.2.0" if CC_V_4_2_0
yann@1534
   350
    default "4.1.2" if CC_V_4_1_2
yann@1534
   351
    default "4.0.4" if CC_V_4_0_4
yann@1534
   352
    default "3.4.6" if CC_V_3_4_6
yann@448
   353
yann@2041
   354
config CC_LANG_JAVA_USE_ECJ
yann@448
   355
    bool
yann@765
   356
    default y
yann@2041
   357
    depends on CC_LANG_JAVA
yann@2041
   358
    depends on CC_GCC_4_3_or_later