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: