config/cc/gcc.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Thu Mar 26 18:47:34 2009 +0000 (2009-03-26)
changeset 1268 5594b05bc2d8
parent 1162 31348b787bed
child 1319 d8e8cd26eae1
permissions -rw-r--r--
Add support for building toolchains with gcc-4.4 snapshots.
Initial patch by Dmitry PLOTNIKOV: http://sourceware.org/ml/crossgcc/2009-03/msg00053.html
It [the toolchain] uses current ct-ng (nightly snapshot 20090324, latest
release 1.3.2 work also), glibc 2.9 (from CVS), binutils 2.19 and latest
snapshot of GCC 4.4.0 (as of March 20, 2009).

We have successfully built linux kernel 2.6.29 and a lot of other stuff
with this toolchain.

Here's the patch that adds GCC 4.4.0 to the ct-ng menu and enables it to
download a 4.4.0 snapshot from ftp.

Patch was adpated by me, mostly to better fit the configuration layout.

/trunk/scripts/build/cc/gcc.sh | 34 22 12 0 ++++++++++++++++++++++------------
/trunk/config/cc/gcc.in | 35 30 5 0 ++++++++++++++++++++++++++++++-----
2 files changed, 52 insertions(+), 17 deletions(-)
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@448
    19
yann@448
    20
config CC_V_3_2_3
yann@448
    21
    bool
yann@448
    22
    prompt "3.2.3 (OBSOLETE)"
yann@448
    23
    depends on OBSOLETE
yann@448
    24
yann@448
    25
config CC_V_3_3_6
yann@448
    26
    bool
yann@448
    27
    prompt "3.3.6 (OBSOLETE)"
yann@448
    28
    depends on OBSOLETE
yann@448
    29
yann@448
    30
config CC_V_3_4_6
yann@448
    31
    bool
yann@448
    32
    prompt "3.4.6 (OBSOLETE)"
yann@448
    33
    depends on OBSOLETE
yann@448
    34
yann@448
    35
config CC_V_4_0_0
yann@448
    36
    bool
yann@448
    37
    prompt "4.0.0 (OBSOLETE)"
yann@448
    38
    depends on OBSOLETE
yann@448
    39
yann@448
    40
config CC_V_4_0_1
yann@448
    41
    bool
yann@448
    42
    prompt "4.0.1 (OBSOLETE)"
yann@448
    43
    depends on OBSOLETE
yann@448
    44
yann@448
    45
config CC_V_4_0_2
yann@448
    46
    bool
yann@448
    47
    prompt "4.0.2 (OBSOLETE)"
yann@448
    48
    depends on OBSOLETE
yann@448
    49
yann@448
    50
config CC_V_4_0_3
yann@448
    51
    bool
yann@448
    52
    prompt "4.0.3 (OBSOLETE)"
yann@448
    53
    depends on OBSOLETE
yann@448
    54
yann@448
    55
config CC_V_4_0_4
yann@448
    56
    bool
yann@448
    57
    prompt "4.0.4"
yann@448
    58
yann@448
    59
config CC_V_4_1_0
yann@448
    60
    bool
yann@448
    61
    prompt "4.1.0 (OBSOLETE)"
yann@448
    62
    depends on OBSOLETE
yann@448
    63
yann@448
    64
config CC_V_4_1_1
yann@448
    65
    bool
yann@448
    66
    prompt "4.1.1 (OBSOLETE)"
yann@448
    67
    depends on OBSOLETE
yann@448
    68
yann@448
    69
config CC_V_4_1_2
yann@448
    70
    bool
yann@448
    71
    prompt "4.1.2"
yann@448
    72
yann@448
    73
config CC_V_4_2_0
yann@448
    74
    bool
yann@448
    75
    prompt "4.2.0"
yann@448
    76
yann@448
    77
config CC_V_4_2_1
yann@448
    78
    bool
yann@448
    79
    prompt "4.2.1"
yann@448
    80
yann@448
    81
config CC_V_4_2_2
yann@448
    82
    bool
yann@448
    83
    prompt "4.2.2"
yann@448
    84
yann@448
    85
config CC_V_4_2_3
yann@448
    86
    bool
yann@551
    87
    prompt "4.2.3"
yann@448
    88
yann@687
    89
config CC_V_4_2_4
yann@687
    90
    bool
yann@687
    91
    prompt "4.2.4"
yann@687
    92
yann@550
    93
config CC_V_4_3_0
yann@550
    94
    bool
yann@550
    95
    prompt "4.3.0 (EXPERIMENTAL)"
yann@550
    96
    depends on EXPERIMENTAL
yann@550
    97
    select CC_GCC_4_3_or_later
yann@550
    98
yann@550
    99
config CC_V_4_3_1
yann@550
   100
    bool
yann@794
   101
    prompt "4.3.1"
yann@550
   102
    select CC_GCC_4_3_or_later
yann@550
   103
yann@874
   104
config CC_V_4_3_2
yann@874
   105
    bool
yann@881
   106
    prompt "4.3.2"
yann@874
   107
    select CC_GCC_4_3_or_later
yann@874
   108
yann@1162
   109
config CC_V_4_3_3
yann@1162
   110
    bool
yann@1162
   111
    prompt "4.3.3 (EXPERIMENTAL)"
yann@1162
   112
    depends on EXPERIMENTAL
yann@1162
   113
    select CC_GCC_4_3_or_later
yann@1162
   114
yann@1268
   115
config CC_V_4_4_0
yann@1268
   116
    bool
yann@1268
   117
    prompt "4.4.0 snapshot"
yann@1268
   118
    depends on EXPERIMENTAL
yann@1268
   119
    select CC_GCC_4_3_or_later
yann@1268
   120
    select CC_GCC_4_4_snapshot
yann@1268
   121
yann@448
   122
# CT_INSERT_VERSION_ABOVE
yann@448
   123
# Don't remove above line!
yann@448
   124
endchoice
yann@448
   125
yann@1268
   126
config CC_GCC_4_3_or_later
yann@1268
   127
    bool
yann@1268
   128
    default n
yann@1268
   129
    select GMP_MPFR
yann@1268
   130
yann@1268
   131
config CC_GCC_4_4_snapshot
yann@1268
   132
    bool
yann@1268
   133
    default n
yann@1268
   134
yann@1268
   135
config CC_GCC_4_4_snapshot_date
yann@1268
   136
    string
yann@1268
   137
    prompt "Snapshot date"
yann@1268
   138
    depends on CC_GCC_4_4_snapshot
yann@1268
   139
    help
yann@1268
   140
      Enter the snapshot date in the form YYYYMMDD.
yann@1268
   141
      Snapshots are made every friday, at around 22:30 GMT+1,
yann@1268
   142
      so look at your calendar to find a suitable date.
yann@1268
   143
      
yann@1268
   144
      Also, know that crosstool-NG does *not* carry any patch
yann@1268
   145
      for the gcc-4.4 snapshots. So, you may have to answer
yann@1268
   146
      'y' to CUSTOM_PATCH, and set CUSTOM_PATCH_DIR adequately.
yann@1268
   147
yann@448
   148
config CC_VERSION
yann@448
   149
    string
yann@448
   150
    default "3.2.3" if CC_V_3_2_3
yann@448
   151
    default "3.3.6" if CC_V_3_3_6
yann@448
   152
    default "3.4.6" if CC_V_3_4_6
yann@448
   153
    default "4.0.0" if CC_V_4_0_0
yann@448
   154
    default "4.0.1" if CC_V_4_0_1
yann@448
   155
    default "4.0.2" if CC_V_4_0_2
yann@448
   156
    default "4.0.3" if CC_V_4_0_3
yann@448
   157
    default "4.0.4" if CC_V_4_0_4
yann@448
   158
    default "4.1.0" if CC_V_4_1_0
yann@448
   159
    default "4.1.1" if CC_V_4_1_1
yann@448
   160
    default "4.1.2" if CC_V_4_1_2
yann@448
   161
    default "4.2.0" if CC_V_4_2_0
yann@448
   162
    default "4.2.1" if CC_V_4_2_1
yann@448
   163
    default "4.2.2" if CC_V_4_2_2
yann@448
   164
    default "4.2.3" if CC_V_4_2_3
yann@687
   165
    default "4.2.4" if CC_V_4_2_4
yann@550
   166
    default "4.3.0" if CC_V_4_3_0
yann@550
   167
    default "4.3.1" if CC_V_4_3_1
yann@874
   168
    default "4.3.2" if CC_V_4_3_2
yann@1162
   169
    default "4.3.3" if CC_V_4_3_3
yann@1268
   170
    default "4.4-" if CC_V_4_4_0
yann@448
   171
# CT_INSERT_VERSION_STRING_ABOVE
yann@448
   172
# Don't remove above line!
yann@448
   173
yann@448
   174
config CC_CXA_ATEXIT
yann@448
   175
    bool
yann@765
   176
    prompt "Use __cxa_atexit"
yann@765
   177
    default y
yann@850
   178
    depends on ! BARE_METAL
yann@448
   179
    help
yann@448
   180
      If you get the missing symbol "__cxa_atexit" when building C++ programs,
yann@448
   181
      you might want to try disabling this option.
yann@448
   182
yann@765
   183
choice
yann@765
   184
    bool
yann@765
   185
    prompt "Use sjlj for exceptions"
yann@765
   186
    default CC_SJLJ_EXCEPTIONS_CONFIGURE
yann@850
   187
    depends on ! BARE_METAL
yann@765
   188
yann@765
   189
# This config option is used nowhere in the code on purpose.
yann@765
   190
# It only serves as a choice entry to force neither using nor not using sjlj
yann@765
   191
config CC_SJLJ_EXCEPTIONS_CONFIGURE
yann@765
   192
    bool
yann@765
   193
    prompt "Let configure decide"
yann@765
   194
    help
yann@765
   195
      Let configure decide if setjmp/longjmp should be used to handle
yann@765
   196
      exceptions.
yann@765
   197
      
yann@765
   198
      Choose that if you trust configure to detect the correct settings.
yann@765
   199
      This is the default choice.
yann@765
   200
yann@765
   201
config CC_SJLJ_EXCEPTIONS_USE
yann@765
   202
    bool
yann@765
   203
    prompt "Force using sjlj"
yann@765
   204
    help
yann@765
   205
      Do use setjmp/longjmp for exceptions.
yann@765
   206
      This is gcc's --enable-sjlj-exceptions configure switch.
yann@765
   207
      
yann@765
   208
      Choose that if you want to use setjmp/longjmp to handle exceptions.
yann@765
   209
yann@765
   210
config CC_SJLJ_EXCEPTIONS_DONT_USE
yann@765
   211
    bool
yann@765
   212
    prompt "Force not using sjlj"
yann@765
   213
    help
yann@765
   214
      Do not use setjmp/longjmp for exceptions.
yann@765
   215
      This is gcc's --disable-sjlj-exceptions configure switch.
yann@765
   216
      
yann@765
   217
      Choose that if you want to not use setjmp/longjmp to handle exceptions.
yann@765
   218
yann@765
   219
endchoice
yann@765
   220
yann@448
   221
config CC_CORE_EXTRA_CONFIG
yann@448
   222
    string
yann@448
   223
    prompt "Core gcc extra config"
yann@448
   224
    default ""
yann@448
   225
    help
yann@448
   226
      Extra flags to pass onto ./configure when configuring the core gcc.
yann@448
   227
      
yann@448
   228
      The core gcc is a stripped down, C-only compiler needed to build
yann@448
   229
      the C library. Kinda bootstrap gcc, if you wish.
yann@448
   230
yann@448
   231
config CC_EXTRA_CONFIG
yann@448
   232
    string
yann@448
   233
    prompt "gcc extra config"
yann@448
   234
    default ""
yann@850
   235
    depends on ! BARE_METAL
yann@448
   236
    help
yann@448
   237
      Extra flags to pass onto ./configure when configuring gcc.
yann@466
   238
yann@545
   239
config CC_PKGVERSION
yann@545
   240
    string
yann@545
   241
    prompt "gcc ID string"
yann@545
   242
    depends on CC_GCC_4_3_or_later
yann@545
   243
    default "crosstool-NG-${CT_VERSION}"
yann@545
   244
    help
yann@545
   245
      Specify a string that identifies your package. You may wish to include
yann@545
   246
      a build number or build date. This version string will be included in
yann@545
   247
      the output of gcc --version.
yann@545
   248
yann@545
   249
      This is passed to the configure flag --with-pkgversion.
yann@545
   250
yann@545
   251
config CC_BUGURL
yann@545
   252
    string
yann@545
   253
    prompt "gcc bug URL"
yann@545
   254
    depends on CC_GCC_4_3_or_later
yann@545
   255
    default ""
yann@545
   256
    help
yann@545
   257
      Specify the URL that users should visit if they wish to report a bug.
yann@1129
   258
yann@1129
   259
config CC_LANG_JAVA_USE_ECJ
yann@1129
   260
    bool
yann@1129
   261
    default y
yann@1129
   262
    depends on CC_LANG_JAVA
yann@1129
   263
    depends on CC_GCC_4_3_or_later