mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-09-22 23:10:18 +00:00
The recipe produces static archives only, and does not compile them PIC, so linking capnp or kj into a shared library fails: libkj.a(exception.c++.o): relocation R_X86_64_TPOFF32 against `kj::(anonymous namespace)::threadLocalCallback' can not be used when making a shared object; local-exec is incompatible with -shared kj/exception.c++ has a file-scope thread_local, which non-PIC code compiles to the local-exec TLS model. A shared object cannot use that model, so the link fails on any consumer that puts capnp inside a .so. Debian and Fedora do not hit this because they ship shared libcapnp. Set CMAKE_POSITION_INDEPENDENT_CODE. Packaging is unchanged: still static, still no .so, no new packages and no ABI surface, only the code model differs. Signed-off-by: Joel Winarske <joel.winarske@gmail.com> Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>