config/cc/gcc.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Sep 14 16:21:07 2008 +0000 (2008-09-14)
changeset 850 ef8549b58b6f
parent 794 74bb87c3fd79
child 874 4c2030673163
permissions -rw-r--r--
Introduce a new EXPERIMENTAL feature: BARE_METAL.
This should ultimately llow to build bare-metal compilers, for targets that have no kernel and no C library.
Move the C library build script to their own sub-directory; introduce an empty build script for bare-metal.
Move the compiler build script to its own sub-directory.
Move the kernel build script to its own sub-directory; introduce an empty build script for bare-metal.
Update the ARM target tuples to enable bare-metal targets.
Add two ARM bare-metal samples.
Add latest Linux kernel versions.

/trunk/scripts/build/kernel/none.sh | 77 6 71 0 +----
/trunk/scripts/build/cc/gcc.sh | 58 41 17 0 ++-
/trunk/scripts/build/libc/none.sh | 513 9 504 0 +-----------------------------
/trunk/scripts/crosstool.sh | 17 9 8 0 +
/trunk/scripts/functions | 6 4 2 0 +
/trunk/scripts/showSamples.sh | 6 3 3 0
/trunk/samples/arm-unknown-elf/crosstool.config | 225 225 0 0 +++++++++++++
/trunk/samples/arm-unknown-eabi/crosstool.config | 223 223 0 0 +++++++++++++
/trunk/config/kernel/linux_headers_install.in | 64 27 37 0 ++--
/trunk/config/kernel.in | 9 8 1 0 +
/trunk/config/toolchain.in | 1 1 0 0 +
/trunk/config/cc/gcc.in | 3 3 0 0 +
/trunk/config/debug/dmalloc.in | 1 1 0 0 +
/trunk/config/debug/gdb.in | 4 3 1 0 +
/trunk/config/debug/strace.in | 1 1 0 0 +
/trunk/config/debug/duma.in | 1 1 0 0 +
/trunk/config/cc.in | 8 8 0 0 +
/trunk/config/target.in | 13 13 0 0 +
/trunk/config/binutils.in | 1 1 0 0 +
/trunk/config/gmp_mpfr.in | 1 1 0 0 +
/trunk/config/libc.in | 17 11 6 0 +
/trunk/arch/arm/functions | 3 1 2 0 -
22 files changed, 600 insertions(+), 652 deletions(-)
yann@448
     1
# Compiler options
yann@448
     2
yann@448
     3
choice
yann@448
     4
    bool
yann@448
     5
    prompt "gcc version"
yann@448
     6
yann@448
     7
config CC_V_2_95_3
yann@448
     8
    bool
yann@448
     9
    prompt "2.95.3 (OBSOLETE)"
yann@448
    10
    depends on OBSOLETE
yann@448
    11
yann@448
    12
config CC_V_3_2_3
yann@448
    13
    bool
yann@448
    14
    prompt "3.2.3 (OBSOLETE)"
yann@448
    15
    depends on OBSOLETE
yann@448
    16
yann@448
    17
config CC_V_3_3_6
yann@448
    18
    bool
yann@448
    19
    prompt "3.3.6 (OBSOLETE)"
yann@448
    20
    depends on OBSOLETE
yann@448
    21
yann@448
    22
config CC_V_3_4_6
yann@448
    23
    bool
yann@448
    24
    prompt "3.4.6 (OBSOLETE)"
yann@448
    25
    depends on OBSOLETE
yann@448
    26
yann@448
    27
config CC_V_4_0_0
yann@448
    28
    bool
yann@448
    29
    prompt "4.0.0 (OBSOLETE)"
yann@448
    30
    depends on OBSOLETE
yann@448
    31
yann@448
    32
config CC_V_4_0_1
yann@448
    33
    bool
yann@448
    34
    prompt "4.0.1 (OBSOLETE)"
yann@448
    35
    depends on OBSOLETE
yann@448
    36
yann@448
    37
config CC_V_4_0_2
yann@448
    38
    bool
yann@448
    39
    prompt "4.0.2 (OBSOLETE)"
yann@448
    40
    depends on OBSOLETE
yann@448
    41
yann@448
    42
config CC_V_4_0_3
yann@448
    43
    bool
yann@448
    44
    prompt "4.0.3 (OBSOLETE)"
yann@448
    45
    depends on OBSOLETE
yann@448
    46
yann@448
    47
config CC_V_4_0_4
yann@448
    48
    bool
yann@448
    49
    prompt "4.0.4"
yann@448
    50
yann@448
    51
config CC_V_4_1_0
yann@448
    52
    bool
yann@448
    53
    prompt "4.1.0 (OBSOLETE)"
yann@448
    54
    depends on OBSOLETE
yann@448
    55
yann@448
    56
config CC_V_4_1_1
yann@448
    57
    bool
yann@448
    58
    prompt "4.1.1 (OBSOLETE)"
yann@448
    59
    depends on OBSOLETE
yann@448
    60
yann@448
    61
config CC_V_4_1_2
yann@448
    62
    bool
yann@448
    63
    prompt "4.1.2"
yann@448
    64
yann@448
    65
config CC_V_4_2_0
yann@448
    66
    bool
yann@448
    67
    prompt "4.2.0"
yann@448
    68
yann@448
    69
config CC_V_4_2_1
yann@448
    70
    bool
yann@448
    71
    prompt "4.2.1"
yann@448
    72
yann@448
    73
config CC_V_4_2_2
yann@448
    74
    bool
yann@448
    75
    prompt "4.2.2"
yann@448
    76
yann@448
    77
config CC_V_4_2_3
yann@448
    78
    bool
yann@551
    79
    prompt "4.2.3"
yann@448
    80
yann@687
    81
config CC_V_4_2_4
yann@687
    82
    bool
yann@687
    83
    prompt "4.2.4"
yann@687
    84
yann@550
    85
config CC_V_4_3_0
yann@550
    86
    bool
yann@550
    87
    prompt "4.3.0 (EXPERIMENTAL)"
yann@550
    88
    depends on EXPERIMENTAL
yann@550
    89
    select CC_GCC_4_3_or_later
yann@550
    90
yann@550
    91
config CC_V_4_3_1
yann@550
    92
    bool
yann@794
    93
    prompt "4.3.1"
yann@550
    94
    select CC_GCC_4_3_or_later
yann@550
    95
yann@448
    96
# CT_INSERT_VERSION_ABOVE
yann@448
    97
# Don't remove above line!
yann@448
    98
endchoice
yann@448
    99
yann@448
   100
config CC_VERSION
yann@448
   101
    string
yann@448
   102
    default "2.95.3" if CC_V_2_95_3
yann@448
   103
    default "3.2.3" if CC_V_3_2_3
yann@448
   104
    default "3.3.6" if CC_V_3_3_6
yann@448
   105
    default "3.4.6" if CC_V_3_4_6
yann@448
   106
    default "4.0.0" if CC_V_4_0_0
yann@448
   107
    default "4.0.1" if CC_V_4_0_1
yann@448
   108
    default "4.0.2" if CC_V_4_0_2
yann@448
   109
    default "4.0.3" if CC_V_4_0_3
yann@448
   110
    default "4.0.4" if CC_V_4_0_4
yann@448
   111
    default "4.1.0" if CC_V_4_1_0
yann@448
   112
    default "4.1.1" if CC_V_4_1_1
yann@448
   113
    default "4.1.2" if CC_V_4_1_2
yann@448
   114
    default "4.2.0" if CC_V_4_2_0
yann@448
   115
    default "4.2.1" if CC_V_4_2_1
yann@448
   116
    default "4.2.2" if CC_V_4_2_2
yann@448
   117
    default "4.2.3" if CC_V_4_2_3
yann@687
   118
    default "4.2.4" if CC_V_4_2_4
yann@550
   119
    default "4.3.0" if CC_V_4_3_0
yann@550
   120
    default "4.3.1" if CC_V_4_3_1
yann@448
   121
# CT_INSERT_VERSION_STRING_ABOVE
yann@448
   122
# Don't remove above line!
yann@448
   123
yann@545
   124
config CC_GCC_4_3_or_later
yann@545
   125
    bool
yann@545
   126
    default n
yann@602
   127
    select GMP_MPFR
yann@545
   128
yann@448
   129
config CC_CXA_ATEXIT
yann@448
   130
    bool
yann@765
   131
    prompt "Use __cxa_atexit"
yann@765
   132
    default y
yann@850
   133
    depends on ! BARE_METAL
yann@448
   134
    help
yann@448
   135
      If you get the missing symbol "__cxa_atexit" when building C++ programs,
yann@448
   136
      you might want to try disabling this option.
yann@448
   137
yann@765
   138
choice
yann@765
   139
    bool
yann@765
   140
    prompt "Use sjlj for exceptions"
yann@765
   141
    default CC_SJLJ_EXCEPTIONS_CONFIGURE
yann@850
   142
    depends on ! BARE_METAL
yann@765
   143
yann@765
   144
# This config option is used nowhere in the code on purpose.
yann@765
   145
# It only serves as a choice entry to force neither using nor not using sjlj
yann@765
   146
config CC_SJLJ_EXCEPTIONS_CONFIGURE
yann@765
   147
    bool
yann@765
   148
    prompt "Let configure decide"
yann@765
   149
    help
yann@765
   150
      Let configure decide if setjmp/longjmp should be used to handle
yann@765
   151
      exceptions.
yann@765
   152
      
yann@765
   153
      Choose that if you trust configure to detect the correct settings.
yann@765
   154
      This is the default choice.
yann@765
   155
yann@765
   156
config CC_SJLJ_EXCEPTIONS_USE
yann@765
   157
    bool
yann@765
   158
    prompt "Force using sjlj"
yann@765
   159
    help
yann@765
   160
      Do use setjmp/longjmp for exceptions.
yann@765
   161
      This is gcc's --enable-sjlj-exceptions configure switch.
yann@765
   162
      
yann@765
   163
      Choose that if you want to use setjmp/longjmp to handle exceptions.
yann@765
   164
yann@765
   165
config CC_SJLJ_EXCEPTIONS_DONT_USE
yann@765
   166
    bool
yann@765
   167
    prompt "Force not using sjlj"
yann@765
   168
    help
yann@765
   169
      Do not use setjmp/longjmp for exceptions.
yann@765
   170
      This is gcc's --disable-sjlj-exceptions configure switch.
yann@765
   171
      
yann@765
   172
      Choose that if you want to not use setjmp/longjmp to handle exceptions.
yann@765
   173
yann@765
   174
endchoice
yann@765
   175
yann@448
   176
config CC_CORE_EXTRA_CONFIG
yann@448
   177
    string
yann@448
   178
    prompt "Core gcc extra config"
yann@448
   179
    default ""
yann@448
   180
    help
yann@448
   181
      Extra flags to pass onto ./configure when configuring the core gcc.
yann@448
   182
      
yann@448
   183
      The core gcc is a stripped down, C-only compiler needed to build
yann@448
   184
      the C library. Kinda bootstrap gcc, if you wish.
yann@448
   185
yann@448
   186
config CC_EXTRA_CONFIG
yann@448
   187
    string
yann@448
   188
    prompt "gcc extra config"
yann@448
   189
    default ""
yann@850
   190
    depends on ! BARE_METAL
yann@448
   191
    help
yann@448
   192
      Extra flags to pass onto ./configure when configuring gcc.
yann@466
   193
yann@545
   194
config CC_PKGVERSION
yann@545
   195
    string
yann@545
   196
    prompt "gcc ID string"
yann@545
   197
    depends on CC_GCC_4_3_or_later
yann@545
   198
    default "crosstool-NG-${CT_VERSION}"
yann@545
   199
    help
yann@545
   200
      Specify a string that identifies your package. You may wish to include
yann@545
   201
      a build number or build date. This version string will be included in
yann@545
   202
      the output of gcc --version.
yann@545
   203
yann@545
   204
      This is passed to the configure flag --with-pkgversion.
yann@545
   205
yann@545
   206
config CC_BUGURL
yann@545
   207
    string
yann@545
   208
    prompt "gcc bug URL"
yann@545
   209
    depends on CC_GCC_4_3_or_later
yann@545
   210
    default ""
yann@545
   211
    help
yann@545
   212
      Specify the URL that users should visit if they wish to report a bug.