eglibc does not crossbuild for arm64

Bug #1117602 reported by Wookey
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
eglibc (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Attempting to cross-build eglibc for arm64 gives this:

        (exec 3>&1; exit `( ( ( cd build-tree/arm64-libc && CC="aarch64-linux-gnu-gcc-4.7" CXX="aarch64-linux-gnu-g++-4.7" AUTOCONF=false MAKEINFO=: /home/wookey/linaro/armv8/toolchain/raringnew/eglibc-2.17/configure --host=aarch64-linux-gnu --build=$configure_build --prefix=/usr --without-cvs --enable-add-ons=libidn,"ports nptl " --enable-profile --without-selinux --enable-stackguard-randomization --enable-obsolete-rpc --with-pkgversion="Ubuntu EGLIBC 2.17-0ubuntu2" --with-bugurl="https://bugs.launchpad.net/ubuntu/+source/eglibc/+bugs" --with-headers=/home/wookey/linaro/armv8/toolchain/raringnew/eglibc-2.17/debian/include --enable-kernel=2.6.32 --with-selinux --enable-multi-arch --disable-profile ) 2>&1 3>&-; echo $? >&4) | tee -a build-tree/log-build-aarch64-linux-gnu-libc >&3) 4>&1`)
Build started: Wed, 06 Feb 2013 14:38:06 +0000
---------------
configure: loading site script /etc/dpkg-cross/cross-config.arm64
Reading Cross Config Cache (/etc/dpkg-cross/cross-config.arm64)
Reading /etc/dpkg-cross/cross-config.cache
checking build system type... x86_64-pc-linux-gnu
checking host system type... aarch64-unknown-linux-gnu
checking for aarch64-linux-gnu-gcc... aarch64-linux-gnu-gcc-4.7
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether aarch64-linux-gnu-gcc-4.7 accepts -g... yes
checking for aarch64-linux-gnu-gcc-4.7 option to accept ISO C89... none needed
checking for gcc... gcc
checking how to run the C preprocessor... aarch64-linux-gnu-gcc-4.7 -E
checking whether we are using the GNU C++ compiler... yes
checking whether aarch64-linux-gnu-g++-4.7 accepts -g... yes
checking for aarch64-linux-gnu-readelf... aarch64-linux-gnu-readelf
checking for sysdeps preconfigure fragments... x86_64
configure: running configure fragment for add-on libidn
checking add-on ports for preconfigure fragments... aarch64 alpha am33 arm hppa ia64 m68k mips powerpc tile
configure: running configure fragment for add-on nptl
checking for assembler and linker STT_GNU_IFUNC support... no
checking whether .text pseudo-op must be used... yes
configure: error: --enable-multi-arch support requires assembler and linker support
make: *** [/home/wookey/linaro/armv8/toolchain/raringnew/eglibc-2.17/stamp-dir/configure_libc] Error 1
dpkg-buildpackage: error: debian/rules build-arch gave error exit status 2

config.log says:
configure:4220: checking for assembler and linker STT_GNU_IFUNC support

There are no relocations in this file.
configure:4251: result: no
configure:4254: checking whether .text pseudo-op must be used
configure:4264: aarch64-linux-gnu-gcc-4.7 -c conftest.s 1>&5
configure:4267: $? = 0
configure:4278: result: yes
configure:4284: error: --enable-multi-arch support requires assembler and linker support

So this is checking for GNU IFUNC support, (result in $libc_cv_ld_gnu_indirect_function)

We don't have ifunc support in arm64 so this test is correctly failing.

The question is why should multiarch support be dependent on IFUNC (A mechanism for choosing at elf load time which of two different functions to run, depending on machine capabilities. This has nothing obviously to do with multiarch paths.

It seems to come from this change:
http://sourceware-org.1504.n7.nabble.com/PATCH-roland-configure-multiarch-Fix-multiarch-handling-in-sysdeps-generation-td218888.html

This makes no sense to me. Multiarch worked just fine in eglibc 2.16 for arm64 so it must be possible to make it work in 2.17 without needing ifunc. But I really don't understand what's going on here. Is this some other 'multi-arch' from the Debian one?

crossbuild-essential-arm64 is uninstallable in raring until this is fixed because the build-arch libc has already moved on.

Adam Conrad (adconrad)
Changed in eglibc (Ubuntu):
status: New → Fix Committed
Adam Conrad (adconrad)
Changed in eglibc (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.