On domenica 8 ottobre 2023 21:59:54 CEST christ...@cullmann.io wrote: > On 2023-10-08 18:20, Stefano Crocco wrote: > > Hello to everyone, > > I successfully ported Konqueror to KF6, at least to the point that, on > > my > > system, it compiles correctly. However, when the CI tries to build it > > on > > linux, it fails with the following error: > > > > /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: > > ../../lib/libkcm_konqhtml_static.a(mocs_compilation.cpp.o): relocation > > R_X86_64_32S against `.rodata' can not be used when making a shared > > object; > > recompile with -fPIC > > > > The full build log is in the attachment; the error is on line 1674. > > > > This error doesn't happen when I try to compile Konqueror on my system, > > which > > seems to have the same gcc version as the CI and doesn't happen on the > > CI with > > freebsd and with the KF5 version, despite the fact that the, as far as > > I can > > tell, involved code hasn't changed. > > > > It seems that the error comes from the attempt to link several plugins > > (actually KCMs) to a static library (kcm_konqhtml_static). > > > > Searching on Google, I found that the suggested solution for this kind > > of > > error is to add the -fPIC compilation flag when building the static > > library. I > > tried to do so and it worked but I'd like to understand whether this > > actually > > is the correct solution and why the issue only happens on the CI linux > > build > > for KF6 and not on the CI builds for KF5, on the CI freebsd build for > > KF6 and > > on my system. Can anyone give me some hints about this? > > Hi, > > I would propose to add > > set_target_properties(katepch PROPERTIES POSITION_INDEPENDENT_CODE ON) > > to the static lib target, we need that in Kate, too. > > Greetings > Christoph >
Thanks for the advice. Stefano