From 867a7d61ac31269b82f463290d80210374cbade2 Mon Sep 17 00:00:00 2001 From: Bryan Hundven Date: Wed, 13 Jan 2016 06:08:54 -0800 Subject: [PATCH 1/4] newlib: Update newlib versions Newlib release seem to be snapshots now. Newlib 2.3.0 was released in git here: https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;a=commit;h=ad7b3cde9c157f2c34a6a1296e0bda1ad0975bda and the snapshot for 2.3.0 was here: https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;a=commit;h=06cd7127e3cf16ab3c0aa665956deb263e524753 The 2.2 series was also updated. Signed-off-by: Bryan Hundven --- config/libc/newlib.in | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/config/libc/newlib.in b/config/libc/newlib.in index 40203f78..a2015511 100644 --- a/config/libc/newlib.in +++ b/config/libc/newlib.in @@ -17,7 +17,7 @@ config LIBC_NEWLIB_CUSTOM bool prompt "Custom newlib" depends on EXPERIMENTAL - select LIBC_NEWLIB_2_2_or_later + select LIBC_NEWLIB_2_3_or_later help The choosen newlib version shall be not downloaded. Instead use a custom location to get the source. @@ -71,6 +71,11 @@ choice # Don't remove next line # CT_INSERT_VERSION_BELOW +config LIBC_NEWLIB_V_2_3_0 + bool + prompt "2.3.0.20160226" + select LIBC_NEWLIB_2_3 + config LIBC_NEWLIB_LINARO_V_2_2_0 bool prompt "Linaro 2.2.0-2015.01" @@ -79,7 +84,7 @@ config LIBC_NEWLIB_LINARO_V_2_2_0 config LIBC_NEWLIB_V_2_2_0 bool - prompt "2.2.0" + prompt "2.2.0.20151023" select LIBC_NEWLIB_2_2 config LIBC_NEWLIB_LINARO_V_2_1_0 @@ -118,6 +123,10 @@ endchoice endif # ! LIBC_NEWLIB_CUSTOM +config LIBC_NEWLIB_2_3 + bool + select LIBC_NEWLIB_2_3_or_later + config LIBC_NEWLIB_2_2 bool select LIBC_NEWLIB_2_2_or_later @@ -130,6 +139,10 @@ config LIBC_NEWLIB_2_0 bool select LIBC_NEWLIB_2_0_or_later +config LIBC_NEWLIB_2_3_or_later + bool + select LIBC_NEWLIB_2_2_or_later + config LIBC_NEWLIB_2_2_or_later bool select LIBC_NEWLIB_2_1_or_later @@ -149,8 +162,9 @@ config LIBC_VERSION string # Don't remove next line # CT_INSERT_VERSION_STRING_BELOW + default "2.3.0.20160226" if LIBC_NEWLIB_V_2_3_0 default "linaro-2.2.0-2015.01" if LIBC_NEWLIB_LINARO_V_2_2_0 - default "2.2.0" if LIBC_NEWLIB_V_2_2_0 + default "2.2.0.20151023" if LIBC_NEWLIB_V_2_2_0 default "linaro-2.1.0-2014.09" if LIBC_NEWLIB_LINARO_V_2_1_0 default "2.1.0" if LIBC_NEWLIB_V_2_1_0 default "2.0.0" if LIBC_NEWLIB_V_2_0_0 From 9d5fc3fd9b1e7a13a88daedbc11b7a797ae36322 Mon Sep 17 00:00:00 2001 From: Bryan Hundven Date: Wed, 13 Jan 2016 06:20:35 -0800 Subject: [PATCH 2/4] newlib: disable multilib if it is not enabled Signed-off-by: Bryan Hundven --- scripts/build/libc/newlib.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scripts/build/libc/newlib.sh b/scripts/build/libc/newlib.sh index ba52268e..641ba953 100644 --- a/scripts/build/libc/newlib.sh +++ b/scripts/build/libc/newlib.sh @@ -65,6 +65,11 @@ do_libc() { CT_DoLog EXTRA "Configuring C library" + # Multilib is the default, so if it is not enabled, disable it. + if [ "${CT_MULTILIB}" != "y" ]; then + extra_config+=("--disable-multilib") + fi + if [ "${CT_LIBC_NEWLIB_IO_C99FMT}" = "y" ]; then newlib_opts+=( "--enable-newlib-io-c99-formats" ) else From 929e027500188ee1857b41c7b652ea0cdbc28b1d Mon Sep 17 00:00:00 2001 From: Bryan Hundven Date: Wed, 13 Jan 2016 06:22:18 -0800 Subject: [PATCH 3/4] newlib: add option to enable nano malloc Signed-off-by: Bryan Hundven --- config/libc/newlib.in.2 | 11 +++++++++++ scripts/build/libc/newlib.sh | 3 +++ 2 files changed, 14 insertions(+) diff --git a/config/libc/newlib.in.2 b/config/libc/newlib.in.2 index b16b23a8..ed355668 100644 --- a/config/libc/newlib.in.2 +++ b/config/libc/newlib.in.2 @@ -44,6 +44,17 @@ config LIBC_NEWLIB_ENABLE_TARGET_OPTSPACE This will compile newlib with -Os. +config LIBC_NEWLIB_NANO_MALLOC + bool + prompt "Enable Nano Malloc" + depends on LIBC_NEWLIB_2_1_or_later + help + NEWLIB has two implementations of malloc family's functions, one in + `mallocr.c' and the other one in `nano-mallocr.c'. This options + enables the nano-malloc implementation, which is for small systems + with very limited memory. Note that this implementation does not + support `--enable-malloc-debugging' any more. + config LIBC_NEWLIB_EXTRA_CONFIG_ARRAY string prompt "Extra config for newlib" diff --git a/scripts/build/libc/newlib.sh b/scripts/build/libc/newlib.sh index 641ba953..1b0737e1 100644 --- a/scripts/build/libc/newlib.sh +++ b/scripts/build/libc/newlib.sh @@ -96,6 +96,9 @@ do_libc() { else newlib_opts+=( "--enable-newlib-supplied-syscalls" ) fi + if [ "${CT_LIBC_NEWLIB_NANO_MALLOC}" = "y" ]; then + newlib_opts+=( "--enable-newlib-nano-malloc" ) + fi [ "${CT_LIBC_NEWLIB_ENABLE_TARGET_OPTSPACE}" = "y" ] && newlib_opts+=("--enable-target-optspace") From 6476f8a9403bd3c4b1477a23d0bbba1961ed9f66 Mon Sep 17 00:00:00 2001 From: Bryan Hundven Date: Wed, 13 Jan 2016 06:22:59 -0800 Subject: [PATCH 4/4] newlib: add option to enable nano formatted io Signed-off-by: Bryan Hundven --- config/libc/newlib.in.2 | 10 ++++++++++ scripts/build/libc/newlib.sh | 3 +++ 2 files changed, 13 insertions(+) diff --git a/config/libc/newlib.in.2 b/config/libc/newlib.in.2 index ed355668..48e5503f 100644 --- a/config/libc/newlib.in.2 +++ b/config/libc/newlib.in.2 @@ -55,6 +55,16 @@ config LIBC_NEWLIB_NANO_MALLOC with very limited memory. Note that this implementation does not support `--enable-malloc-debugging' any more. +config LIBC_NEWLIB_NANO_FORMATTED_IO + bool + prompt "Enable Nano Formatted I/O" + depends on LIBC_NEWLIB_2_2_or_later + help + This builds NEWLIB with a special implementation of formatted I/O + functions, designed to lower the size of application on small systems + with size constraint issues. This option does not affect wide-char + formatted I/O functions. + config LIBC_NEWLIB_EXTRA_CONFIG_ARRAY string prompt "Extra config for newlib" diff --git a/scripts/build/libc/newlib.sh b/scripts/build/libc/newlib.sh index 1b0737e1..e70b6690 100644 --- a/scripts/build/libc/newlib.sh +++ b/scripts/build/libc/newlib.sh @@ -99,6 +99,9 @@ do_libc() { if [ "${CT_LIBC_NEWLIB_NANO_MALLOC}" = "y" ]; then newlib_opts+=( "--enable-newlib-nano-malloc" ) fi + if [ "${CT_LIBC_NEWLIB_NANO_FORMATTED_IO}" = "y" ]; then + newlib_opts+=( "--enable-newlib-nano-formatted-io" ) + fi [ "${CT_LIBC_NEWLIB_ENABLE_TARGET_OPTSPACE}" = "y" ] && newlib_opts+=("--enable-target-optspace")