diff options
author | Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> | 2008-09-14 16:21:07 +0000 |
---|---|---|
committer | Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> | 2008-09-14 16:21:07 +0000 |
commit | 799672a6414c7056d24213041bb3f0a12e9a9a66 (patch) | |
tree | cc77f2de5f5eff2d68c091b929145d5d07b0b9f9 /config | |
parent | 21418e80d0c225705aace24992845ff20276e14e (diff) | |
download | crosstool-ng-799672a6414c7056d24213041bb3f0a12e9a9a66.tar.gz crosstool-ng-799672a6414c7056d24213041bb3f0a12e9a9a66.tar.bz2 crosstool-ng-799672a6414c7056d24213041bb3f0a12e9a9a66.zip |
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(-)
Diffstat (limited to 'config')
-rw-r--r-- | config/binutils.in | 1 | ||||
-rw-r--r-- | config/cc.in | 8 | ||||
-rw-r--r-- | config/cc/gcc.in | 3 | ||||
-rw-r--r-- | config/debug/dmalloc.in | 1 | ||||
-rw-r--r-- | config/debug/duma.in | 1 | ||||
-rw-r--r-- | config/debug/gdb.in | 4 | ||||
-rw-r--r-- | config/debug/strace.in | 1 | ||||
-rw-r--r-- | config/gmp_mpfr.in | 1 | ||||
-rw-r--r-- | config/kernel.in | 9 | ||||
-rw-r--r-- | config/kernel/linux_headers_install.in | 64 | ||||
-rw-r--r-- | config/libc.in | 17 | ||||
-rw-r--r-- | config/target.in | 13 | ||||
-rw-r--r-- | config/toolchain.in | 1 |
13 files changed, 79 insertions, 45 deletions
diff --git a/config/binutils.in b/config/binutils.in index a83b50c7..a3eb211f 100644 --- a/config/binutils.in +++ b/config/binutils.in @@ -79,6 +79,7 @@ config BINUTILS_EXTRA_CONFIG config BINUTILS_FOR_TARGET bool prompt "binutils libraries for the target" + depends on ! BARE_METAL default n help Some utilities may need binutils libraries to be available on diff --git a/config/cc.in b/config/cc.in index 1ad692eb..a88832ea 100644 --- a/config/cc.in +++ b/config/cc.in @@ -53,6 +53,8 @@ config CC_SUPPORT_OBJC config CC_SUPPORT_OBJCXX bool +if ! BARE_METAL + comment "Additional supported languages:" config CC_LANG_CXX @@ -136,4 +138,10 @@ config CC_LANG_OTHERS Eg. gcc-4.1+ has a toy programming language, treelang. As it is not usefull in real life, it is not available in the selection above. +endif # ! BARE_METAL + +if BARE_METAL +comment "Only C language supported on bare metal" +endif # BARE_METAL + endmenu diff --git a/config/cc/gcc.in b/config/cc/gcc.in index 02d1879f..64d27cb3 100644 --- a/config/cc/gcc.in +++ b/config/cc/gcc.in @@ -130,6 +130,7 @@ config CC_CXA_ATEXIT bool prompt "Use __cxa_atexit" default y + depends on ! BARE_METAL help If you get the missing symbol "__cxa_atexit" when building C++ programs, you might want to try disabling this option. @@ -138,6 +139,7 @@ choice bool prompt "Use sjlj for exceptions" default CC_SJLJ_EXCEPTIONS_CONFIGURE + depends on ! BARE_METAL # This config option is used nowhere in the code on purpose. # It only serves as a choice entry to force neither using nor not using sjlj @@ -185,6 +187,7 @@ config CC_EXTRA_CONFIG string prompt "gcc extra config" default "" + depends on ! BARE_METAL help Extra flags to pass onto ./configure when configuring gcc. diff --git a/config/debug/dmalloc.in b/config/debug/dmalloc.in index 8a53c71a..692c2292 100644 --- a/config/debug/dmalloc.in +++ b/config/debug/dmalloc.in @@ -4,6 +4,7 @@ menuconfig DMALLOC bool prompt "dmalloc" default n + depends on ! BARE_METAL if DMALLOC diff --git a/config/debug/duma.in b/config/debug/duma.in index 16f3d2a3..5de4e7c0 100644 --- a/config/debug/duma.in +++ b/config/debug/duma.in @@ -4,6 +4,7 @@ menuconfig DUMA bool prompt "D.U.M.A." default n + depends on ! BARE_METAL help D.U.M.A. - Detect Unintended Memory Access A memory bound checker, with additional features. diff --git a/config/debug/gdb.in b/config/debug/gdb.in index 43239ac2..b65a71b2 100644 --- a/config/debug/gdb.in +++ b/config/debug/gdb.in @@ -13,7 +13,7 @@ config GDB_CROSS bool prompt "Cross-gdb" default y - select GDB_GDBSERVER + select GDB_GDBSERVER if ! BARE_METAL help Build and install a cross-gdb for the target, to run on host. @@ -45,6 +45,7 @@ config GDB_NATIVE bool prompt "Native gdb" default n + depends on ! BARE_METAL help Build and install a native gdb for the target, to run on the target. @@ -78,6 +79,7 @@ config GDB_GDBSERVER bool prompt "gdbserver" default n + depends on ! BARE_METAL help Build and install a gdbserver for the target, to run on the target. diff --git a/config/debug/strace.in b/config/debug/strace.in index 234556ae..055bb222 100644 --- a/config/debug/strace.in +++ b/config/debug/strace.in @@ -4,6 +4,7 @@ menuconfig STRACE bool prompt "strace" default n + depends on ! BARE_METAL if STRACE diff --git a/config/gmp_mpfr.in b/config/gmp_mpfr.in index c384ecc5..02afb769 100644 --- a/config/gmp_mpfr.in +++ b/config/gmp_mpfr.in @@ -20,6 +20,7 @@ config GMP_MPFR_TARGET bool prompt "Build libraries for the target" depends on GMP_MPFR + depends on ! BARE_METAL default n help Also build libraries for the target. This can be usefull if you want diff --git a/config/kernel.in b/config/kernel.in index 607917de..f46a937f 100644 --- a/config/kernel.in +++ b/config/kernel.in @@ -1,11 +1,16 @@ # Kernel options -menu "Kernel" + config KERNEL string + default "none" if BARE_METAL default "linux" if KERNEL_LINUX +if ! BARE_METAL + +menu "Kernel" + choice bool prompt "Target OS" @@ -27,3 +32,5 @@ source config/kernel/linux.in endif endmenu + +endif # ! BARE_METAL diff --git a/config/kernel/linux_headers_install.in b/config/kernel/linux_headers_install.in index db7af991..fc3df3fb 100644 --- a/config/kernel/linux_headers_install.in +++ b/config/kernel/linux_headers_install.in @@ -32,44 +32,10 @@ config KERNEL_INSTALL_V_2_6_23_17 prompt "2.6.23.17 (OBSOLETE)" depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE -config KERNEL_INSTALL_V_2_6_24 - bool - prompt "2.6.24" - -config KERNEL_INSTALL_V_2_6_24_1 - bool - prompt "2.6.24.1" - depends on KERNEL_VERSION_SEE_EXTRAVERSION - -config KERNEL_INSTALL_V_2_6_24_2 - bool - prompt "2.6.24.2" - depends on KERNEL_VERSION_SEE_EXTRAVERSION - -config KERNEL_INSTALL_V_2_6_24_3 - bool - prompt "2.6.24.3" - depends on KERNEL_VERSION_SEE_EXTRAVERSION - -config KERNEL_INSTALL_V_2_6_24_4 - bool - prompt "2.6.24.4" - depends on KERNEL_VERSION_SEE_EXTRAVERSION - -config KERNEL_INSTALL_V_2_6_24_5 - bool - prompt "2.6.24.5" - depends on KERNEL_VERSION_SEE_EXTRAVERSION - -config KERNEL_INSTALL_V_2_6_24_6 - bool - prompt "2.6.24.6" - depends on KERNEL_VERSION_SEE_EXTRAVERSION - config KERNEL_INSTALL_V_2_6_24_7 bool - prompt "2.6.24.7" - depends on KERNEL_VERSION_SEE_EXTRAVERSION + prompt "2.6.24.7 (OBSOLETE)" + depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE config KERNEL_INSTALL_V_2_6_25 bool @@ -150,6 +116,16 @@ config KERNEL_INSTALL_V_2_6_25_15 prompt "2.6.25.15" depends on KERNEL_VERSION_SEE_EXTRAVERSION +config KERNEL_INSTALL_V_2_6_25_16 + bool + prompt "2.6.25.16" + depends on KERNEL_VERSION_SEE_EXTRAVERSION + +config KERNEL_INSTALL_V_2_6_25_17 + bool + prompt "2.6.25.17" + depends on KERNEL_VERSION_SEE_EXTRAVERSION + config KERNEL_INSTALL_V_2_6_26 bool prompt "2.6.26" @@ -169,6 +145,16 @@ config KERNEL_INSTALL_V_2_6_26_3 prompt "2.6.26.3" depends on KERNEL_VERSION_SEE_EXTRAVERSION +config KERNEL_INSTALL_V_2_6_26_4 + bool + prompt "2.6.26.4" + depends on KERNEL_VERSION_SEE_EXTRAVERSION + +config KERNEL_INSTALL_V_2_6_26_5 + bool + prompt "2.6.26.5" + depends on KERNEL_VERSION_SEE_EXTRAVERSION + # CT_INSERT_VERSION_ABOVE # Don't remove above line! endchoice @@ -204,11 +190,15 @@ config KERNEL_VERSION default "2.6.25.12" if KERNEL_INSTALL_V_2_6_25_12 default "2.6.25.13" if KERNEL_INSTALL_V_2_6_25_13 default "2.6.25.14" if KERNEL_INSTALL_V_2_6_25_14 - default "2.6.25.15" if KERNEL_INSTALL_V_2_6_25_15 + default "2.6.25.14" if KERNEL_INSTALL_V_2_6_25_15 + default "2.6.25.15" if KERNEL_INSTALL_V_2_6_25_16 + default "2.6.25.15" if KERNEL_INSTALL_V_2_6_25_17 default "2.6.26" if KERNEL_INSTALL_V_2_6_26 default "2.6.26.1" if KERNEL_INSTALL_V_2_6_26_1 default "2.6.26.2" if KERNEL_INSTALL_V_2_6_26_2 default "2.6.26.3" if KERNEL_INSTALL_V_2_6_26_3 + default "2.6.26.4" if KERNEL_INSTALL_V_2_6_26_4 + default "2.6.26.5" if KERNEL_INSTALL_V_2_6_26_5 # CT_INSERT_VERSION_STRING_ABOVE # Don't remove above line! diff --git a/config/libc.in b/config/libc.in index a8cf28ce..d5647520 100644 --- a/config/libc.in +++ b/config/libc.in @@ -1,5 +1,14 @@ # C library options +config LIBC + string + default "none" if BARE_METAL + default "glibc" if LIBC_GLIBC + default "eglibc" if LIBC_EGLIBC + default "uClibc" if LIBC_UCLIBC + +if ! BARE_METAL + menu "C-library" choice @@ -49,12 +58,6 @@ endchoice config LIBC_VERSION string -config LIBC - string - default "glibc" if LIBC_GLIBC - default "eglibc" if LIBC_EGLIBC - default "uClibc" if LIBC_UCLIBC - config LIBC_SUPPORT_NPTL bool default n @@ -106,3 +109,5 @@ config LIBC_VERSION have to save your C library tarball by yourself. endmenu + +endif # ! BARE_METAL diff --git a/config/target.in b/config/target.in index b5c7af12..bd7b725b 100644 --- a/config/target.in +++ b/config/target.in @@ -28,6 +28,19 @@ config TARGET_LDFLAGS comment "General target options" +config BARE_METAL + bool + prompt "Bare metal (EXPERIMENTAL)" + default n + depends on EXPERIMENTAL + help + Say 'y' here if you want a simple C compiler with no C library. + + You probably want to say 'y' here if you plan to use your compiler + to build only kernels or bootloaders + + 'Bare metal' also refer to those programs that run without any kernel. + choice bool prompt "Target architecture:" diff --git a/config/toolchain.in b/config/toolchain.in index db4f1526..4078a29a 100644 --- a/config/toolchain.in +++ b/config/toolchain.in @@ -15,6 +15,7 @@ config USE_SYSROOT config SHARED_LIBS bool prompt "Build shared libraries" + depends on ! BARE_METAL default y help Say 'y' here, unless you don't want shared libraries. |