Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 194614 - sys-libs/glibc-2.5-r4 triggers dev-libs/libxml2-2.6.28 failed. undefined reference to `_dl_hwcap' (and more)
Summary: sys-libs/glibc-2.5-r4 triggers dev-libs/libxml2-2.6.28 failed. undefined ref...
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Library (show other bugs)
Hardware: PPC Linux
: High normal (vote)
Assignee: Gentoo Toolchain Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 194612
  Show dependency tree
 
Reported: 2007-10-03 15:13 UTC by Jozef
Modified: 2007-10-09 18:33 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jozef 2007-10-03 15:13:28 UTC
the ebuild failed, see below

Reproducible: Always

Steps to Reproduce:
1. emerge libxml2




/bin/sh ./libtool --tag=CC --mode=link powerpc-unknown-linux-gnu-gcc  -O2 -mcpu=powerpc -mtune=powerpc -fno-strict-aliasing -pipe -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls   -o xmllint  xmllint.o -lreadline -lhistory -lncurses ./libxml2.la  -lz  -lm  
powerpc-unknown-linux-gnu-gcc -O2 -mcpu=powerpc -mtune=powerpc -fno-strict-aliasing -pipe -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -o .libs/xmllint xmllint.o  -lreadline -lhistory -lncurses ./.libs/libxml2.so -lz -lm 
./.libs/libxml2.so: undefined reference to `_dl_hwcap'
collect2: ld returned 1 exit status
make[2]: *** [xmllint] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory `/mnt/matrox/var/tmp/portage/dev-libs/libxml2-2.6.28/work/libxml2-2.6.28'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/mnt/matrox/var/tmp/portage/dev-libs/libxml2-2.6.28/work/libxml2-2.6.28'
make: *** [all] Error 2
 * 
 * ERROR: dev-libs/libxml2-2.6.28 failed.
 * Call stack:
 *   ebuild.sh, line 1654:   Called dyn_compile
 *   ebuild.sh, line 990:   Called qa_call 'src_compile'
 *   ebuild.sh, line 44:   Called src_compile
 *   libxml2-2.6.28.ebuild, line 85:   Called die
 * 
 * Copilation failed
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/mnt/matrox/var/tmp/portage/dev-libs/libxml2-2.6.28/temp/build.log'.
 * 

emerge --info:
Portage 2.1.3.9 (default-linux/ppc/ppc32/2007.0/G4, gcc-4.1.1, glibc-2.5-r4, 2.6.22-gentoo-r5 ppc)
=================================================================
System uname: 2.6.22-gentoo-r5 ppc 7447A, altivec supported
Timestamp of tree: Wed, 03 Oct 2007 12:50:01 +0000
app-shells/bash:     3.2_p17
dev-lang/python:     2.4.3-r4
dev-python/pycrypto: 2.0.1-r6
sys-apps/baselayout: 1.12.9-r2
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.13, 2.61-r1
sys-devel/automake:  1.6.3, 1.7.9-r1, 1.10
sys-devel/binutils:  2.17
sys-devel/gcc-config: 1.3.16
sys-devel/libtool:   1.5.24
virtual/os-headers:  2.6.21
ACCEPT_KEYWORDS="ppc"
CBUILD="powerpc-unknown-linux-gnu"
CFLAGS="-O2 -mcpu=powerpc -mtune=powerpc -fno-strict-aliasing -pipe"
CHOST="powerpc-unknown-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/X11/xkb"
CONFIG_PROTECT_MASK="/etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/terminfo"
CXXFLAGS="-O2 -mcpu=powerpc -mtune=powerpc -fno-strict-aliasing -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks metadata-transfer sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://ftp.snt.utwente.nl/pub/os/linux/gentoo http://gentoo.tiscali.nl/ "
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="X aalib acl alsa altivec berkdb bitmap-fonts cli cracklib crypt cscope cups directfb dri esd fortran gdbm gif gpm iconv ipv6 isdnlog jpeg midi mono mudflap ncurses nls nptl nptlonly opengl openmp pcre perl png ppc pppd python readline reflection sdl session spl ssl tcpd truetype-fonts type1-fonts unicode xorg zlib" ALSA_CARDS="aoa aoa-fabric-layout aoa-onyx aoa-soundbus aoa-soundbus-i2s aoa-tas aoa-toonie powermac usb-audio via82xx" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="radeon"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
Comment 1 Gilles Dartiguelongue (RETIRED) gentoo-dev 2007-10-03 20:12:51 UTC
_dl_hwcap is not a libxml2 symbol as far as I can see. Could you try running revdep-rebuild and/or check what in the libxml dependencies needs rebuilding.
Comment 2 Jozef 2007-10-04 00:09:49 UTC
Thx for replying! revdep-rebuild found something, but looked unrelated (a libdb-...so needed by perl and python). 
Since then some other packages failed with a similar error, so it is not specific to libxml2. I found that _dl_hwcap is a variable in glibc, a "mask for hardware capabilities that are available" and is used in all kinds of processor-specific assembler code, too difficult for me to look into further. Here is the output of 'emerge audiofile'.

/bin/sh ../libtool --mode=link powerpc-unknown-linux-gnu-gcc  -O2 -mcpu=powerpc -mtune=powerpc -fno-strict-aliasing -pipe   -o linuxtest  linuxtest.o ../libaudiofile/libaudiofile.la -lm 
powerpc-unknown-linux-gnu-gcc -O2 -mcpu=powerpc -mtune=powerpc -fno-strict-aliasing -pipe -o .libs/power power.o  ../libaudiofile/.libs/libaudiofile.so -lm
/mnt/matrox/usr/powerpc-unknown-linux-gnu/gcc-bin/4.1.1/../../../lib/gcc/powerpc-unknown-linux-gnu/4.1.1/../../../libm.a(w_sqrt.o): In function `sqrt':
(.text+0xa): undefined reference to `_dl_hwcap'
/mnt/matrox/usr/powerpc-unknown-linux-gnu/gcc-bin/4.1.1/../../../lib/gcc/powerpc-unknown-linux-gnu/4.1.1/../../../libm.a(w_sqrt.o): In function `sqrt':
(.text+0x16): undefined reference to `_dl_hwcap'
/mnt/matrox/usr/powerpc-unknown-linux-gnu/gcc-bin/4.1.1/../../../lib/gcc/powerpc-unknown-linux-gnu/4.1.1/../../../libm.a(e_sqrt.o): In function `__ieee754_sqrt':
(.text+0x18a): undefined reference to `_dl_hwcap'
/mnt/matrox/usr/powerpc-unknown-linux-gnu/gcc-bin/4.1.1/../../../lib/gcc/powerpc-unknown-linux-gnu/4.1.1/../../../libm.a(e_sqrt.o): In function `__ieee754_sqrt':
(.text+0x192): undefined reference to `_dl_hwcap'
collect2: ld returned 1 exit status
make[2]: *** [power] Error 1
Comment 3 Jozef 2007-10-04 00:13:12 UTC
Oh, I tried emerging the newest glibc, no difference. Then I tried downgrading to an older glibc, but I got an error somewhat like  "Sanity check: downgrading glibc is a sure way to destruction!" :)
Comment 4 Gilles Dartiguelongue (RETIRED) gentoo-dev 2007-10-04 06:15:57 UTC
reassigning to toolchain, they'll know better than me what might be the problem
Comment 5 SpanKY gentoo-dev 2007-10-07 02:45:27 UTC
_dl_hwcap is an internal glibc variable ... nothing should be referring to it outside of glibc ...

when you say "latest glibc version", what version are you talking about ?

the output from sndfile looks screwed up ... it should not have been linking against the static libm which implies your /usr/lib/libm.so does not exist

try doing something simple like:
echo 'int main(){return sqrt((unsigned long)main);}' > test.c
gcc test.c -lm
Comment 6 Jozef 2007-10-09 18:23:11 UTC
(In reply to comment #5)
> the output from sndfile looks screwed up ... it should not have been linking
> against the static libm which implies your /usr/lib/libm.so does not exist

You were completely right, /usr/lib/libm.so wasn't found. You see I mounted an external hard drive that I can't boot from and instead of making several partitions for /usr, /var, /home etc.. I thought I could get away with linking e.g. /usr to 

ln -s /mnt/matrox/usr /usr

That worked well for a while but libm.so (and others in /usr/lib) are symlinks themselves, with a relative path (../../lib/libm.so). That should point to /lib, but now didn't. So if glibc is not supposed to play nice with symlinks, then it;s not a bug.

BTW, the output of your one liner was again an undefined reference to `_dl_hwcap'. Thx for helping!
Comment 7 SpanKY gentoo-dev 2007-10-09 18:33:46 UTC
yeah, symlinking /usr is known to be funky

use a bind mount instead:
mount --bind /mnt/matrox/usr /usr

that should work for most everything ...