From: Arnout Vandecappelle Date: Thu, 20 Feb 2014 23:09:47 +0000 (+0100) Subject: libtool: fix build on systems with automake-1.11 (e.g. Fedora 10) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ed73d1d2e3703290e74bb076bc6dd0417aa3ba21;p=buildroot.git libtool: fix build on systems with automake-1.11 (e.g. Fedora 10) 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) Signed-off-by: Peter Korsgaard --- diff --git a/package/libtool/libtool-0001-mips64-n64-linking.patch b/package/libtool/libtool-0001-mips64-n64-linking.patch deleted file mode 100644 index ef9084ddb6..0000000000 --- a/package/libtool/libtool-0001-mips64-n64-linking.patch +++ /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 - -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 index 0000000000..ef9084ddb6 --- /dev/null +++ b/package/libtool/libtool-mips64-n64-linking.post-install-patch @@ -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 + +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.mk b/package/libtool/libtool.mk index 2f6ea7c5cf..603f1f1c2c 100644 --- a/package/libtool/libtool.mk +++ b/package/libtool/libtool.mk @@ -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))