Failed to compiler x11-libs/cairo-1.8.10 Reproducible: Always Steps to Reproduce: 1.emerge -av cairo Actual Results: /ext/usr/x86_64-pc-linux-gnu/gcc-bin/4.3.4/../../../lib/gcc/x86_64-pc-linux-gnu/4.3.4/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/lib64/libm.a(s_ceil.o): relocation R_X86_64_32 against `.text' can not be used when making a shared object; recompile with -fPIC /usr/lib64/libm.a: could not read symbols: Bad value collect2: ld returned 1 exit status Expected Results: ebuild should compile without errors
Created attachment 240167 [details] build.log
Please post your `emerge --info =x11-libs/cairo-1.8.10' too.
emerge --info =x11-libs/cairo-1.8.10 Portage 2.1.8.3 (default/linux/amd64/10.0/desktop, gcc-4.3.4, glibc-2.11.2-r0, 2.6.33-gentoo-r2 x86_64) ================================================================= System Settings ================================================================= System uname: Linux-2.6.33-gentoo-r2-x86_64-AMD_Athlon-tm-_64_X2_Dual_Core_Processor_6000+-with-gentoo-1.12.13 Timestamp of tree: Mon, 26 Jul 2010 00:15:01 +0000 ccache version 2.4 [enabled] app-shells/bash: 4.0_p37 dev-java/java-config: 2.1.11 dev-lang/python: 2.6.5-r2, 3.1.2-r3 dev-util/ccache: 2.4-r7 dev-util/cmake: 2.6.4-r3 sys-apps/baselayout: 1.12.13 sys-apps/sandbox: 1.6-r2 sys-devel/autoconf: 2.13, 2.65 sys-devel/automake: 1.9.6-r3, 1.10.3, 1.11.1 sys-devel/binutils: 2.20.1-r1 sys-devel/gcc: 4.3.4, 4.4.3-r2 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.6b virtual/os-headers: 2.6.30-r1 ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="* -@EULA" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=athlon64 -O2 -pipe -fomit-frame-pointer" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/X11/xkb /usr/share/config" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-march=athlon64 -O2 -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="assume-digests ccache distlocks fixpackages news parallel-fetch protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="be_BY.UTF-8" LDFLAGS="-Wl,-O1" LINGUAS="en ru de" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/var/lib/layman/roslin /var/lib/layman/roslin /usr/local/portage/layman/Spring /usr/local/portage/layman/sunrise" SYNC="rsync://rsync.de.gentoo.org/gentoo-portage" USE="3dnow 3dnowext X Xaw3d a52 aac aalib acl acpi aim alsa amd64 apache2 apm atm audiofile bash-completion bcmath berkdb bluetooth branding bzip2 cairo cdda cdr cgi cli consolekit cracklib crypt css cups cxx dbus device-mapper dga directfb dri dts dv dvd dvdr emboss encode exif fam fastcgi fbcon ffmpeg fftw firefox flac fontconfig fortran ftp gdbm gdu geoip gif gimp git glut gmplayer gnome gpm grahpviz gstreamer gtk hal iconv icq icu idn ieee1934 imagemagick jabber javascript jingle joystick jpeg jpeg2k kde kdrive kerberos kpathsea lame latex lcms ldap libgda libnotify libwww mad matroska mikmod mime mmx mmxext mng modplug modules mono mozilla mp3 mp4 mpeg mplayer mudflap multilib musepack mysql mysqli ncurses nls nptl nptlonly nsplugin ogg openal opengl openmp oscar pam pango pcre pdf perl php png policykit posix ppds pppd python qt3support qt4 quicktime radio rdesktop readline reflection rss samba sdl session smp sockets speex spell spl sqlite sse sse2 ssl startup-notification subversion svg symlink sysfs syslog tcpd theora threads tiff truetype unicode usb v4l v4l1 v4l2 vcd vdpau videos vnc vorbis wavpack wxwidgets x264 xcb xcomposite xft xine xinerama xml xmlrpc xorg xpm xscreensaver xulrunner xv xvid zlib zsh-completion" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="evdev keyboard mouse joystick" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en ru de" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia fbdev glint mach64 nv sisusb v4l vesa" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
What does that '/ext/usr/' mean ? Are you cross-compiling ? Attach config.log too.
ls -lash | grep usr 0 lrwxrwxrwx 1 root root 9 Jul 24 11:57 usr -> /ext/usr/ /usr is symbolic link for /ext/usr ( there is another hdd mounted under /ext ) I am not cross-compiling emerge -pqv =x11-libs/cairo-1.8.10 [ebuild N ] x11-libs/cairo-1.8.10 USE="X cleartype directfb lcdfilter opengl svg (-aqua) -debug -doc -glitz -xcb"
I have found that libm.a is build without -fPIC. After some researches of glibc build logs I found libm_pic.a that is build _with_ -fPIC option. After copying it to /usr/lib64 and renaming to libm.a cairo was able to compile. So this is not a cairo bug, but I am wondering why I have had not relocatable version of libm.a in /usr/lib64
The bug lies somewhere in your system - it should link with libm.so.6, not with the static lib, but something you did prevents it, making it get the static lib instead. My first guess was cross-compiling, as you say you're not, ... For completeness, attach config.log.
Created attachment 240423 [details] config.log
(In reply to comment #7) > The bug lies somewhere in your system - > it should link with libm.so.6, not with the static lib, but something you did > prevents it, making it get the static lib instead. > My first guess was cross-compiling, as you say you're not, > ... > > For completeness, attach config.log. > yes, it was a bug in my system. After some researches I have found the following: /ext/usr/lib64$ file * | grep broken libanl.so: broken symbolic link to `../../lib64/libanl.so.1' libBrokenLocale.so: broken symbolic link to `../../lib64/libBrokenLocale.so.1' libcidn.so: broken symbolic link to `../../lib64/libcidn.so.1' libcrypt.so: broken symbolic link to `../../lib64/libcrypt.so.1' libdl.so: broken symbolic link to `../../lib64/libdl.so.2' libe2p.so: broken symbolic link to `../../lib64/libe2p.so.2' libext2fs.so: broken symbolic link to `../../lib64/libext2fs.so.2' libm.so: broken symbolic link to `../../lib64/libm.so.6' libnsl.so: broken symbolic link to `../../lib64/libnsl.so.1' libnss_compat.so: broken symbolic link to `../../lib64/libnss_compat.so.2' libnss_dns.so: broken symbolic link to `../../lib64/libnss_dns.so.2' libnss_files.so: broken symbolic link to `../../lib64/libnss_files.so.2' libnss_hesiod.so: broken symbolic link to `../../lib64/libnss_hesiod.so.2' libnss_nisplus.so: broken symbolic link to `../../lib64/libnss_nisplus.so.2' libnss_nis.so: broken symbolic link to `../../lib64/libnss_nis.so.2' libresolv.so: broken symbolic link to `../../lib64/libresolv.so.2' librt.so: broken symbolic link to `../../lib64/librt.so.1' libthread_db.so: broken symbolic link to `../../lib64/libthread_db.so.1' libudev.so: broken symbolic link to `../../lib64/libudev.so.0.6.1' libutil.so: broken symbolic link to `../../lib64/libutil.so.1' after moving /usr to another hdd I got this broken symbolic links. They belongs to this packages: /ext/usr/lib64$ file * | grep broken | awk -F ":" '{print $1}' | xargs equery b [ Searching for file(s) libanl.so,libBrokenLocale.so,libcidn.so,libcrypt.so,libdl.so,libe2p.so,libext2fs.so,libm.so,libnsl.so,libnss_compat.so,libnss_dns.so,libnss_files.so,libnss_hesiod.so,libnss_nisplus.so,libnss_nis.so,libresolv.so,librt.so,libthread_db.so,libudev.so,libutil.so in *... ] sys-libs/glibc-2.11.2 (/usr/lib32/libresolv.so -> ../../lib32/libresolv.so.2) sys-libs/glibc-2.11.2 (/usr/lib64/libnss_nisplus.so -> ../../lib64/libnss_nisplus.so.2) sys-libs/glibc-2.11.2 (/usr/lib32/libcidn.so -> ../../lib32/libcidn.so.1) sys-libs/glibc-2.11.2 (/usr/lib64/libBrokenLocale.so -> ../../lib64/libBrokenLocale.so.1) sys-libs/glibc-2.11.2 (/usr/lib32/librt.so -> ../../lib32/librt.so.1) sys-libs/glibc-2.11.2 (/usr/lib64/libresolv.so -> ../../lib64/libresolv.so.2) sys-libs/glibc-2.11.2 (/usr/lib32/libanl.so -> ../../lib32/libanl.so.1) sys-libs/glibc-2.11.2 (/usr/lib64/libnss_nis.so -> ../../lib64/libnss_nis.so.2) sys-libs/glibc-2.11.2 (/usr/lib32/libnss_nisplus.so -> ../../lib32/libnss_nisplus.so.2) sys-libs/glibc-2.11.2 (/usr/lib32/libnss_hesiod.so -> ../../lib32/libnss_hesiod.so.2) sys-libs/glibc-2.11.2 (/usr/lib64/librt.so -> ../../lib64/librt.so.1) sys-libs/glibc-2.11.2 (/usr/lib32/libnss_files.so -> ../../lib32/libnss_files.so.2) sys-libs/glibc-2.11.2 (/usr/lib32/libcrypt.so -> ../../lib32/libcrypt.so.1) sys-libs/glibc-2.11.2 (/usr/lib32/libnss_dns.so -> ../../lib32/libnss_dns.so.2) sys-libs/glibc-2.11.2 (/usr/lib64/libnss_dns.so -> ../../lib64/libnss_dns.so.2) sys-libs/glibc-2.11.2 (/usr/lib64/libthread_db.so -> ../../lib64/libthread_db.so.1) sys-libs/glibc-2.11.2 (/usr/lib32/libnss_nis.so -> ../../lib32/libnss_nis.so.2) sys-libs/glibc-2.11.2 (/usr/lib32/libdl.so -> ../../lib32/libdl.so.2) sys-libs/glibc-2.11.2 (/usr/lib64/libnsl.so -> ../../lib64/libnsl.so.1) sys-libs/glibc-2.11.2 (/usr/lib64/libanl.so -> ../../lib64/libanl.so.1) sys-libs/glibc-2.11.2 (/usr/lib64/libcrypt.so -> ../../lib64/libcrypt.so.1) sys-libs/glibc-2.11.2 (/usr/lib32/libthread_db.so -> ../../lib32/libthread_db.so.1) sys-libs/glibc-2.11.2 (/usr/lib32/libm.so -> ../../lib32/libm.so.6) sys-libs/glibc-2.11.2 (/usr/lib32/libnss_compat.so -> ../../lib32/libnss_compat.so.2) sys-libs/glibc-2.11.2 (/usr/lib64/libutil.so -> ../../lib64/libutil.so.1) sys-libs/glibc-2.11.2 (/usr/lib64/libnss_files.so -> ../../lib64/libnss_files.so.2) sys-libs/glibc-2.11.2 (/usr/lib64/libm.so -> ../../lib64/libm.so.6) sys-libs/glibc-2.11.2 (/usr/lib64/libnss_hesiod.so -> ../../lib64/libnss_hesiod.so.2) sys-libs/glibc-2.11.2 (/usr/lib64/libdl.so -> ../../lib64/libdl.so.2) sys-libs/glibc-2.11.2 (/usr/lib32/libnsl.so -> ../../lib32/libnsl.so.1) sys-libs/glibc-2.11.2 (/usr/lib64/libnss_compat.so -> ../../lib64/libnss_compat.so.2) sys-libs/glibc-2.11.2 (/usr/lib32/libBrokenLocale.so -> ../../lib32/libBrokenLocale.so.1) sys-libs/glibc-2.11.2 (/usr/lib64/libcidn.so -> ../../lib64/libcidn.so.1) sys-libs/glibc-2.11.2 (/usr/lib32/libutil.so -> ../../lib32/libutil.so.1) app-emulation/emul-linux-x86-baselibs-20100611 (/usr/lib32/libext2fs.so -> ../../lib32/libext2fs.so.2) app-emulation/emul-linux-x86-baselibs-20100611 (/usr/lib32/libe2p.so -> ../../lib32/libe2p.so.2) sys-fs/udev-151-r2 (/usr/lib64/libudev.so -> ../../lib64/libudev.so.0.6.1) sys-fs/e2fsprogs-1.41.11 (/usr/lib64/libext2fs.so -> ../../lib64/libext2fs.so.2) sys-fs/e2fsprogs-1.41.11 (/usr/lib64/libe2p.so -> ../../lib64/libe2p.so.2) I have tryed to reinstall glibc, but it steel makes relative links for these libs. Should it be considered as a bug in sys-libs/glibc-2.11.2, app-emulation/emul-linux-x86-baselibs-20100611, sys-fs/udev-151-r2 and sys-fs/e2fsprogs-1.41.11?
I'd say it's a bug of your '/ext/usr' setup. YMMV.
(In reply to comment #10) > I'd say it's a bug of your '/ext/usr' setup. > YMMV. > I agree that it was bad idea to move /usr somewhere else but is there good reason why are these symbolic links not absolute? I have fixed paths but for example after reinstall of sys-fs/e2fsprogs I get broken links for libext2fs.so again. Installer should create symbolic links like ../../../lib64/ but it does not
My advice would be to remove the symlink to usr and instead mount --bind /ext/usr to /usr
Its a configuration issue.