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

how to fix shlib-with-non-pic-code ?



hi,

i've got a lintian error:

E: libstrigihtmlgui0: shlib-with-non-pic-code 
usr/lib/libstrigihtmlgui.so.0.3.2
N:
N:   The listed shared libraries contain object code that was compiled
N:   without -fPIC. All object code in shared libraries should be
N:   recompiled separately from the static libraries with the -fPIC option.
N:
N:   Another common mistake that causes this problem is linking with gcc
N:   -Wl,-shared instead of gcc -shared.
N:
N:   In some cases, exceptions to this rule are warranted. If this is such
N:   a case, follow the procedure outlined in Policy and then please
N:   document the exception by adding a lintian override to this package.
N:
N:   Refer to Policy Manual, section 10.2 for details.
N:

* the build gives me :

Linking CXX shared library libstrigihtmlgui.so
cd /tmp/buildd/strigi-0.3.2/./obj-i486-linux-gnu/src/htmlgui 
&& /usr/bin/cmake -P CMakeFiles/strigihtmlgui.dir/cmake_clean_target.cmake
cd /tmp/buildd/strigi-0.3.2/./obj-i486-linux-gnu/src/htmlgui 
&& /usr/lib/ccache/c++  -fPIC -g -Wall -O2 -O2 -g  -shared -Wl,-soname,libstrigihtmlgui.so.0 -o 
libstrigihtmlgui.so.0.3.2 "CMakeFiles/strigihtmlgu
i.dir/strigihtmlgui.o"  -L/tmp/buildd/strigi-0.3.2/./obj-i486-linux-gnu/src/daemon -L/tmp/buildd/strigi-0.3.2/./obj-i486-linux-gnu/src/streamindexer -L/tmp/buildd/strigi-0.3.2/./obj-i486-linux-gnu/src/stream
s -lsearchclient -lstreamindexer -lstreams -lz -lbz2 -lcrypto  -lxml2 -Wl,-rpath,/tmp/buildd/strigi-0.3.2/./obj-i486-linux-gnu/src/daemon:/tmp/buildd/strigi-0.3.2/./obj-i486-linux-gnu/src/streamindexer:/tmp/
buildd/strigi-0.3.2/./obj-i486-linux-gnu/src/streams

Linking CXX shared library CMakeFiles/CMakeRelink.dir/libstrigihtmlgui.so
cd /tmp/buildd/strigi-0.3.2/./obj-i486-linux-gnu/src/htmlgui 
&& /usr/bin/cmake -P CMakeFiles/strigihtmlgui.dir/cmake_clean_target.cmake
cd /tmp/buildd/strigi-0.3.2/./obj-i486-linux-gnu/src/htmlgui 
&& /usr/lib/ccache/c++  -fPIC -g -Wall -O2 -O2 -g  -shared -Wl,-soname,libstrigihtmlgui.so.0 -o 
CMakeFiles/CMakeRelink.dir/libstrigihtmlgui.so.0.3
.2 "CMakeFiles/strigihtmlgui.dir/strigihtmlgui.o"  -L/tmp/buildd/strigi-0.3.2/./obj-i486-linux-gnu/src/daemon -L/tmp/buildd/strigi-0.3.2/./obj-i486-linux-gnu/src/streamindexer -L/tmp/buildd/strigi-0.3.2/./ob
j-i486-linux-gnu/src/streams -lsearchclient -lstreamindexer -lstreams -lz -lbz2 -lcrypto  -lxml2
cd /tmp/buildd/strigi-0.3.2/./obj-i486-linux-gnu/src/htmlgui 
&& /usr/bin/cmake -E cmake_symlink_library 
CMakeFiles/CMakeRelink.dir/libstrigihtmlgui.so.0.3.2 
CMakeFiles/CMakeRelink.dir/libstrigihtmlgui.so.0 C
MakeFiles/CMakeRelink.dir/libstrigihtmlgui.so

It seems to use -fPIC and shared as mentionned by lintian and i didn't find 
any assembly code. If i override C/CXXFLAGS:
CFLAGS = -g -Wall -O2 -fPIC -shared
CXXFLAGS = -g -Wall -O2 -fPIC -shared

it builds, i don't have anymore the lintian error but a nice segmentation 
fault with a strace:
strace strigiclient
execve("/usr/bin/strigiclient", ["strigiclient"], [/* 41 vars */]) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Process 31790 detached

Any ideas how i can fix ?

cheers,

Fathi



Reply to: