# HG changeset patch # User "Yann E. MORIN" # Date 1256158299 -7200 # Node ID 11460fc587e68005702012927c9e81e942b1249c # Parent b51724d5250de6adc1251eb728442ff8e2ee34dd libc/newlib: allow using newlib with archs other than avr32 diff -r b51724d5250d -r 11460fc587e6 config/libc.in --- a/config/libc.in Mon Oct 26 18:47:11 2009 +0100 +++ b/config/libc.in Wed Oct 21 22:51:39 2009 +0200 @@ -4,8 +4,6 @@ config LIBC string - default "newlib" if BARE_METAL && ARCH_avr32 && EXPERIMENTAL - default "none" if BARE_METAL config LIBC_VERSION string @@ -23,8 +21,6 @@ source config.gen/libc.in -comment "Common C library options" - config LIBC_SUPPORT_NPTL bool default n @@ -37,7 +33,12 @@ string default "nptl" if THREADS_NPTL default "linuxthreads" if THREADS_LINUXTHREADS - default "none" if THREADS_NONE + default "none" if THREADS_NONE || LIBC_none +# No C library, no threads! + +if ! LIBC_none + +comment "Common C library options" choice bool @@ -62,4 +63,6 @@ endchoice +endif # ! LIBC_none + endmenu diff -r b51724d5250d -r 11460fc587e6 config/libc/newlib.in --- a/config/libc/newlib.in Mon Oct 26 18:47:11 2009 +0100 +++ b/config/libc/newlib.in Wed Oct 21 22:51:39 2009 +0200 @@ -1,14 +1,14 @@ # newlib options -# depends on EXPERIMENTAL +# depends on EXPERIMENTAL && BARE_METAL config LIBC_newlib help - Newlib is a C library intended for use on embedded systems. It is a - conglomeration of several library parts, all under free software - licenses that make them easily usable on embedded products. Newlib - is only available in source form. It can be compiled for a wide - array of processors, and will usually work on any architecture with - the addition of a few low-level routines. + Newlib is a C library intended for use on embedded systems. It is a + conglomeration of several library parts, all under free software + licenses that make them easily usable on embedded products. Newlib + is only available in source form. It can be compiled for a wide + array of processors, and will usually work on any architecture with + the addition of a few low-level routines. choice bool @@ -31,10 +31,10 @@ config ATMEL_AVR32_HEADERS bool prompt "Install Atmel AVR32 headers" + depends on ARCH_avr32 default y help Install Atmel AVR32 headers for native AVR32 development. Most AVR32 MCU devices are supported. If you do native AVR32 development you want to say 'Y' here. - diff -r b51724d5250d -r 11460fc587e6 config/libc/none.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/config/libc/none.in Wed Oct 21 22:51:39 2009 +0200 @@ -0,0 +1,14 @@ +# Dummy config file to not use a C library *at all* +# depends on BARE_METAL + +config LIBC_none + help + Do not use a C library. + + This is usefull if your project is self-contained, does not rely on + an external C library, and provides all the necessary bits. + + Most probably usefull to bootloaders, as they generally don't depend + on the C library. + + If unsure: do *not* choose that, and use another option in the choice. diff -r b51724d5250d -r 11460fc587e6 scripts/build/arch/arm.sh --- a/scripts/build/arch/arm.sh Mon Oct 26 18:47:11 2009 +0100 +++ b/scripts/build/arch/arm.sh Wed Oct 21 22:51:39 2009 +0200 @@ -8,7 +8,7 @@ case "${CT_LIBC},${CT_ARCH_ARM_EABI}" in *glibc,y) CT_TARGET_SYS=gnueabi;; uClibc,y) CT_TARGET_SYS=uclibcgnueabi;; - none,y) CT_TARGET_SYS=eabi;; + *,y) CT_TARGET_SYS=eabi;; esac # In case we're EABI, do *not* specify any ABI! diff -r b51724d5250d -r 11460fc587e6 scripts/functions --- a/scripts/functions Mon Oct 26 18:47:11 2009 +0100 +++ b/scripts/functions Wed Oct 21 22:51:39 2009 +0200 @@ -696,9 +696,9 @@ # Set defaults for the system part of the tuple. Can be overriden # by architecture-specific values. case "${CT_LIBC}" in - none) CT_TARGET_SYS=elf;; *glibc) CT_TARGET_SYS=gnu;; uClibc) CT_TARGET_SYS=uclibc;; + *) CT_TARGET_SYS=elf;; esac # Transform the ARCH into a kernel-understandable ARCH