From 10073494569bc54b1798e15f6c26be23c1284640 Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Sat, 4 Feb 2017 11:26:15 -0800 Subject: [PATCH 1/3] Remove OBSTACK from uclibc-ng config It has been (incompletely) removed since 1.0.21. Requested-by: Waldemar Brodkorb Signed-off-by: Alexey Neyman --- contrib/uClibc-defconfigs/uClibc-ng.config | 1 - 1 file changed, 1 deletion(-) diff --git a/contrib/uClibc-defconfigs/uClibc-ng.config b/contrib/uClibc-defconfigs/uClibc-ng.config index c17603db..1f0a8c17 100644 --- a/contrib/uClibc-defconfigs/uClibc-ng.config +++ b/contrib/uClibc-defconfigs/uClibc-ng.config @@ -5,7 +5,6 @@ KERNEL_HEADERS="/usr/src/linux/include" LDSO_RUNPATH=y LDSO_RUNPATH_OF_EXECUTABLE=y MALLOC_GLIBC_COMPAT=y -UCLIBC_HAS_OBSTACK=y UCLIBC_HAS_UTMPX=y UCLIBC_HAS_UTMP=y UCLIBC_SUSV2_LEGACY=y From 344d324d190158ffdab50657ff6cd81b38d2da5e Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Sat, 4 Feb 2017 12:18:52 -0800 Subject: [PATCH 2/3] Obsolete uClibc 0.9.33.2 It has not seen any new commits since July 2015, and haven't had any releases since May 2012. The only two architectures marked as supported by uClibc but not by uClibc-ng are v850 and i960. Both are marked as "BROKEN" in the most recent release of uClibc, 0.9.33.2. RIP, uClibc. Signed-off-by: Alexey Neyman --- config/libc/uClibc.in | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/config/libc/uClibc.in b/config/libc/uClibc.in index 219426a0..e830662c 100644 --- a/config/libc/uClibc.in +++ b/config/libc/uClibc.in @@ -35,7 +35,8 @@ choice prompt "uClibc Version Name" config LIBC_UCLIBC_CUSTOM_UCLIBC - bool "uClibc" + bool "uClibc (OBSOLETE)" + depends on OBSOLETE select LIBC_UCLIBC_0_9_33_2_or_later config LIBC_UCLIBC_CUSTOM_UCLIBC_NG @@ -100,7 +101,8 @@ config LIBC_UCLIBC_NG_V_1_0_20 config LIBC_UCLIBC_V_0_9_33_2 bool - prompt "0.9.33.2" + prompt "0.9.33.2 (OBSOLETE)" + depends on OBSOLETE select LIBC_UCLIBC_0_9_33_2_or_later endchoice From df68f203b4e7087beffb3a91dbae9278abd91c1c Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Sat, 4 Feb 2017 21:16:10 -0800 Subject: [PATCH 3/3] Use 'make olddefconfig' in uClibc/uClibc-ng configuration instead of 'make oldconfig' and responding 'y'. This avoids 'Broken pipe' errors in the log, as well as selects default setting for all options not explicitly set. This requires a small fix in the old uClibc. Won't have to maintain that fix for long though :) Signed-off-by: Alexey Neyman --- .../0.9.33.2/999-make-olddefconfig.patch | 41 +++++++++++++++++++ scripts/build/libc/uClibc.sh | 2 +- scripts/functions | 8 ---- 3 files changed, 42 insertions(+), 9 deletions(-) create mode 100644 patches/uClibc/0.9.33.2/999-make-olddefconfig.patch diff --git a/patches/uClibc/0.9.33.2/999-make-olddefconfig.patch b/patches/uClibc/0.9.33.2/999-make-olddefconfig.patch new file mode 100644 index 00000000..8bc87ec1 --- /dev/null +++ b/patches/uClibc/0.9.33.2/999-make-olddefconfig.patch @@ -0,0 +1,41 @@ +diff -urpN uClibc-0.9.33.2.orig/extra/config/conf.c uClibc-0.9.33.2/extra/config/conf.c +--- uClibc-0.9.33.2.orig/extra/config/conf.c 2017-02-04 12:57:38.488808014 -0800 ++++ uClibc-0.9.33.2/extra/config/conf.c 2017-02-04 20:26:28.613244457 -0800 +@@ -435,6 +435,7 @@ int main(int ac, char **av) + const char *name; + const char *configname = conf_get_configname(); + struct stat tmpstat; ++ int olddefconfig = 0; + + setlocale(LC_ALL, ""); + bindtextdomain(PACKAGE, LOCALEDIR); +@@ -451,6 +452,7 @@ int main(int ac, char **av) + break; + case 'd': + input_mode = set_default; ++ olddefconfig = 1; + break; + case 'D': + input_mode = set_default; +@@ -514,7 +516,7 @@ int main(int ac, char **av) + switch (input_mode) { + case set_default: + if (!defconfig_file) +- defconfig_file = conf_get_default_confname(); ++ defconfig_file = olddefconfig ? NULL : conf_get_default_confname(); + if (conf_read(defconfig_file)) { + printf(_("***\n" + "*** Can't find default configuration \"%s\"!\n" +diff -urpN uClibc-0.9.33.2.orig/Makefile.in uClibc-0.9.33.2/Makefile.in +--- uClibc-0.9.33.2.orig/Makefile.in 2017-02-04 12:57:38.484807980 -0800 ++++ uClibc-0.9.33.2/Makefile.in 2017-02-04 12:59:34.625789324 -0800 +@@ -460,6 +460,9 @@ allyesconfig: $(conf) + allnoconfig: $(conf) + $(Q)$< -n extra/Configs/Config.in + ++olddefconfig: $(conf) ++ $(Q)$< -d extra/Configs/Config.in ++ + defconfig: $(conf) + $(Q)$< -D extra/Configs/defconfigs/$(ARCH)/$@ extra/Configs/Config.in + diff --git a/scripts/build/libc/uClibc.sh b/scripts/build/libc/uClibc.sh index e58912cb..e87abafa 100644 --- a/scripts/build/libc/uClibc.sh +++ b/scripts/build/libc/uClibc.sh @@ -138,7 +138,7 @@ do_libc_backend_once() { fi manage_uClibc_config "${CT_LIBC_UCLIBC_CONFIG_FILE}" .config "${multi_flags}" - CT_DoYes | CT_DoExecLog ALL make "${make_args[@]}" oldconfig + CT_DoExecLog ALL make "${make_args[@]}" olddefconfig # Now filter the multilib flags. manage_uClibc_config did the opposite of # what Rules.mak in uClibc would do: by the multilib's CFLAGS, it determined diff --git a/scripts/functions b/scripts/functions index 9489f186..9f852b39 100644 --- a/scripts/functions +++ b/scripts/functions @@ -585,14 +585,6 @@ CT_DoForceRmdir() { done } -# Echoes the specified string on stdout until the pipe breaks. -# Doesn't fail -# $1: string to echo -# Usage: CT_DoYes "" |make oldconfig -CT_DoYes() { - yes "$1" || true -} - # Add the specified directory to LD_LIBRARY_PATH, and export it # If the specified patch is already present, just export # $1: path to add