From df68f203b4e7087beffb3a91dbae9278abd91c1c Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Sat, 4 Feb 2017 21:16:10 -0800 Subject: 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 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 0000000..8bc87ec --- /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 e58912c..e87abaf 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 9489f18..9f852b3 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 -- cgit v0.10.2-6-g49f6