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