[opensuse-packaging] freeremoted breaks by 90%
Hello Mates, since building freeremoted, the build is broken. It says: [ 90%] Building CXX object module/lirc/CMakeFiles/freeremote- lirc.dir/lirccontrolleriface.cpp.o cd /usr/src/packages/BUILD/freeremoted-0.1.4p/module/lirc && /usr/bin/c++ -Dfreeremote_lirc_EXPORTS -fmessage-length=0 -O2 -Wall - D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous- unwind-tables -Wall -O2 -fPIC - I/usr/src/packages/BUILD/freeremoted-0.1.4p/server - I/usr/src/packages/BUILD/freeremoted-0.1.4p/iolib - I/usr/include/dbus++-0.6 -I/usr/include/dbus-1.0 - I/usr/lib64/dbus-1.0/include -o CMakeFiles/freeremote- lirc.dir/lirccontrolleriface.cpp.o -c /usr/src/packages/BUILD/freeremoted-0.1.4p/module/lirc/lirccontrolleriface.cpp Linking CXX shared module libfreeremote-lirc.so cd /usr/src/packages/BUILD/freeremoted-0.1.4p/module/lirc && /usr/bin/cmake -E cmake_link_script CMakeFiles/freeremote- lirc.dir/link.txt --verbose=1 /usr/bin/c++ -fPIC -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 - fstack-protector -funwind-tables -fasynchronous-unwind-tables -Wall -O2 -Wl,-Bsymbolic-functions -shared -Wl,-soname,libfreeremote-lirc.so -o libfreeremote-lirc.so CMakeFiles/freeremote- lirc.dir/lirccontroller.cpp.o CMakeFiles/freeremote- lirc.dir/lirccontrolleriface.cpp.o ../../iolib/libio.a /usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse- linux/bin/ld: ../../iolib/libio.a(iodevice.cpp.o): relocation R_X86_64_32S against `vtable for iolib::IODevice' can not be used when making a shared object; recompile with -fPIC .../../iolib/libio.a: could not read symbols: Bad value collect2: ld returned 1 exit status What doe's it mean? -- Sincereley yours Sascha Manns openSUSE Marketing Team (Weekly News) openSUSE Build Service Web: http://saschamanns.gulli.to Blog: http://lizards.opensuse.org/author/saigkill DISCLAIMER: Please note that in accordance with the German law on data retention, information on every electronic information exchange with me is retained for a period of six months. http://www.vorratsdatenspeicherung.de http://www.ccc.de -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Sascha 'saigkill' Manns escribió:
lirc.dir/lirccontrolleriface.cpp.o ../../iolib/libio.a /usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse- linux/bin/ld: ../../iolib/libio.a(iodevice.cpp.o): relocation R_X86_64_32S against `vtable for iolib::IODevice' can not be used when making a shared object; recompile with -fPIC .../../iolib/libio.a: could not read symbols: Bad value collect2: ld returned 1 exit status
What doe's it mean?
to know what PIC code is, please read http://en.wikipedia.org/wiki/Position_independent_code why it fails, well, PIC code is required in static libraries (in this case "libio.a"..at least in x86_64, while it may be required as well in i586 if you are running selinux.. but that's a different story ;) ).. at some point your program does not set -DPIC -fPIC in CFLAGS.. if this is chinese for you, either ask upstream to fix it, or tell us in what project this pacakge lives in. -- "If this is the best God can do, I am not impressed" -George Carlin (1937-2008) Cristian Rodríguez R. Software Developer Platform/OpenSUSE - Core Services SUSE LINUX Products GmbH Research & Development http://www.opensuse.org/
On Mon, 02 Mar 2009 22:06:01 -0300, you wrote:
or tell us in what project this pacakge lives in.
I'd guess it's home:saigkill/freeremoted . Philipp -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
On Dienstag 03 März 2009 02:06:01 Cristian Rodríguez wrote:
http://en.wikipedia.org/wiki/Position_independent_code
why it fails, well, PIC code is required in static libraries (in this case "libio.a"..at least in x86_64, while it may be required as well in i586 if you are running selinux.. but that's a different story ;) ).. at some point your program does not set -DPIC -fPIC in CFLAGS.. if this is chinese for you, either ask upstream to fix it, or tell us in what project this pacakge lives in. Thanks Cristian. That was an good Tip :-) I've fixed the CMakeLists.txt from the iolib and now it runs perfectly. Thanks ... -- Sincereley yours
Sascha Manns openSUSE Marketing Team (Weekly News) openSUSE Build Service Web: http://saschamanns.gulli.to Blog: http://lizards.opensuse.org/author/saigkill DISCLAIMER: Please note that in accordance with the German law on data retention, information on every electronic information exchange with me is retained for a period of six months. http://www.vorratsdatenspeicherung.de http://www.ccc.de -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
On Tue, 3 Mar 2009 00:36:18 +0100, you wrote:
irc.dir/lirccontroller.cpp.o CMakeFiles/freeremote- lirc.dir/lirccontrolleriface.cpp.o ../../iolib/libio.a /usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse- linux/bin/ld: ../../iolib/libio.a(iodevice.cpp.o): relocation R_X86_64_32S against `vtable for iolib::IODevice' can not be used when making a shared object; recompile with -fPIC .../../iolib/libio.a: could not read symbols: Bad value collect2: ld returned 1 exit status
On x86_64 code in a shared object must be position independent (see the URL Christian posted), where on i586 it will work without. You'll have to tweak freeremoted to make it pass -fPIC to the compiler when building shared objects. One way would be to use libtool to compile that library. Philipp -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
participants (3)
-
Cristian Rodríguez
-
Philipp Thomas
-
Sascha 'saigkill' Manns