config/cc/gcc.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mon Mar 28 01:05:18 2011 +0200 (2011-03-28)
changeset 2362 0888065f8c4d
parent 2361 e65be7e72d8a
child 2363 bc2714299363
permissions -rw-r--r--
cc/gcc: cleanup the _or_later logic

So far, we've had a version always select appropriate _or_later option,
which in turn would select all previous _or_later options.

Because the dependencies on companion libs were cumulative, that was
working OK. But the upcoming 4.6 will no longer depend on libelf, so
we can't keep the cumulative scheme we've been using so far.

Have each release family select the corresponding dependencies, instead
of relying on selecting previous _or_later.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
yann@448
     1
# Compiler options
yann@448
     2
yann@923
     3
config CC_gcc
yann@923
     4
    select CC_SUPPORT_CXX
yann@923
     5
    select CC_SUPPORT_FORTRAN
yann@923
     6
    select CC_SUPPORT_JAVA
yann@923
     7
    select CC_SUPPORT_ADA
yann@923
     8
    select CC_SUPPORT_OBJC
yann@923
     9
    select CC_SUPPORT_OBJCXX
yann@923
    10
    help
yann@923
    11
      gcc is the full-blown GNU compiler. This is what most people will choose.
yann@923
    12
      
yann@923
    13
      gcc supports many languages, a powerful code parser, optimised binary
yann@923
    14
      output, and lots of other features.
yann@923
    15
yann@448
    16
choice
yann@448
    17
    bool
yann@448
    18
    prompt "gcc version"
yann@1535
    19
# Don't remove next line
yann@1535
    20
# CT_INSERT_VERSION_BELOW
yann@448
    21
yann@2361
    22
config CC_V_linaro_4_5_2011_03_0
yann@2302
    23
    bool
yann@2361
    24
    prompt "linaro-4.5-2011.03-0 (EXPERIMENTAL)"
yann@2302
    25
    depends on EXPERIMENTAL
yann@2362
    26
    select CC_GCC_4_5
yann@2302
    27
bryanhundven@2233
    28
config CC_V_4_5_2
bryanhundven@2233
    29
    bool
bryanhundven@2233
    30
    prompt "4.5.2 (EXPERIMENTAL)"
bryanhundven@2233
    31
    depends on EXPERIMENTAL
yann@2362
    32
    select CC_GCC_4_5
bryanhundven@2233
    33
lacombar@2061
    34
config CC_V_4_5_1
lacombar@2061
    35
    bool
lacombar@2061
    36
    prompt "4.5.1 (EXPERIMENTAL)"
lacombar@2061
    37
    depends on EXPERIMENTAL
yann@2362
    38
    select CC_GCC_4_5
lacombar@2061
    39
yann@1921
    40
config CC_V_4_5_0
yann@1921
    41
    bool
yann@1921
    42
    prompt "4.5.0 (EXPERIMENTAL)"
yann@1921
    43
    depends on EXPERIMENTAL
yann@2362
    44
    select CC_GCC_4_5
yann@1921
    45
yann@2302
    46
yann@2302
    47
config CC_V_linaro_4_4_2011_02_0
yann@2302
    48
    bool
yann@2302
    49
    prompt "linaro-4.4-2011.02-0 (EXPERIMENTAL)"
yann@2302
    50
    depends on EXPERIMENTAL
yann@2362
    51
    select CC_GCC_4_4
yann@2302
    52
yann@2149
    53
config CC_V_4_4_5
yann@2149
    54
    bool
yann@2149
    55
    prompt "4.4.5"
yann@2362
    56
    select CC_GCC_4_4
yann@2149
    57
yann@1948
    58
config CC_V_4_4_4
yann@1948
    59
    bool
yann@2149
    60
    prompt "4.4.4"
yann@2362
    61
    select CC_GCC_4_4
yann@1948
    62
yann@1752
    63
config CC_V_4_4_3
yann@1752
    64
    bool
yann@1778
    65
    prompt "4.4.3"
yann@2362
    66
    select CC_GCC_4_4
yann@1752
    67
yann@1611
    68
config CC_V_4_4_2
yann@1611
    69
    bool
yann@1778
    70
    prompt "4.4.2"
yann@2362
    71
    select CC_GCC_4_4
yann@1611
    72
yann@1534
    73
config CC_V_4_4_1
yann@448
    74
    bool
yann@1778
    75
    prompt "4.4.1"
yann@2362
    76
    select CC_GCC_4_4
yann@1462
    77
yann@1268
    78
config CC_V_4_4_0
yann@1268
    79
    bool
yann@1778
    80
    prompt "4.4.0"
yann@2362
    81
    select CC_GCC_4_4
yann@1268
    82
yann@2124
    83
config CC_V_4_3_5
yann@2124
    84
    bool
yann@2124
    85
    prompt "4.3.5"
yann@2362
    86
    select CC_GCC_4_3
yann@2124
    87
yann@1534
    88
config CC_V_4_3_4
yann@1442
    89
    bool
yann@1534
    90
    prompt "4.3.4"
yann@2362
    91
    select CC_GCC_4_3
yann@1534
    92
yann@1534
    93
config CC_V_4_3_3
yann@1534
    94
    bool
yann@1534
    95
    prompt "4.3.3"
yann@2362
    96
    select CC_GCC_4_3
yann@1534
    97
yann@1534
    98
config CC_V_4_3_2
yann@1534
    99
    bool
yann@1534
   100
    prompt "4.3.2"
yann@2362
   101
    select CC_GCC_4_3
yann@1534
   102
yann@1534
   103
config CC_V_4_3_1
yann@1534
   104
    bool
yann@1534
   105
    prompt "4.3.1"
yann@2362
   106
    select CC_GCC_4_3
yann@1534
   107
yann@1534
   108
config CC_V_4_2_4
yann@1534
   109
    bool
yann@1534
   110
    prompt "4.2.4"
yann@2362
   111
    select CC_GCC_4_2
yann@1534
   112
yann@1534
   113
config CC_V_4_2_3
yann@1534
   114
    bool
yann@1615
   115
    prompt "4.2.3 (OBSOLETE)"
yann@2362
   116
    select CC_GCC_4_2
yann@1615
   117
    depends on OBSOLETE
yann@1534
   118
yann@1534
   119
config CC_V_4_2_2
yann@1534
   120
    bool
yann@1534
   121
    prompt "4.2.2"
yann@2362
   122
    select CC_GCC_4_2
yann@1534
   123
yann@1534
   124
config CC_V_4_2_1
yann@1534
   125
    bool
yann@1615
   126
    prompt "4.2.1 (OBSOLETE)"
yann@2362
   127
    select CC_GCC_4_2
yann@1615
   128
    depends on OBSOLETE
yann@1534
   129
yann@1534
   130
config CC_V_4_2_0
yann@1534
   131
    bool
yann@1615
   132
    prompt "4.2.0 (OBSOLETE)"
yann@2362
   133
    select CC_GCC_4_2
yann@1615
   134
    depends on OBSOLETE
yann@1534
   135
yann@1534
   136
config CC_V_4_1_2
yann@1534
   137
    bool
yann@1615
   138
    prompt "4.1.2 (OBSOLETE)"
yann@1615
   139
    depends on OBSOLETE
yann@1534
   140
yann@1534
   141
config CC_V_4_0_4
yann@1534
   142
    bool
yann@1615
   143
    prompt "4.0.4 (OBSOLETE)"
yann@1615
   144
    depends on OBSOLETE
yann@1534
   145
yann@1534
   146
config CC_V_3_4_6
yann@1534
   147
    bool
yann@1534
   148
    prompt "3.4.6 (OBSOLETE)"
yann@1534
   149
    depends on OBSOLETE
yann@1534
   150
yann@448
   151
endchoice
yann@448
   152
yann@2362
   153
config CC_GCC_4_2
yann@2362
   154
    bool
yann@2362
   155
    default n
yann@2362
   156
    select CC_GCC_4_2_or_later
yann@2362
   157
lacombar@1881
   158
config CC_GCC_4_2_or_later
lacombar@1881
   159
    bool
lacombar@1881
   160
    default n
lacombar@1881
   161
yann@2362
   162
config CC_GCC_4_3
yann@2362
   163
    bool
yann@2362
   164
    default n
yann@2362
   165
    select CC_GCC_4_3_or_later
yann@2362
   166
    select CC_GCC_USE_GMP_MPFR
yann@2362
   167
yann@1268
   168
config CC_GCC_4_3_or_later
yann@1268
   169
    bool
yann@1268
   170
    default n
lacombar@1881
   171
    select CC_GCC_4_2_or_later
yann@2362
   172
yann@2362
   173
config CC_GCC_4_4
yann@2362
   174
    bool
yann@2362
   175
    default n
yann@2362
   176
    select CC_GCC_4_4_or_later
yann@1848
   177
    select CC_GCC_USE_GMP_MPFR
yann@2362
   178
    select CC_GCC_HAS_GRAPHITE
yann@1268
   179
yann@1320
   180
config CC_GCC_4_4_or_later
yann@1268
   181
    bool
yann@1268
   182
    default n
yann@1805
   183
    select CC_GCC_4_3_or_later
yann@2362
   184
yann@2362
   185
config CC_GCC_4_5
yann@2362
   186
    bool
yann@2362
   187
    default n
yann@2362
   188
    select CC_GCC_4_5_or_later
yann@2362
   189
    select CC_GCC_USE_GMP_MPFR
yann@2362
   190
    select CC_GCC_USE_MPC
yann@2122
   191
    select CC_GCC_HAS_GRAPHITE
yann@2362
   192
    select CC_GCC_HAS_LTO
yann@1848
   193
yann@1920
   194
config CC_GCC_4_5_or_later
yann@1920
   195
    bool
yann@1920
   196
    default n
yann@1920
   197
    select CC_GCC_4_4_or_later
yann@2122
   198
yann@2122
   199
config CC_GCC_HAS_GRAPHITE
yann@2122
   200
    bool
yann@2122
   201
    default n
yann@2122
   202
yann@2287
   203
# The way LTO works is a bit twisted.
yann@2287
   204
# See: http://gcc.gnu.org/wiki/LinkTimeOptimization#Requirements
yann@2287
   205
# Basically:
yann@2287
   206
#   - if binutils has plugins: LTO is handled by ld/gold by loading
yann@2287
   207
#     the plugin when linking
yann@2287
   208
#   - if binutils does not have plugins: LTO is handled by collect2
yann@2287
   209
# In any case, LTO support does not depend on plugins, but takes
yann@2287
   210
# advantage of it
yann@2122
   211
config CC_GCC_HAS_LTO
yann@2122
   212
    bool
yann@2122
   213
    default n
yann@1920
   214
yann@2287
   215
# Only enable gcc's support for plugins if binutils has it as well
yann@2287
   216
# They are usefull only when doing LTO, but it does no harm enabling
yann@2287
   217
# them even without LTO.
yann@2287
   218
config CC_GCC_ENABLE_PLUGINS
yann@2287
   219
    bool
yann@2287
   220
    depends on BINUTILS_PLUGINS
yann@2316
   221
    depends on ! STATIC_TOOLCHAIN
yann@2287
   222
    default y
yann@2287
   223
yann@2287
   224
# If binutils installs gold, enable support for gold in gcc
yann@2287
   225
config CC_GCC_GOLD
yann@2287
   226
    bool
yann@2287
   227
    depends on BINUTILS_GOLD_INSTALLED
yann@2287
   228
    default y
yann@2287
   229
yann@1848
   230
config CC_GCC_USE_GMP_MPFR
yann@1848
   231
    bool
yann@1848
   232
    default n
yann@2131
   233
    select GMP_NEEDED
yann@2131
   234
    select MPFR_NEEDED
yann@1848
   235
yann@2014
   236
config CC_GCC_USE_PPL_CLOOG
yann@1848
   237
    bool
yann@1848
   238
    default n
yann@2131
   239
    select PPL_NEEDED
yann@2131
   240
    select CLOOG_NEEDED
yann@1268
   241
yann@2122
   242
config CC_GCC_USE_MPC
yann@1920
   243
    bool
yann@1920
   244
    default n
yann@2131
   245
    select MPC_NEEDED
yann@2122
   246
yann@2122
   247
config CC_GCC_USE_LIBELF
yann@2122
   248
    bool
yann@2122
   249
    default n
yann@2131
   250
    select LIBELF_NEEDED
yann@1920
   251
yann@448
   252
config CC_VERSION
yann@448
   253
    string
yann@1535
   254
# Don't remove next line
yann@1535
   255
# CT_INSERT_VERSION_STRING_BELOW
yann@2361
   256
    default "linaro-4.5-2011.03-0" if CC_V_linaro_4_5_2011_03_0
bryanhundven@2233
   257
    default "4.5.2" if CC_V_4_5_2
lacombar@2061
   258
    default "4.5.1" if CC_V_4_5_1
yann@1921
   259
    default "4.5.0" if CC_V_4_5_0
yann@2302
   260
    default "linaro-4.4-2011.02-0" if CC_V_linaro_4_4_2011_02_0
yann@2149
   261
    default "4.4.5" if CC_V_4_4_5
yann@1948
   262
    default "4.4.4" if CC_V_4_4_4
yann@1752
   263
    default "4.4.3" if CC_V_4_4_3
yann@1611
   264
    default "4.4.2" if CC_V_4_4_2
yann@1534
   265
    default "4.4.1" if CC_V_4_4_1
yann@1534
   266
    default "4.4.0" if CC_V_4_4_0
yann@2124
   267
    default "4.3.5" if CC_V_4_3_5
yann@1534
   268
    default "4.3.4" if CC_V_4_3_4
yann@1534
   269
    default "4.3.3" if CC_V_4_3_3
yann@1534
   270
    default "4.3.2" if CC_V_4_3_2
yann@1534
   271
    default "4.3.1" if CC_V_4_3_1
yann@1534
   272
    default "4.3.0" if CC_V_4_3_0
yann@1534
   273
    default "4.2.4" if CC_V_4_2_4
yann@1534
   274
    default "4.2.3" if CC_V_4_2_3
yann@1534
   275
    default "4.2.2" if CC_V_4_2_2
yann@1534
   276
    default "4.2.1" if CC_V_4_2_1
yann@1534
   277
    default "4.2.0" if CC_V_4_2_0
yann@1534
   278
    default "4.1.2" if CC_V_4_1_2
yann@1534
   279
    default "4.0.4" if CC_V_4_0_4
yann@1534
   280
    default "3.4.6" if CC_V_3_4_6
yann@448
   281
yann@2041
   282
config CC_LANG_JAVA_USE_ECJ
yann@448
   283
    bool
yann@765
   284
    default y
yann@2041
   285
    depends on CC_LANG_JAVA
yann@2041
   286
    depends on CC_GCC_4_3_or_later
yann@2041
   287
yann@2041
   288
config CC_PKGVERSION
yann@2041
   289
    string
yann@2041
   290
    prompt "gcc ID string"
yann@2041
   291
    depends on CC_GCC_4_3_or_later
yann@2041
   292
    default "crosstool-NG-${CT_VERSION}"
yann@448
   293
    help
yann@2041
   294
      Specify a string that identifies your package. You may wish to include
yann@2041
   295
      a build number or build date. This version string will be included in
yann@2041
   296
      the output of gcc --version.
yann@448
   297
yann@2041
   298
      This is passed to the configure flag --with-pkgversion.
yann@765
   299
yann@2041
   300
config CC_BUGURL
yann@2041
   301
    string
yann@2041
   302
    prompt "gcc bug URL"
yann@2041
   303
    depends on CC_GCC_4_3_or_later
yann@2041
   304
    default ""
yann@765
   305
    help
yann@2041
   306
      Specify the URL that users should visit if they wish to report a bug.
yann@765
   307
yann@1484
   308
config CC_ENABLE_CXX_FLAGS
yann@1484
   309
    string
yann@1484
   310
    prompt "Flags to pass to --enable-cxx-flags"
yann@1484
   311
    default ""
yann@1484
   312
    help
yann@1484
   313
      Enter here the value of the gcc's ./configure option --enable-cxx-flags.
yann@1484
   314
      Leave empty if you don't know better.
yann@1484
   315
      
yann@1484
   316
      Note: just pass in the option _value_, that is only the part that goes
yann@1484
   317
      after the '=' sign.
yann@1484
   318
yann@448
   319
config CC_CORE_EXTRA_CONFIG
yann@448
   320
    string
yann@448
   321
    prompt "Core gcc extra config"
yann@448
   322
    default ""
yann@448
   323
    help
yann@448
   324
      Extra flags to pass onto ./configure when configuring the core gcc.
yann@448
   325
      
yann@448
   326
      The core gcc is a stripped down, C-only compiler needed to build
yann@448
   327
      the C library. Kinda bootstrap gcc, if you wish.
yann@448
   328
yann@448
   329
config CC_EXTRA_CONFIG
yann@448
   330
    string
yann@448
   331
    prompt "gcc extra config"
yann@448
   332
    default ""
yann@850
   333
    depends on ! BARE_METAL
yann@448
   334
    help
yann@448
   335
      Extra flags to pass onto ./configure when configuring gcc.