Re: -fPIC and current build failures



Loïc Minier wrote:

Hey Loïc, you need to remove your current "make install" path (your prefix), or remove all the shared object files of Tinymail from that path.

The reason why this happens is the --rpath stuff of Gecko.

        Hi,

 tinymail now fails to build on amd64 for me with:
ount.o .libs/tny-camel-pop-store-account.o .libs/tny-camel-transport-account.o .libs/tny-camel-stream.o .libs/tny-stream-camel.o .libs/tny-camel-send-queue.o .libs/tny-camel-mem-stream.o .libs/tny-session-camel.o .libs/tny-camel-queue.o .libs/tny-camel-bs-msg.o .libs/tny-camel-bs-mime-part.o .libs/tny-camel-bs-msg-receive-strategy.o .libs/tny-camel-bs-msg-header.o  -Wl,--rpath -Wl,/home/lool/svn/tinymail/tinymail/trunk/libtinymail-camel/camel-lite/camel/.libs -Wl,--rpath -Wl,/home/lool/svn/tinymail/tinymail/trunk/libtinymail/.libs -Wl,--rpath -Wl,/home/lool/svn/tinymail/tinymail/trunk/prefix/lib /usr/lib/libgobject-2.0.so /usr/lib/libglib-2.0.so ../libtinymail-camel/camel-lite/camel/.libs/libcamel-lite-1.2.so ../libtinymail-camel/camel-lite/camel/.libs/libcamel-lite-provider-1.2.so ../libtinymail/.libs/libtinymail-1.0.so ../libtinymail-camel/bs/libbodystruct.a  -Wl,-soname -Wl,libtinymail-camel-1.0.so.0 -Wl,-version-script -Wl,.libs/libtinymail-camel-1.0.ver -o .libs/libtinymail-camel-1.0.so.0.0.0
/usr/bin/ld: ../libtinymail-camel/bs/libbodystruct.a(bodystruct.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
../libtinymail-camel/bs/libbodystruct.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[3]: *** [libtinymail-camel-1.0.la] Erreur 1

 This is a recent change, between r3066 and r3074.

 Passing CFLAGS="-fPIC" to configure makes the build succeed.

 I tried adding AC_LIBTOOL_PICMODE(yes) to configure.ac, but to no luck,
 even with --with-pic.


 With -fPIC in the CFLAGS, the build subsequently fails with:
gcc -O0 -g -ggdb -fPIC -o .libs/tny-demoui tny-main.o tny-demoui-summary-view.o -pthread -pthread  -L/usr/lib/xulrunner-devel-1.9b1/lib ../../libtinymail/.libs/libtinymail-1.0.so ../../libtinymailui/.libs/libtinymailui-1.0.so ../../libtinymailui-gtk/.libs/libtinymailui-gtk-1.0.so ../../libtinymail-camel/.libs/libtinymail-camel-1.0.so ../../libtinymail-maemo/.libs/libtinymail-maemo-1.0.so ../../libtinymailui-mozembed/.libs/libtinymailui-mozembed-1.0.so -lxpcomglue /usr/lib/libgnomeui-2.so -lSM -lICE /usr/lib/libbonoboui-2.so /usr/lib/libgnomevfs-2.so /usr/lib/libgnomecanvas-2.so /usr/lib/libgnome-2.so /usr/lib/libpopt.so /usr/lib/libbonobo-2.so /usr/lib/libbonobo-activation.so /usr/lib/libart_lgpl_2.so /usr/lib/libgtk-x11-2.0.so /usr/lib/libgdk-x11-2.0.so /usr/lib/libatk-1.0.so /usr/lib/libgdk_pixbuf-2.0.so -lm /usr/lib/libpangocairo-1.0.so /usr/lib/libpango-1.0.so /usr/lib/libcairo.so /usr/lib/libgconf-2.so /usr/lib/libgmodule-2.0.so -ldl /usr/lib/libORBit-2.so /usr/lib/libgthread-2.0.so -lrt /usr/lib/libgobject-2.0.so /usr/lib/libgnome-keyring.so /usr/lib/libglib-2.0.so  -Wl,--rpath -Wl,/home/lool/svn/tinymail/tinymail/trunk/prefix/lib
../../libtinymail-camel/.libs/libtinymail-camel-1.0.so: undefined reference to `camel_folder_get_cache_filename'
../../libtinymail-camel/.libs/libtinymail-camel-1.0.so: undefined reference to `camel_folder_fetch'
../../libtinymail-camel/.libs/libtinymail-camel-1.0.so: undefined reference to `camel_folder_fetch_structure'
collect2: ld returned 1 exit status

 Looks like missing link flags in libtinymail-camel, but it could also
 be a rpath issue; not sure.

   Cheers,




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]