[Bug 1117602] Re: eglibc does not crossbuild for arm64
Adam Conrad
adconrad at 0c3.net
Wed Feb 6 20:57:55 UTC 2013
** Changed in: eglibc (Ubuntu)
Status: New => Fix Committed
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to eglibc in Ubuntu.
https://bugs.launchpad.net/bugs/1117602
Title:
eglibc does not crossbuild for arm64
Status in “eglibc” package in Ubuntu:
Fix Committed
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.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/eglibc/+bug/1117602/+subscriptions
More information about the foundations-bugs
mailing list