summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorP. J. McDermott <pjm@nac.net>2013-06-20 12:40:41 (EDT)
committer P. J. McDermott <pjm@nac.net>2013-06-20 12:40:41 (EDT)
commit7472da5ca328fac9435e227d1e24cdeb4b47e508 (patch)
treea04f0ed4b7c9c18e62fd282e484f5d172cd2537f
parenta8f7152d2fc43f02b891e9a2fb5117f2593f7192 (diff)
Add patch to fix libc sysdeps preconfigure on ash.
AS_LINENO_PREPARE was causing an infinitely recursive configure loop. Before: configure: loading cache config.cache checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking for gcc... gcc checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking how to run the C preprocessor... cpp checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking for readelf... readelf checking for sysdeps preconfigure fragments... x86_64 configure: WARNING: you should use --build, --host, --target configure: WARNING: you should use --build, --host, --target checking build system type... (cached) x86_64-unknown-linux-gnu checking host system type... (cached) x86_64-unknown-linux-gnu checking for dummy-gcc... gcc checking for suffix of object files... (cached) o checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking how to run the C preprocessor... cpp checking whether we are using the GNU C++ compiler... (cached) yes checking whether g++ accepts -g... (cached) yes checking for dummy-readelf... readelf checking for sysdeps preconfigure fragments... x86_64 configure: WARNING: you should use --build, --host, --target configure: WARNING: you should use --build, --host, --target [...] After: configure: loading cache config.cache checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking for gcc... gcc checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking how to run the C preprocessor... cpp checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking for readelf... readelf checking for sysdeps preconfigure fragments... x86_64 checking whether gcc compiles in -mx32 mode by default... no
-rw-r--r--patches/02_fix-preconfigure-on-busybox-ash.patch51
1 files changed, 51 insertions, 0 deletions
diff --git a/patches/02_fix-preconfigure-on-busybox-ash.patch b/patches/02_fix-preconfigure-on-busybox-ash.patch
new file mode 100644
index 0000000..9c2aacd
--- /dev/null
+++ b/patches/02_fix-preconfigure-on-busybox-ash.patch
@@ -0,0 +1,51 @@
+From: "P. J. McDermott" <pjm@nac.net>
+Description: Fix sysdeps preconfigure fragments on BusyBox ash
+ On shells that don't support the LINENO parameter (e.g. BusyBox ash), the
+ AS_LINENO_PREPARE macro (executed by AC_INIT) preprocesses the script
+ $as_myself into $as_me.lineno.
+ .
+ Unfortunately, when loading sysdeps preconfigure fragements, these as_*
+ parameters refer to the configure script rather than the fragments.
+ .
+ As a result, the configure script is executed by a preconfigure fragment in an
+ infinitely recursive loop.
+ .
+ This patch temporarily changes the parameters to refer to the fragments,
+ allowing the fragments to be properly preprocessed and breaking the loop.
+
+diff -Naur src.orig/libc/aclocal.m4 src/libc/aclocal.m4
+--- src.orig/libc/aclocal.m4 2012-12-02 16:11:45.000000000 -0500
++++ src/libc/aclocal.m4 2013-06-20 12:19:51.818414209 -0400
+@@ -161,7 +161,14 @@
+ for frag in $frags; do
+ name=`echo "$frag" | sed 's@/[[^/]]*[$]@@;s@^.*/@@'`
+ echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD
++ orig_as_me=$as_me
++ orig_as_myself=$as_myself
++ as_me=${frag##*/sysdeps/}
++ as_me=${as_me%/preconfigure}-preconfigure
++ as_myself=$frag
+ . "$frag"
++ as_me=$orig_as_me
++ as_myself=$orig_as_myself
+ done
+ AC_MSG_RESULT()
+ fi])
+diff -Naur src.orig/libc/configure src/libc/configure
+--- src.orig/libc/configure 2012-12-02 16:11:45.000000000 -0500
++++ src/libc/configure 2013-06-20 12:24:26.226678382 -0400
+@@ -4000,7 +4000,14 @@
+ for frag in $frags; do
+ name=`echo "$frag" | sed 's@/[^/]*$@@;s@^.*/@@'`
+ echo $ECHO_N "$name $ECHO_C" >&6
++ orig_as_me=$as_me
++ orig_as_myself=$as_myself
++ as_me=${frag##*/sysdeps/}
++ as_me=${as_me%/preconfigure}-preconfigure
++ as_myself=$frag
+ . "$frag"
++ as_me=$orig_as_me
++ as_myself=$orig_as_myself
+ done
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
+ $as_echo "" >&6; }