diff options
-rw-r--r-- | patches/02_fix-preconfigure-on-busybox-ash.patch | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/patches/02_fix-preconfigure-on-busybox-ash.patch b/patches/02_fix-preconfigure-on-busybox-ash.patch index 7bc8edc..16ef4e4 100644 --- a/patches/02_fix-preconfigure-on-busybox-ash.patch +++ b/patches/02_fix-preconfigure-on-busybox-ash.patch @@ -31,12 +31,17 @@ Description: Fix sysdeps preconfigure fragments on BusyBox ash The fragment needs to find confdefs.h, so we also link or copy this file into the new directory. . + But AS_LINENO_PREPARE causes the fragment to exit after reloading itself (to + prevent the whole script from running twice). So we change "exit" to "return" + in AS_LINENO_PREPARE in the fragment to tell the shell to stop executing the + loaded script. + . In summary, this patch temporarily changes $as_myself to refer to the fragments, enters a new directory in the build area (since the preconfigure fragment will write a modified copy of itself to configure.lineno in its - current working directory), and makes a copy of confdefs.h in the new - directory. All this allows the fragments to be properly preprocessed and - breaking the loop. + current working directory), makes a copy of confdefs.h in the new directory, + and prevents fragments from killing the entire configure script. All this + allows the fragments to be properly preprocessed and the loop to be broken. diff -Naur src.orig/libc/aclocal.m4 src/libc/aclocal.m4 --- src.orig/libc/aclocal.m4 2012-12-02 16:11:45.000000000 -0500 @@ -80,3 +85,15 @@ diff -Naur src.orig/libc/configure src/libc/configure done { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } +diff -Naur src.orig/libc/sysdeps/x86_64/preconfigure src/libc/sysdeps/x86_64/preconfigure +--- src.orig/libc/sysdeps/x86_64/preconfigure 2012-04-21 13:19:39.000000000 -0400 ++++ src/libc/sysdeps/x86_64/preconfigure 2013-06-20 17:23:38.340955965 -0400 +@@ -77,7 +77,7 @@ + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. +- exit ++ return + } + + |