libtool: fix build on systems with automake-1.11 (e.g. Fedora 10)
authorArnout Vandecappelle <arnout@mind.be>
Thu, 20 Feb 2014 23:09:47 +0000 (00:09 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Mon, 24 Feb 2014 08:04:44 +0000 (09:04 +0100)
package/libtool/libtool-0001-mips64-n64-linking.patch touches an m4
file, so applying it triggers a run of autoconf, automake, etc. This
sometimes leads to build failures due to incompatible system autotools.
This was observed on Fedora 10, which has automake 1.11 while the
generated files that are included in the tarball require automake
1.11.1.

We cannot simply set HOST_LIBTOOL_AUTORECONF = YES because that would
create a circular dependency on host-libtool. Therefore, the patch
patch is applied on the installed libtool.m4 instead of in the source
tree. Then, it also needs to be renamed to something that doesn't
match buildroot's patch convention so it doesn't get picked up
automatically.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/libtool/libtool-0001-mips64-n64-linking.patch [deleted file]
package/libtool/libtool-mips64-n64-linking.post-install-patch [new file with mode: 0644]
package/libtool/libtool.mk

diff --git a/package/libtool/libtool-0001-mips64-n64-linking.patch b/package/libtool/libtool-0001-mips64-n64-linking.patch
deleted file mode 100644 (file)
index ef9084d..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-sets correct linker ABI flags on MIPS64
-http://git.savannah.gnu.org/cgit/libtool.git/commit/?id=5f7f7d9615bf650cf99d581a33b3e18357f79951
-
-Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
-
-diff -ru libtool-2.4.2.orig/libltdl/m4/libtool.m4 libtool-2.4.2/libltdl/m4/libtool.m4
---- libtool-2.4.2.orig/libltdl/m4/libtool.m4   2013-11-11 11:44:30.419396295 +0000
-+++ libtool-2.4.2/libltdl/m4/libtool.m4        2013-11-11 11:44:07.055032308 +0000
-@@ -1312,6 +1312,38 @@
-   rm -rf conftest*
-   ;;
-+mips64*-*linux*)
-+  # Find out what ABI is being produced by ac_compile, and set linker
-+  # options accordingly.
-+  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
-+  if AC_TRY_EVAL(ac_compile); then
-+    emul=elf
-+    case `/usr/bin/file conftest.$ac_objext` in
-+      *32-bit*)
-+      emul="${emul}32"
-+      ;;
-+      *64-bit*)
-+      emul="${emul}64"
-+      ;;
-+    esac
-+    case `/usr/bin/file conftest.$ac_objext` in
-+      *MSB*)
-+      emul="${emul}btsmip"
-+      ;;
-+      *LSB*)
-+      emul="${emul}ltsmip"
-+      ;;
-+    esac
-+    case `/usr/bin/file conftest.$ac_objext` in
-+      *N32*)
-+      emul="${emul}n32"
-+      ;;
-+    esac
-+    LD="${LD-ld} -m $emul"
-+    fi
-+  rm -rf conftest*
-+  ;;
-+
- x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
- s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-   # Find out which ABI we are using.
diff --git a/package/libtool/libtool-mips64-n64-linking.post-install-patch b/package/libtool/libtool-mips64-n64-linking.post-install-patch
new file mode 100644 (file)
index 0000000..ef9084d
--- /dev/null
@@ -0,0 +1,47 @@
+sets correct linker ABI flags on MIPS64
+http://git.savannah.gnu.org/cgit/libtool.git/commit/?id=5f7f7d9615bf650cf99d581a33b3e18357f79951
+
+Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
+
+diff -ru libtool-2.4.2.orig/libltdl/m4/libtool.m4 libtool-2.4.2/libltdl/m4/libtool.m4
+--- libtool-2.4.2.orig/libltdl/m4/libtool.m4   2013-11-11 11:44:30.419396295 +0000
++++ libtool-2.4.2/libltdl/m4/libtool.m4        2013-11-11 11:44:07.055032308 +0000
+@@ -1312,6 +1312,38 @@
+   rm -rf conftest*
+   ;;
++mips64*-*linux*)
++  # Find out what ABI is being produced by ac_compile, and set linker
++  # options accordingly.
++  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
++  if AC_TRY_EVAL(ac_compile); then
++    emul=elf
++    case `/usr/bin/file conftest.$ac_objext` in
++      *32-bit*)
++      emul="${emul}32"
++      ;;
++      *64-bit*)
++      emul="${emul}64"
++      ;;
++    esac
++    case `/usr/bin/file conftest.$ac_objext` in
++      *MSB*)
++      emul="${emul}btsmip"
++      ;;
++      *LSB*)
++      emul="${emul}ltsmip"
++      ;;
++    esac
++    case `/usr/bin/file conftest.$ac_objext` in
++      *N32*)
++      emul="${emul}n32"
++      ;;
++    esac
++    LD="${LD-ld} -m $emul"
++    fi
++  rm -rf conftest*
++  ;;
++
+ x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+   # Find out which ABI we are using.
index 2f6ea7c5cfe0f57ac06def323a4039029148eba9..603f1f1c2c25f9a436526b221de49917fb653b52 100644 (file)
@@ -13,6 +13,19 @@ LIBTOOL_LICENSE_FILES = COPYING
 
 HOST_LIBTOOL_LIBTOOL_PATCH = NO
 
+# libtool-mips64-n64-linking.post-install-patch is an upstream patch that
+# fixes MIPS64 n64 link failures. However, because the patch touches an m4
+# file, applying it triggers a run of autoconf, automake, etc. This sometimes
+# leads to build failures due to incompatible system autotools. We cannot
+# simply set HOST_LIBTOOL_AUTORECONF = YES because that would create a
+# circular dependency on host-libtool. Therefore, just apply the patch
+# directly on the installed file.
+define HOST_LIBTOOL_FIXUP_LIBTOOL_M4
+       patch $(HOST_DIR)/usr/share/aclocal/libtool.m4 < \
+               package/libtool/libtool-mips64-n64-linking.post-install-patch
+endef
+HOST_LIBTOOL_POST_INSTALL_HOOKS += HOST_LIBTOOL_FIXUP_LIBTOOL_M4
+
 $(eval $(autotools-package))
 $(eval $(host-autotools-package))