config/cc/gcc.in
author Anthony Foiani <anthony.foiani@gmail.com>
Thu May 19 23:06:16 2011 +0200 (2011-05-19)
branch1.11
changeset 2464 4b844234d214
parent 2416 e4044a447612
child 2444 896cb0d36c1a
permissions -rw-r--r--
complibs/ppl: build only C and C++ interfaces for PPL

By default, PPL wants to build interfaces for any of a variety of
langauges it finds on the local host (python, java, possibly perl, also
more esoteric languages such as ocaml and prolog).

These extra interfaces can double the compile time for the library. For
single-process builds, I found a savings of more than 40%:

default / j1: 716s total, 143.2s avg, 0.52s stdev
just_c / j1: 406s total, 81.2s avg, 0.33s stdev
just_c_cpp / j1: 413s total, 82.6s avg, 0.22s stdev

And for multi-process builds, it approached 50%:

default / j4: 625s total, 125.0s avg, 0.57s stdev
just_c / j4: 338s total, 67.6s avg, 1.25s stdev
just_c_cpp / j4: 327s total, 65.4s avg, 0.36s stdev

Since the PPL we build within ct-ng is only used by GCC, we only need to
build the C and C++ interfaces.

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