Message ID | 1456984671-10123-1-git-send-email-stewart@linux.vnet.ibm.com |
---|---|
State | Rejected |
Headers | show |
Dear Stewart Smith, On Thu, 3 Mar 2016 16:57:51 +1100, Stewart Smith wrote: > When building on ppc64le host (notably Ubuntu 14.04, where this was > reported), the configure/libtool combination in fakeroot would > incorrectly detect that ld doesn't know how to build shared libraries. > Instead of checking for ppc64le libs, it was checking if we could build > *big* endian libraries, which the native Ubuntu toolchain on Ubuntu 14.04 > cannot. The end result would be that you wouldn't get libfakeroot.so, > causing a build failure later on. > > However, if we rerun autotools, this works. Additionally, due to > the strange way that fakeroot builds, we need to mkdir build-aux as > this directory does not exist in the original source package. > > With this patch, you can now successfully build OpenPower firmware > (which uses buildroot infrastructure) on an Ubuntu 14.04 ppc64le > system. > > Fixes: https://github.com/open-power/op-build/issues/194 > Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com> I understand the issue, but I don't really like the solution, because it means that from now on, host-autoconf, host-automake and host-libtool are always going to be built as dependencies of host-fakeroot, making a "minimal" build longer. Unfortunately, I don't have a lot of other proposals to make, except maybe seeing if there is a more recent version of fakeroot that has an already re-generated configure script that works for you. Best regards, Thomas
Hello Thomas, On Thu, Mar 3, 2016 at 9:45 PM, Thomas Petazzoni <thomas.petazzoni@free-electrons.com> wrote: > On Thu, 3 Mar 2016 16:57:51 +1100, Stewart Smith wrote: >> When building on ppc64le host (notably Ubuntu 14.04, where this was >> reported), the configure/libtool combination in fakeroot would >> incorrectly detect that ld doesn't know how to build shared libraries. >> Instead of checking for ppc64le libs, it was checking if we could build >> *big* endian libraries, which the native Ubuntu toolchain on Ubuntu 14.04 >> cannot. The end result would be that you wouldn't get libfakeroot.so, >> causing a build failure later on. >> >> However, if we rerun autotools, this works. Additionally, due to >> the strange way that fakeroot builds, we need to mkdir build-aux as >> this directory does not exist in the original source package. >> >> With this patch, you can now successfully build OpenPower firmware >> (which uses buildroot infrastructure) on an Ubuntu 14.04 ppc64le >> system. >> >> Fixes: https://github.com/open-power/op-build/issues/194 >> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com> > > I understand the issue, but I don't really like the solution, because > it means that from now on, host-autoconf, host-automake and > host-libtool are always going to be built as dependencies of > host-fakeroot, making a "minimal" build longer. > > Unfortunately, I don't have a lot of other proposals to make, except > maybe seeing if there is a more recent version of fakeroot that has > an already re-generated configure script that works for you. I'm updating the OpenPower firmware builds to use 2016.05 and came across Stewarts patch in our tree. It would be good to get a fix upstream. Would you take a patch to update the autotools generated files in fakeroot? This way we can build our firmware on the systems that they run on, without anyone having to spend the extra time building. Cheers, Joel
diff --git a/package/fakeroot/fakeroot.mk b/package/fakeroot/fakeroot.mk index 3f1c803..1f485f4 100644 --- a/package/fakeroot/fakeroot.mk +++ b/package/fakeroot/fakeroot.mk @@ -9,5 +9,12 @@ FAKEROOT_SOURCE = fakeroot_$(FAKEROOT_VERSION).orig.tar.bz2 FAKEROOT_SITE = http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/f/fakeroot FAKEROOT_LICENSE = GPLv3+ FAKEROOT_LICENSE_FILES = COPYING +HOST_FAKEROOT_AUTORECONF=YES + +define HOST_FAKEROOT_POST_PATCH_FIXUP + mkdir $(HOST_FAKEROOT_DIR)/build-aux +endef + +HOST_FAKEROOT_POST_PATCH_HOOKS += HOST_FAKEROOT_POST_PATCH_FIXUP $(eval $(host-autotools-package))
When building on ppc64le host (notably Ubuntu 14.04, where this was reported), the configure/libtool combination in fakeroot would incorrectly detect that ld doesn't know how to build shared libraries. Instead of checking for ppc64le libs, it was checking if we could build *big* endian libraries, which the native Ubuntu toolchain on Ubuntu 14.04 cannot. The end result would be that you wouldn't get libfakeroot.so, causing a build failure later on. However, if we rerun autotools, this works. Additionally, due to the strange way that fakeroot builds, we need to mkdir build-aux as this directory does not exist in the original source package. With this patch, you can now successfully build OpenPower firmware (which uses buildroot infrastructure) on an Ubuntu 14.04 ppc64le system. Fixes: https://github.com/open-power/op-build/issues/194 Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com> --- package/fakeroot/fakeroot.mk | 7 +++++++ 1 file changed, 7 insertions(+)