Package: klibc Severity: normal Tags: patch -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Klibc fails to cross build for armel architecture: http://people.linaro.org/~wookey/buildd/precise/sbuild-ma/klibc_1.5.25-1ubuntu1-precise-ma-cross-armel-20120323-023815.34378.log echo 'multiarch_path=arm-linux-gnueabi' >> klcc/klibc.config perl klcc/makeklcc.pl /«PKGBUILDDIR»/klcc/klcc.in klcc/klibc.config /usr/bin/perl > klcc/klcc || ( rm -f klcc/klcc ; exit 1 ) && chmod a+x klcc/klcc : make -f /«PKGBUILDDIR»/scripts/Kbuild.klibc obj=. make -rR -f /«PKGBUILDDIR»/scripts/Kbuild.klibc obj=scripts/basic gcc -Wp,-MD,scripts/basic/.fixdep.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -o scripts/basic/fixdep scripts/basic/fixdep.c : make -rR -f /«PKGBUILDDIR»/scripts/Kbuild.klibc obj=usr/klibc arm-linux-gnueabi-gcc -Wp,-MD,usr/klibc/.__static_init.o.d -nostdinc -iwithprefix include -I/«PKGBUILDDIR»/usr/include/arch/x86_64 -Iusr/include/arch/x86_64 -I/«PKGBUILDDIR»/usr/include/bits64 -Iusr/include/bits64 -I/«PKGBUILDDIR»/usr/klibc/../include -Iusr/klibc/../include -I/«PKGBUILDDIR»/usr/include -Iusr/include -I/«PKGBUILDDIR»/linux/include -Ilinux/include -I/«PKGBUILDDIR»/linux/arch/x86/include -Ilinux/arch/x86/include -D__KLIBC__=1 -D__KLIBC_MINOR__=5 -D_BITSIZE=64 -fno-stack-protector -fwrapv -m64 -Os -fno-asynchronous-unwind-tables -fomit-frame-pointer -falign-functions=1 -falign-jumps=1 -falign-loops=1 -W -Wall -Wno-sign-compare -Wno-unused-parameter -c -o usr/klibc/__static_init.o usr/klibc/__static_init.c cc1: error: unrecognized command line option '-m64' make[4]: *** [usr/klibc/__static_init.o] Error 1 make[3]: *** [all] Error 2 make[2]: *** [klibc] Error 2 make[2]: Leaving directory `/«PKGBUILDDIR»' make[1]: *** [override_dh_auto_build] Error 2 make[1]: Leaving directory `/«PKGBUILDDIR»' make: *** [build] Error 2 dpkg-buildpackage: error: debian/rules build gave error exit status 2 For armhf it fails later: make -f /tmp/porting/klibc-1.5.25/scripts/Kbuild.install obj=. echo " INSTALL headers + man pages to debian/tmp/usr/lib/klibc" INSTALL headers + man pages to debian/tmp/usr/lib/klibc mkdir -p debian/tmp/usr/bin mkdir -p debian/tmp/usr/man/man1 mkdir -p debian/tmp/lib mkdir -p debian/tmp/usr/lib/klibc rm -rf debian/tmp/usr/lib/klibc/include mkdir -p debian/tmp/usr/lib/klibc/include mkdir -p debian/tmp/usr/lib/klibc/lib mkdir -p debian/tmp/usr/lib/klibc/bin if [ -n "arm-linux-gnueabihf" ]; then \ ln -s /usr/include/arm-linux-gnueabihf/asm debian/tmp/usr/lib/klibc/include/ || exit; \ fi for x in /usr/include/linux /usr/include/asm*; do \ ln -s ${x} debian/tmp/usr/lib/klibc/include/ || exit; \ done ln: failed to create symbolic link `debian/tmp/usr/lib/klibc/include/asm': File exists make[3]: *** [header] Error 1 make[2]: *** [install] Error 2 make[2]: Leaving directory `/tmp/porting/klibc-1.5.25' make[1]: *** [override_dh_auto_install] Error 2 make[1]: Leaving directory `/tmp/porting/klibc-1.5.25' make: *** [binary] Error 2 dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 debuild: fatal error at line 1350: dpkg-buildpackage -rfakeroot -d -us -uc -b -aarmhf -nc failed Attached patch adds "ARCH=arm" which is needed when cross building for armel architecture. Also I am patching order of symlinks done by klibc-linux-libc-dev patch to make sure that build will use /usr/include/asm/ of target architecture. - -- System Information: Debian Release: wheezy/sid APT prefers precise-updates APT policy: (999, 'precise-updates'), (999, 'precise'), (500, 'precise-security'), (50, 'precise') Architecture: amd64 (x86_64) Kernel: Linux 3.2.0-20-generic (SMP w/8 CPU cores) Locale: LANG=pl_PL.UTF-8, LC_CTYPE=pl_PL.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iEYEARECAAYFAk91hkkACgkQeQ6MlGH/2qs+OQCfbGvGbTy1ulO+JS5nfvUJPc2t KmIAnRcLXlDOYPcL8hPY+AA397pGdz7Y =e5/E -----END PGP SIGNATURE-----
diff -Nru klibc-2.0~rc3/debian/changelog klibc-2.0~rc3/debian/changelog --- klibc-2.0~rc3/debian/changelog 2012-03-02 11:08:54.000000000 +0100 +++ klibc-2.0~rc3/debian/changelog 2012-03-30 12:06:21.000000000 +0200 @@ -1,3 +1,9 @@ +klibc (2.0~rc3-2) unstable; urgency=low + + * Fix cross building - LP: #963047 + + -- Marcin Juszkiewicz <marcin.juszkiew...@linaro.org> Fri, 30 Mar 2012 12:05:41 +0200 + klibc (2.0~rc3-1) unstable; urgency=low * New upstream snapshot (closes: #653790) diff -Nru klibc-2.0~rc3/debian/patches/fix-cross-build klibc-2.0~rc3/debian/patches/fix-cross-build --- klibc-2.0~rc3/debian/patches/fix-cross-build 1970-01-01 01:00:00.000000000 +0100 +++ klibc-2.0~rc3/debian/patches/fix-cross-build 2012-03-30 12:03:03.000000000 +0200 @@ -0,0 +1,32 @@ +Author: Marcin Juszkiewicz <marcin.juszkiew...@linaro.org> +Description: fix cross build + +When klibc is cross built we want /usr/include/DEB_HOST_MULTIARCH/asm as +include/asm not /usr/include/DEB_BUILD_MULTIARCH/asm one. + +--- + scripts/Kbuild.install | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- klibc-1.5.25.orig/scripts/Kbuild.install ++++ klibc-1.5.25/scripts/Kbuild.install +@@ -93,16 +93,16 @@ header: + $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR) + $(Q)-rm -rf $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include + $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include + $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)lib + $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)bin +- $(Q)if [ -n "$(DEB_HOST_MULTIARCH)" ]; then \ +- ln -s /usr/include/$(DEB_HOST_MULTIARCH)/asm $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/ || exit; \ +- fi + $(Q)for x in /usr/include/linux /usr/include/asm*; do \ + ln -s $${x} $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/ || exit; \ + done ++ $(Q)if [ -n "$(DEB_HOST_MULTIARCH)" ]; then \ ++ ln -sf /usr/include/$(DEB_HOST_MULTIARCH)/asm $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/ || exit; \ ++ fi + $(Q)cp -rf usr/include/. $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/. + $(Q)chmod -R a+rX $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include + $(Q)$(install-data) $(srctree)/klcc/klcc.1 $(INSTALLROOT)$(mandir)/man1/$(KCROSS)klcc.1 + $(Q)$(install-bin) $(objtree)/klcc/$(KCROSS)klcc $(INSTALLROOT)$(bindir) + diff -Nru klibc-2.0~rc3/debian/patches/series klibc-2.0~rc3/debian/patches/series --- klibc-2.0~rc3/debian/patches/series 2012-03-02 10:26:06.000000000 +0100 +++ klibc-2.0~rc3/debian/patches/series 2012-03-30 12:07:06.000000000 +0200 @@ -5,3 +5,4 @@ multiarch-include-path Fix-minimal-mv-to-work-across-fs m68k-support +fix-cross-build diff -Nru klibc-2.0~rc3/debian/rules klibc-2.0~rc3/debian/rules --- klibc-2.0~rc3/debian/rules 2012-03-02 10:26:06.000000000 +0100 +++ klibc-2.0~rc3/debian/rules 2012-03-30 12:03:03.000000000 +0200 @@ -7,7 +7,7 @@ export DEB_HOST_MULTIARCH := $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) ifeq ($(DEB_HOST_ARCH),armel) -DEB_MAKE_ENVVARS := CONFIG_AEABI=y +DEB_MAKE_ENVVARS := ARCH=arm CONFIG_AEABI=y endif ifeq ($(DEB_HOST_ARCH),armhf) DEB_MAKE_ENVVARS := ARCH=arm CONFIG_AEABI=y CPU_ARCH=armv7-a CPU_TUNE=cortex-a8