Hi Ross,

On Mon, Jun 10, 2024 at 03:38 AM, Ross Burton wrote:

> 
> On 10 Jun 2024, at 11:26, Altous, Salahaldeen via lists.yoctoproject.org
> <Salahaldeen.Altous=leica-camera....@lists.yoctoproject.org> wrote:
> 
>> Hi All,
>> 
>> I have one yocto recipe which inherit meson as build system and generate
>> the right libs in the image folder
>> 
>> ├── liblc_core.so -> liblc_core.so.0
>> ├── liblc_core.so.0 -> liblc_core.so.0.4.7
>> └── liblc_core.so.0.4.7
>> but in the deploy-ipks the .so symbolic link is missing
>> drwxr-xr-x root/root 0 2024-05-08 14:29 ./usr/
>> drwxr-xr-x root/root 0 2024-05-08 14:29 ./usr/lib/
>> lrwxrwxrwx root/root 0 2024-05-08 14:29 ./usr/lib/liblc_core.so.0 ->
>> liblc_core.so.0.4.7
>> -rwxr-xr-x root/root 26536 2024-05-08 14:29 ./usr/lib/liblc_core.so.0.4.7
>> and in the dev-ipk package the missing *.so exist
>> drwxr-xr-x root/root 0 2024-05-08 14:29 ./usr/lib/
>> lrwxrwxrwx root/root 0 2024-05-08 14:29 ./usr/lib/liblc_core.so ->
>> liblc_core.so.0
>> I need to have all in on files/symbolic-link in the release ipk, and the
>> rootfs wihtout the need to install the dev-ipk later on, any idea what I
>> need to add in the yocto recipe or the meson file
> 
> This is intended behaviour. Conventionally, libraries are versioned (eg
> liblc_core.so < http://liblc_core.so/>.0.4.7 ) so that specific binaries
> link against specific ABIs at runtime, and there are convenience symlinks
> (liblc_core.so < http://liblc_core.so/ >) that are used at link time so you
> can just link to liblc_core.so < http://liblc_core.so/ > and that is
> resolved to a specific ABI version.
> 
> This means that at _runtime_ you need the real library, and not the
> symlink. The symlinks are packaged into the -dev package alongside the
> headers because they’re only needed if you’re compiling code.
> 
> This is convention, and there are exceptions. There are two possibilities
> here:
> 
> 1) The versioned shared library shouldn’t be versioned, because other
> binaries use dlopen(“liblc_core.so < http://liblc_core.so/ >”) at runtime
> instead of linking to it at build time. If this is the case then if it’s
> sensible remove the versioning entirely (as it’s pointless) and read 
> https://docs.yoctoproject.org/next/dev-manual/prebuilt-libraries.html#non-versioned-libraries
> .
> 
> 2) You don’t actually need the .so at runtime.

thanks for the explanation, I will remove the versioning and add these 
variables to my recipes

SOLIBS = ".so"
FILES_SOLIBSDEV = ""

"The symlinks are packaged into the -dev package alongside the headers because 
they’re only needed if you’re compiling code"

Can I use the -dev package to cross compile?

similar to the sysroot in the yocto-SDK

Regards,

Salah

> 
> 
> Ross
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#63320): https://lists.yoctoproject.org/g/yocto/message/63320
Mute This Topic: https://lists.yoctoproject.org/mt/106589714/21656
Mute #kirkstone:https://lists.yoctoproject.org/g/yocto/mutehashtag/kirkstone
Mute #yocto:https://lists.yoctoproject.org/g/yocto/mutehashtag/yocto
Group Owner: yocto+ow...@lists.yoctoproject.org
Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to