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(-)
5 default "none" if BARE_METAL
6 default "glibc" if LIBC_GLIBC
7 default "eglibc" if LIBC_EGLIBC
8 default "uClibc" if LIBC_UCLIBC
16 prompt "C-library to use:"
22 select LIBC_SUPPORT_NPTL
23 select LIBC_SUPPORT_LINUXTHREADS
26 source config/libc/glibc.in
31 prompt "eglibc (EXPERIMENTAL)"
32 select LIBC_SUPPORT_NPTL
33 select LIBC_SUPPORT_LINUXTHREADS
34 depends on EXPERIMENTAL
36 EGLIBC (Embedded GLIBC) is a variant of the standard GNU GLIBC
37 that is designed to work well on embedded systems. EGLIBC strives
38 to be source and binary compatible with GLIBC. Its goals include
39 a reduced footprint, configurable components, and improved
40 cross-compilation support. EGLIBC also includes some embedded ports
41 (such as e500/spe) that are normally separate add-ons of GLIBC.
44 source config/libc/eglibc.in
50 select LIBC_SUPPORT_LINUXTHREADS
53 source config/libc/uClibc.in
61 config LIBC_SUPPORT_NPTL
65 config LIBC_SUPPORT_LINUXTHREADS
71 prompt "Threading implementation to use:"
72 default THREADS_NPTL if LIBC_SUPPORT_NPTL
73 default THREADS_LINUXTHREADS if LIBC_SUPPORT_LINUXTHREADS && ! LIBC_SUPPORT_NPTL
74 default THREADS_NONE if ! LIBC_SUPPORT_LINUXTHREADS && ! LIBC_SUPPORT_NPTL
79 depends on LIBC_SUPPORT_NPTL
81 config THREADS_LINUXTHREADS
84 depends on LIBC_SUPPORT_LINUXTHREADS
94 default "nptl" if THREADS_NPTL
95 default "linuxthreads" if THREADS_LINUXTHREADS
96 default "none" if THREADS_NONE
100 Enter the date of the snapshot you want to use in the form: YYYYMMDD
101 where YYYY is the 4-digit year, MM the 2-digit month and DD the 2-digit
105 - glibc has snapshots done every monday, and only the last ten are kept.
106 - uClibc has daily snapshots, and only the last 30-or-so are kept.
108 So if you want to be able to re-build your toolchain later, you will
109 have to save your C library tarball by yourself.