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.

Ross
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#63302): https://lists.yoctoproject.org/g/yocto/message/63302
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