Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 47500 - Needs -fPIC when linked against various programs like vlc
Summary: Needs -fPIC when linked against various programs like vlc
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Library (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: AMD64 Project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-04-11 05:10 UTC by Thomas Petersen
Modified: 2004-04-11 16:52 UTC (History)
0 users

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 Thomas Petersen 2004-04-11 05:10:08 UTC
When emerging vlc the linker says:
/usr/lib/libebml.a(EbmlBinary.o): relocation R_X86_64_32S can not be used when making a shared object; recompile with -fPIC

Reproducible: Always
Steps to Reproduce:
1. emerge vlc

Actual Results:  
g++  -Wsign-compare -Wsign-compare -Wall  -finline-limit-30000 -pipe   -o 
libvlcplugin.so libplugin_a-vlcshell.o libplugin_a-vlcplugin.o 
libplugin_a-vlcpeer.o   libplugin_a-npunix.o   \
  ../lib/libvlc_pic.a -shared \
  `top_builddir=".." ../vlc-config --libs vlc mozilla builtin pic`
/usr/lib/gcc-lib/x86_64-pc-linux-gnu/3.3.3/../../../..
/x86_64-pc-linux-gnu/bin/ld: /usr/lib/libebml.a(EbmlBinary.o): relocation 
R_X86_64_32S can not be used when making a shared object; recompile with -fPIC
/usr/lib/libebml.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[3]: *** [libvlcplugin.so] Error 1
make[3]: Leaving directory `/var/tmp/portage/vlc-0.7.1-r1/work/vlc-0.7.
1/mozilla'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/var/tmp/portage/vlc-0.7.1-r1/work/vlc-0.7.
1/mozilla'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/vlc-0.7.1-r1/work/vlc-0.7.1'
make: *** [all] Error 2

!!! ERROR: media-video/vlc-0.7.1-r1 failed.
!!! Function src_compile, Line 185, Exitcode 2
!!! make of VLC failed

Expected Results:  
Successful compile and link of vlc.

Running:
CXXFLAGS="-fPIC" emerge --oneshot libebml
fixed the problem for me.

emerge info:
Portage 2.0.50-r3 (default-amd64-2004.0, gcc-3.3.3, glibc-2.3.3_pre20040207-r0, 
2.6.5-gentoo)
=================================================================
System uname: 2.6.5-gentoo x86_64 4
Gentoo Base System version 1.4.6
Autoconf: sys-devel/autoconf-2.59-r3
Automake: sys-devel/automake-1.8.3
ACCEPT_KEYWORDS="amd64 ~amd64"
AUTOCLEAN="yes"
CFLAGS="-O2"
CHOST="x86_64-pc-linux-gnu"
COMPILER="gcc3"
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.
2/share/config /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref 
/usr/share/config /usr/share/texmf/dvipdfm/config/ 
/usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ 
/usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache sandbox"
GENTOO_MIRRORS="http://mirror.pudas.net/gentoo"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://mirror.pudas.net/gentoo-portage"
USE="3ds X Xaw3d aalib alsa amd64 apache2 apm arts avi berkdb bonobo cdr crypt 
cups curl dga dv dvd dvdr emacs emacs-w3 encode esd ethereal faad flash 
foomaticdb gatos gd gdbm gif gnome gphoto2 gpm gstreamer gtk gtk2 gtkhtml imap 
imlib innodb ipv6 jpeg kde lcms libg++ libwww mad maildir matroska mikmod mng 
motif mozcalendar mozilla mozxmlterm mpeg multilib music mysql nas ncurses nls 
nogcj odbc oggvorbis openal opengl oss pam pdflib perl png pnp postgres python 
qt quicktime readline ruby samba sasl scanner sdl slang snmp spell ssl tcltk 
tcpd tetex theora tiff truetype usb videos wmf xinerama xml xml2 xmms xosd xv 
zlib"
Comment 1 Travis Tilley (RETIRED) gentoo-dev 2004-04-11 05:28:52 UTC
i was the one who unmasked vlc, and it compiled here without problem. I have libebml version 0.6.4 installed... huh. what version are you currently using? i'll have to test this more it seems...
Comment 2 Thomas Petersen 2004-04-11 06:20:00 UTC
I had libebml version 0.6.4.
I noticed there was a 0.6.5 so i tried upgrading to that one to see if that solved the problem but it didn't.
Now portage wants to downgrade to version 0.6.4 again so i must have something that depends on exactly that version.
When i emerged vlc i had to reemerge libmatroska and live. I saw they had recently got -fPIC added in their ebuild files.
Perhaps my libebml ebuild files are out of date (allthough i just ran emerge sync)? Could you check yours?
Comment 3 Travis Tilley (RETIRED) gentoo-dev 2004-04-11 06:45:40 UTC
I just ran a diff on the ebuild for the installed version and the version in portage. the only difference is that the ~mips keyword was added.

i just ran an emerge libebml vlc and it worked. an emerge -pv shows that i do indeed have the mozilla USE flag enabled, so i should be hitting this bug if you are...

[ebuild   R   ] media-video/vlc-0.7.1-r1  -3dfx +X -aalib +alsa -altivec -arts +bidi -debug -dvb +dvd -esd +faad +fbcon +ggi +gnome +gtk -imlib -lirc -matroska +mozilla +ncurses +nls +oggvorbis +oss +png +sdl +slp -speex -(svga) +truetype +v4l +wxwindows -xosd +xv  0 kB

I'll try emerging -e with your USE flags, but for now I am in serious need of sleep.
Comment 4 Travis Tilley (RETIRED) gentoo-dev 2004-04-11 16:18:59 UTC
phew, i thought i was going nuts there. i finally managed to reproduce your bug, and i'll get to fixing it now. :)
Comment 5 Travis Tilley (RETIRED) gentoo-dev 2004-04-11 16:52:06 UTC
oh yeah. fixed in cvs. give it a while to reach rsync (and lately it seems a while can seriously mean /a while/).

i've added the fix to both 0.6.4 and 0.6.5, since it seems something is depending on 0.6.4 specifically.