Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 500254 - dev-libs/elfutils-0.158 with lto - ld: error: .../temp/ccnMLnSO.ltrans0.ltrans.o: requires dynamic R_X86_64_32 reloc which may overflow at runtime; recompile with -fPIC
Summary: dev-libs/elfutils-0.158 with lto - ld: error: .../temp/ccnMLnSO.ltrans0.ltran...
Status: RESOLVED OBSOLETE
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Toolchain Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: lto
  Show dependency tree
 
Reported: 2014-02-04 10:21 UTC by Marcin Mirosław
Modified: 2019-02-13 22:17 UTC (History)
0 users

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


Attachments
build.log (build.log,115.58 KB, text/plain)
2014-02-04 10:21 UTC, Marcin Mirosław
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Marcin Mirosław 2014-02-04 10:21:12 UTC
Created attachment 369516 [details]
build.log

86_64-pc-linux-gnu-ar cru libelf_pic.a elf_version.os elf_hash.os elf_error.os elf_fill.os elf_begin.os elf_next.os elf_rand.os elf_end.os elf_kind.os gelf_getclass.os elf_getbase.os elf_getident.os elf32_fsize.os elf64_fsize.os gelf_fsize.os elf32_xlatetof.os elf32_xlatetom.os elf64_xlatetof.os elf64_xlatetom.os gelf_xlate.os elf32_getehdr.os elf64_getehdr.os gelf_getehdr.os elf32_newehdr.os elf64_newehdr.os gelf_newehdr.os gelf_update_ehdr.os elf32_getphdr.os elf64_getphdr.os gelf_getphdr.os elf32_newphdr.os elf64_newphdr.os gelf_newphdr.os gelf_update_phdr.os elf_getarhdr.os elf_getarsym.os elf_rawfile.os elf_readall.os elf_cntl.os elf_getscn.os elf_nextscn.os elf_ndxscn.os elf_newscn.os elf32_getshdr.os elf64_getshdr.os gelf_getshdr.os gelf_update_shdr.os elf_strptr.os elf_rawdata.os elf_getdata.os elf_newdata.os elf_getdata_rawchunk.os elf_flagelf.os elf_flagehdr.os elf_flagphdr.os elf_flagscn.os elf_flagshdr.os elf_flagdata.os elf_memory.os elf_update.os elf32_updatenull.os elf64_updatenull.os elf32_updatefile.os elf64_updatefile.os gelf_getsym.os gelf_update_sym.os gelf_getversym.os gelf_getverneed.os gelf_getvernaux.os gelf_getverdef.os gelf_getverdaux.os gelf_getrel.os gelf_getrela.os gelf_update_rel.os gelf_update_rela.os gelf_getdyn.os gelf_update_dyn.os gelf_getmove.os gelf_update_move.os gelf_getsyminfo.os gelf_update_syminfo.os gelf_getauxv.os gelf_update_auxv.os gelf_getnote.os gelf_xlatetof.os gelf_xlatetom.os nlist.os gelf_getsymshndx.os gelf_update_symshndx.os gelf_update_versym.os gelf_update_verneed.os gelf_update_vernaux.os gelf_update_verdef.os gelf_update_verdaux.os elf_getphdrnum.os elf_getshdrnum.os elf_getshdrstrndx.os gelf_checksum.os elf32_checksum.os elf64_checksum.os libelf_crc32.os libelf_next_prime.os elf_clone.os gelf_getlib.os gelf_update_lib.os elf32_offscn.os elf64_offscn.os gelf_offscn.os elf_getaroff.os elf_gnu_hash.os elf_scnshndx.os 
x86_64-pc-linux-gnu-ranlib libelf_pic.a
x86_64-pc-linux-gnu-gcc -std=gnu99 -Wall -Wshadow -Wunused -Wextra -fgnu89-inline -Wformat=2     -O2 -march=native -pipe -fpeel-loops -frename-registers -frecord-gcc-switches -fno-unwind-tables -fno-asynchronous-unwind-tables           -fpredictive-commoning -fweb -ftree-vectorize -floop-interchange -fivopts           -floop-block -floop-strip-mine -fira-loop-pressure -floop-interchange -ftree-loop-linear -Wdisabled-optimization   -fuse-linker-plugin -flto=2  -Wl,-O1 -Wl,--as-needed -o libelf.so -shared -o libelf.so -Wl,--whole-archive,libelf_pic.a,--no-whole-archive \
        -Wl,--version-script,/var/tmp/portage/dev-libs/elfutils-0.158/work/elfutils-0.158/libelf/libelf.map,--no-undefined \
        -Wl,--soname,libelf.so.1,-z,defs,-z,relro 
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../x86_64-pc-linux-gnu/bin/ld: error: /var/tmp/portage/dev-libs/elfutils-0.158/temp/ccYwNXDD.ltrans0.ltrans.o: requires dynamic R_X86_64_32 reloc which may overflow at runtime; recompile with -fPIC
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../x86_64-pc-linux-gnu/bin/ld: error: /var/tmp/portage/dev-libs/elfutils-0.158/temp/ccYwNXDD.ltrans1.ltrans.o: requires dynamic R_X86_64_32 reloc which may overflow at runtime; recompile with -fPIC
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../x86_64-pc-linux-gnu/bin/ld: error: /var/tmp/portage/dev-libs/elfutils-0.158/temp/ccYwNXDD.ltrans2.ltrans.o: requires dynamic R_X86_64_PC32 reloc against '__tls_get_addr' which may overflow at runtime; recompile with -fPIC
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../x86_64-pc-linux-gnu/bin/ld: error: /var/tmp/portage/dev-libs/elfutils-0.158/temp/ccYwNXDD.ltrans3.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'memcpy' which may overflow at runtime; recompile with -fPIC
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../x86_64-pc-linux-gnu/bin/ld: error: /var/tmp/portage/dev-libs/elfutils-0.158/temp/ccYwNXDD.ltrans3.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'pread' which may overflow at runtime; recompile with -fPIC
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../x86_64-pc-linux-gnu/bin/ld: error: /var/tmp/portage/dev-libs/elfutils-0.158/temp/ccYwNXDD.ltrans4.ltrans.o: requires dynamic R_X86_64_PC32 reloc against '__tls_get_addr' which may overflow at runtime; recompile with -fPIC
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../x86_64-pc-linux-gnu/bin/ld: error: /var/tmp/portage/dev-libs/elfutils-0.158/temp/ccYwNXDD.ltrans5.ltrans.o: requires dynamic R_X86_64_32 reloc which may overflow at runtime; recompile with -fPIC
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../x86_64-pc-linux-gnu/bin/ld: error: /var/tmp/portage/dev-libs/elfutils-0.158/temp/ccYwNXDD.ltrans6.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'pwrite' which may overflow at runtime; recompile with -fPIC
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../x86_64-pc-linux-gnu/bin/ld: error: /var/tmp/portage/dev-libs/elfutils-0.158/temp/ccYwNXDD.ltrans7.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'memmove' which may overflow at runtime; recompile with -fPIC
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../x86_64-pc-linux-gnu/bin/ld: error: /var/tmp/portage/dev-libs/elfutils-0.158/temp/ccYwNXDD.ltrans8.ltrans.o: requires dynamic R_X86_64_PC32 reloc against '__tls_get_addr' which may overflow at runtime; recompile with -fPIC
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../x86_64-pc-linux-gnu/bin/ld: error: /var/tmp/portage/dev-libs/elfutils-0.158/temp/ccYwNXDD.ltrans9.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'malloc' which may overflow at runtime; recompile with -fPIC
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../x86_64-pc-linux-gnu/bin/ld: error: /var/tmp/portage/dev-libs/elfutils-0.158/temp/ccYwNXDD.ltrans10.ltrans.o: requires dynamic R_X86_64_PC32 reloc against '__tls_get_addr' which may overflow at runtime; recompile with -fPIC
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../x86_64-pc-linux-gnu/bin/ld: error: /var/tmp/portage/dev-libs/elfutils-0.158/temp/ccYwNXDD.ltrans11.ltrans.o: requires dynamic R_X86_64_PC32 reloc against '__tls_get_addr' which may overflow at runtime; recompile with -fPIC
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../x86_64-pc-linux-gnu/bin/ld: error: /var/tmp/portage/dev-libs/elfutils-0.158/temp/ccYwNXDD.ltrans12.ltrans.o: requires dynamic R_X86_64_PC32 reloc against '__tls_get_addr' which may overflow at runtime; recompile with -fPIC
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../x86_64-pc-linux-gnu/bin/ld: error: /var/tmp/portage/dev-libs/elfutils-0.158/temp/ccYwNXDD.ltrans13.ltrans.o: requires dynamic R_X86_64_32 reloc which may overflow at runtime; recompile with -fPIC
collect2: error: ld returned 1 exit status
Makefile:944: recipe for target 'libelf.so' failed
make[2]: *** [libelf.so] Error 1
make[2]: Leaving directory '/var/tmp/portage/dev-libs/elfutils-0.158/work/elfutils-0.158-amd64/libelf'
Makefile:464: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/var/tmp/portage/dev-libs/elfutils-0.158/work/elfutils-0.158-amd64'
Makefile:379: recipe for target 'all' failed
make: *** [all] Error 2
 * ERROR: dev-libs/elfutils-0.158::gentoo failed (compile phase):
 *   emake failed
 * 
 * If you need support, post the output of `emerge --info '=dev-libs/elfutils-0.158::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=dev-libs/elfutils-0.158::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/dev-libs/elfutils-0.158/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-libs/elfutils-0.158/temp/environment'.
 * Working directory: '/var/tmp/portage/dev-libs/elfutils-0.158/work/elfutils-0.158-amd64'
 * S: '/var/tmp/portage/dev-libs/elfutils-0.158/work/elfutils-0.158'

>>> Failed to emerge dev-libs/elfutils-0.158, Log file:

>>>  '/var/tmp/portage/dev-libs/elfutils-0.158/temp/build.log'
Comment 1 Marcin Mirosław 2014-02-04 10:22:05 UTC
# emerge --info
Portage 2.2.8-r1 (default/linux/amd64/13.0/desktop/kde, gcc-4.8.2, glibc-2.18-r1, 3.13.1-gentoo x86_64)
=================================================================
System uname: Linux-3.13.1-gentoo-x86_64-Intel-R-_Core-TM-2_Duo_CPU_E8400_@_3.00GHz-with-gentoo-2.2
KiB Mem:     3079060 total,     48096 free
KiB Swap:    5242812 total,   5127968 free
Timestamp of tree: Tue, 04 Feb 2014 07:00:01 +0000
ld GNU gold (GNU Binutils 2.24) 1.11
ccache version 3.1.9 [enabled]
app-shells/bash:          4.2_p45-r1
dev-java/java-config:     2.2.0
dev-lang/python:          2.7.6, 3.2.5-r3, 3.3.3
dev-util/ccache:          3.1.9-r3
dev-util/cmake:           2.8.12.2
dev-util/pkgconfig:       0.28
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12.4
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.12.6, 1.14.1
sys-devel/binutils:       2.24-r2
sys-devel/gcc:            4.5.4, 4.7.3-r1, 4.8.2
sys-devel/gcc-config:     1.8
sys-devel/libtool:        2.4.2
sys-devel/make:           4.0-r1
sys-kernel/linux-headers: 3.13 (virtual/os-headers)
sys-libs/glibc:           2.18-r1
Repositories: gentoo
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA AdobeFlash-11.x PUEL Q3AEULA dlj-1.1 Oracle-BCLA-JavaSE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -march=native -pipe -fpeel-loops -frename-registers -frecord-gcc-switches -fno-unwind-tables -fno-asynchronous-unwind-tables           -fpredictive-commoning -fweb -ftree-vectorize -floop-interchange -fivopts           -floop-block -floop-strip-mine -fira-loop-pressure -floop-interchange -ftree-loop-linear -Wdisabled-optimization   -fuse-linker-plugin -flto=2"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -march=native -pipe -fpeel-loops -frename-registers -frecord-gcc-switches -fno-unwind-tables -fno-asynchronous-unwind-tables           -fpredictive-commoning -fweb -ftree-vectorize -floop-interchange -fivopts           -floop-block -floop-strip-mine -fira-loop-pressure -floop-interchange -ftree-loop-linear -Wdisabled-optimization   -fuse-linker-plugin -flto=2"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="Xfail-clean Xkeepwork Xunmerge-backup assume-digests binpkg-logs ccache collision-protect compressdebug config-protect-if-modified distlocks ebuild-locks fixlafiles news parallel-fetch parallel-install preserve-libs protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_EXTRA_OPTS="-O"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY=""
SYNC="rsync://192.168.138.254/gentoo-portage"
USE="X a52 aac acl acpi aio alsa amd64 apm async bash-completion bittorrent branding bzip2 cairo caps cdda cdr chroot cli consolekit crypt cups cxx dbus declarative dmx dri dvd dvdr emboss encode exif fam firefox ftp gif glibc-omitfp gpm graphite gstreamer iconv idn iproute2 ipv6 ithreads jpeg kde kipi laptop lcms libnotify lightning logrotate mad mmap mmx mmxext mng modules mp3 mp4 mpeg multilib ncurses network-cron nls nptl nsplugin nspluginwrapper objc ogg opengl openmp openssl optimization optimized-qmake pam pango pch pcre pdf phonon plasma png policykit ppds python3 qt3support qt4 readline samba sdl semantic-desktop session sharedmem smp spell sse sse2 sse3 sse4_1 ssl ssse3 startup-notification svg threads threadsafe tiff tools truetype udev udisks unicode upower urandom usb vim vim-pager vim-syntax vorbis wxwidgets x264 xattr xcb xcomposite xinerama xml xscreensaver xv xvid zip zlib" ABI_X86="64" 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" 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 cgid dav dbd deflate dir env expires ext_filter filter headers include info log_config logio mime mime_magic negotiation rewrite setenvif speling status unique_id usertrack vhost_alias" APACHE2_MPMS="worker" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" DRACUT_MODULES="caps lvm mdraid" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="pl en es es_ES" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-3 php5-4" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2 python3_3" RUBY_TARGETS="ruby19" USERLAND="GNU" VIDEO_CARDS="nvidia" 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, INSTALL_MASK, LANG, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, USE_PYTHON
Comment 2 Sietze Post 2015-06-19 17:28:52 UTC
I experience the same error also using both Graphite and LTO. However, I have not been able to compile elfutils earlier with LTO, and compiling without LTO seems to work fine.

I am not qualified to say whether this might imply a weakness in the code/compile method though.
Comment 3 Steve Arnold gentoo-dev 2015-12-02 20:09:52 UTC
This is a bit worse on arm, since it needs the no-lto.conf settings *plus* USE="static-libs" or it fails even with "plain" flags and -static.  I just checked amd64 with the same version (dev-libs/elfutils-0.164) and it builds with both static-libs and without, as long as no-lto is enabled.  Looks like the default makefile.am for libelf source dir only enables -fPIC with BUILD_STATIC.

My amd64 config in this case is basic graphite flags plus lto and arm is basic auto-vectorization plus lto (nothing edgey or -O3-funky).  Not clear if this is a "profile"/machine thing or is it "influenced" by other builds using static or not...  Seems like at least the build could use a -fPIC somewhere; yup, passing  -fPIC to LD gets rid of the static-lib issue on arm (so it looks like x86 now).  At least that's one fix I can throw in the overlay for now...
Comment 4 Andreas K. Hüttel gentoo-dev 2018-06-23 22:27:13 UTC
Do you still see this with recent elfutils?
Comment 5 Sergei Trofimovich gentoo-dev 2019-02-13 22:17:37 UTC
Let's close as obsolete and sort out issues in new versions if they exist (we have a few LTO bugs open against newer elfutils).