Compilation error in CI when building Konqueror for KF6 on linux

christoph at cullmann.io christoph at cullmann.io
Sun Oct 8 20:59:54 BST 2023


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 in advance
> 
> Stefano


More information about the kde-devel mailing list