Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 502394 - media-video/vlc-2.1.4 - ld: error: .../temp/cchbdDZp.ltrans0.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'pw_1' which may overflow at runtime; recompile with -fPIC
Summary: media-video/vlc-2.1.4 - ld: error: .../temp/cchbdDZp.ltrans0.ltrans.o: requir...
Status: RESOLVED NEEDINFO
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Tom Wijsman (TomWij) (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-02-25 09:21 UTC by Marcin Mirosław
Modified: 2014-03-27 22:12 UTC (History)
1 user (show)

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


Attachments
build.log.bz2 (build.log.bz2,49.33 KB, application/x-bzip)
2014-02-25 09:23 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-25 09:21:59 UTC
libtool: link:  x86_64-pc-linux-gnu-gcc -std=gnu99 -shared  -fPIC -DPIC  .libs/libdynamicoverlay_plugin_la-dynamicoverlay_buffer.o .libs/libdynamicoverlay_plugin_la-dynamicoverlay_queue.o .libs/libdynamicoverlay_plugin_la-dynamicoverlay_list.o .libs/libdynamicoverlay_plugin_la-dynamicoverlay_commands.o .libs/libdynamicoverlay_plugin_la-dynamicoverlay.o   -Wl,-rpath -Wl,/var/tmp/portage/media-video/vlc-2.1.4/work/vlc-2.1.4/src/.libs ../../compat/.libs/libcompat.a -L/usr/lib64/sidplay/builders/ ../../src/.libs/libvlccore.so -lrt -lidn -ldl -lm -ldbus-1 -Wl,--as-needed -lpthread  -O2 -march=native -fuse-linker-plugin -flto=2 -Wl,-O1 -Wl,--sort-common   -Wl,-soname -Wl,libdynamicoverlay_plugin.so -Wl,-version-script -Wl,.libs/libdynamicoverlay_plugin.ver -o .libs/libdynamicoverlay_plugin.so
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../x86_64-pc-linux-gnu/bin/ld: error: /var/tmp/portage/media-video/vlc-2.1.4/temp/cchbdDZp.ltrans0.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'pw_1' which may overflow at runtime; recompile with -fPIC
collect2: error: ld returned 1 exit status
Makefile:2667: recipe for target 'libdeinterlace_plugin.la' failed
make[4]: *** [libdeinterlace_plugin.la] Error 1
make[4]: *** Waiting for unfinished jobs....

Reproducible: Always




Portage 2.2.8-r1 (default/linux/amd64/13.0/desktop/kde, gcc-4.8.2, glibc-2.18-r1, 3.13.4-gentoo x86_64)
=================================================================
System uname: Linux-3.13.4-gentoo-x86_64-Intel-R-_Core-TM-2_Duo_CPU_E8400_@_3.00GHz-with-gentoo-2.2
KiB Mem:     3079052 total,    158360 free
KiB Swap:    5242812 total,   5052936 free
Timestamp of tree: Tue, 25 Feb 2014 06:30: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.4
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/php/apache2-php5.5/ext-active/ /etc/php/cgi-php5.5/ext-active/ /etc/php/cli-php5.5/ext-active/ /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 -z relro -Wl,--sort-common"
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 unwind 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 1 Marcin Mirosław 2014-02-25 09:23:08 UTC
Created attachment 371208 [details]
build.log.bz2
Comment 2 Tom Wijsman (TomWij) (RETIRED) gentoo-dev 2014-03-26 16:04:17 UTC
+  26 Mar 2014; Tom Wijsman <TomWij@gentoo.org> vlc-2.0.8.ebuild,
+  vlc-2.1.4.ebuild, vlc-2.1.9999.ebuild, vlc-9999.ebuild:
+  Append -fPIC temporarily for bug #502394, reported by Marcin Mirosław.

Thank you for reporting.
Comment 3 Samuli Suominen (RETIRED) gentoo-dev 2014-03-26 17:38:39 UTC
(In reply to Tom Wijsman (TomWij) from comment #2)
> +  26 Mar 2014; Tom Wijsman <TomWij@gentoo.org> vlc-2.0.8.ebuild,
> +  vlc-2.1.4.ebuild, vlc-2.1.9999.ebuild, vlc-9999.ebuild:
> +  Append -fPIC temporarily for bug #502394, reported by Marcin Mirosław.
> 
> Thank you for reporting.

What? Did you look at his *FLAGS:

LDFLAGS="-Wl,-O1 -Wl,--as-needed -z relro -Wl,--sort-common"
                                  ^^^^^^^^

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"

lto? linker plugin? relro?

Reopen as appending -fPIC is just wrong, and the build (or system) is broken per-user, likely not a fault of the VLC
Appending -fPIC adds major overhead
Comment 4 Samuli Suominen (RETIRED) gentoo-dev 2014-03-26 17:47:06 UTC
https://www.gentoo.org/proj/en/base/amd64/howtos/index.xml?part=1&chap=3#doc_chap6

"In this case, globally adding -fPIC to C[XX]FLAGS resolves the issue, although this practice is discouraged because the executables end up being PIC-enabled, too."

major overhead from adding -fPIC needlessly
Comment 5 Tom Wijsman (TomWij) (RETIRED) gentoo-dev 2014-03-26 18:38:29 UTC
(In reply to Samuli Suominen from comment #3)
> lto? linker plugin? relro?
> 
> Reopen as appending -fPIC is just wrong, and the build (or system) is broken
> per-user, likely not a fault of the VLC
> Appending -fPIC adds major overhead

Thanks. Right; as this is less common, I forgot to check for that in this case.

+  26 Mar 2014; Tom Wijsman <TomWij@gentoo.org> vlc-2.0.8.ebuild,
+  vlc-2.1.4.ebuild, vlc-2.1.9999.ebuild, vlc-9999.ebuild:
+  Remove temporary -fPIC per ssuominen's comments in bug #502394.

Marcin; if you still want this to work, you can try to be supported upstream.
Comment 6 Marcin Mirosław 2014-03-27 09:27:49 UTC
What is wrong with using "lto? linker plugin? relro?"?
Comment 7 Tom Wijsman (TomWij) (RETIRED) gentoo-dev 2014-03-27 16:57:35 UTC
They are unsupported on Gentoo at the moment; in other words, it is either the responsibility of upstream (if they support it) or the user to address build errors as the result of using these flags.
Comment 8 Samuli Suominen (RETIRED) gentoo-dev 2014-03-27 17:06:44 UTC
Can you try with sane flags, like '-O2 -march=native -pipe' and '-Wl,-O1 -Wl,--as-needed'?

Some flags look safe, like -frecord-gcc-switches, but others like -ftree-
vectorize (generates bad code for eg. zlib), -fweb (generates bad code for eg. x264 and possibly other media related codecs where ASM is involved), LTO (known to not be ready for system wide use yet), ...

It shouldn't be the job of the maintainer to bisect the users flags, rather, if you have chosen to use complex flag combination like this, it should be the user who provides the exact information what flag causes the problem and then bisect that even futher down to specific objects, ...

So this is really a case for 'RESOLVED, NEEDINFO'
Comment 9 Marcin Mirosław 2014-03-27 22:12:21 UTC
Doing bisection of user flag isn't necessary. I know that compilation error comes from using "lto". Phrase "lto? linker plugin? relro?" sounds like all of mentioned option are widely known as making broken code at least. As far as I know relro is safe[1], "linker plugin" is needed to use gold linker (I'm not sure if it interpolate with lto). What is the status of lto? Some times ago there were a warning that it's unsupported by Gentoo. Is lto still punished like e.g "-ftree-
vectorize"?

[1] - https://wiki.gentoo.org/wiki/Hardened/Toolchain#Issues_arising_from_default_RELRO