[SailfishDevel] Odd issues with SDK - shared libraries not recognized as such

Martin Kampas martin.kampas at jolla.com
Wed Apr 5 09:33:36 UTC 2017


Hi Rinigus,

There is no suitable docs I am aware of, but anyway following the simple rule to pass "-m sdk-install" if and only if you are installing (removing, updating...) packages in the target should be enough for normal SDK usage.

The need to install packages also outside sb2 should be exceptional. There is an ongoing activity to improve SDK in regards to this.

BR,
Martin

________________________________
From: Devel [devel-bounces at lists.sailfishos.org] on behalf of rinigus [rinigus.git at gmail.com]
Sent: Wednesday, April 05, 2017 8:51 AM
To: Sailfish OS Developers
Subject: Re: [SailfishDevel] Odd issues with SDK - shared libraries not recognized as such

Hi Martin,

thank you for the tip, it worked nicely! There were several other libraries affected: boost-program-options, libtiff, and libjpeg-turbo to name in addition to the ones I mentioned earlier.

As for using sdk-mode - I actually didn't find (relatively fast google search) on what does it do. In all examples on how to build packages manually, I could see "-m sdk-install" option given. So, if you can give me URL with description or tell what does it do and whether I should omit it, please do so.

Ideally, I don't want to mess with sb2, all I wanted to run was

mb2 -t SailfishOS-i486 -s package.spec build

which failed due to the configuration error. Taking into account this bug, maybe all packages specified in spec files as build-dep should be installed in addition by zypper outside sb2?

Best wishes,

Rinigus

On Wed, Apr 5, 2017 at 8:03 AM, Martin Kampas <martin.kampas at jolla.com<redir.aspx?REF=BlRet5twj2Crwc7W7O7I1Z9YFL5MaGTXFsQUmrm967ClrFRjBHzUCAFtYWlsdG86bWFydGluLmthbXBhc0Bqb2xsYS5jb20.>> wrote:
Hi Rinigus,

Fix this by installing boost-regex also outside sb2

[mersdk at SailfishSDK ~]$ sb2 -t SailfishOS-i486 ldd /usr/lib/libboost_regex.so.1.51.0
        not a dynamic executable
[...]
[mersdk at SailfishSDK ~]$ sudo zypper in boost-regex
[mersdk at SailfishSDK ~]$ sb2 -t SailfishOS-i486 ldd /usr/lib/libboost_regex.so.1.51.0
        linux-gate.so.1 =>  (0x6f758000)
        libsb2.so.1 => /usr/lib/libsb2/libsb2.so.1 (0x6f5fb000)
        libicuuc.so.52 => /usr/lib/libicuuc.so.52 (0x6f48b000)
        libicui18n.so.52 => /usr/lib/libicui18n.so.52 (0x6f282000)
        libicudata.so.52 => /usr/lib/libicudata.so.52 (0x6dc16000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x6db2e000)
        libm.so.6 => /lib/libm.so.6 (0x6dae6000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x6dacd000)
        libc.so.6 => /lib/libc.so.6 (0x6d907000)
        libdl.so.2 => /lib/libdl.so.2 (0x6d902000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x6d8e6000)
        /lib/ld-linux.so.2 (0x6f759000)
[...]

Applies to other packages as well.

Apart from that are you sure you want to use sb2's sdk-install mode?

BR,
Martin

________________________________
From: Devel [devel-bounces at lists.sailfishos.org<redir.aspx?REF=red6WrN6nZnw3ibb7Yu0XS44p74x0879e6kUNQ0ShUalrFRjBHzUCAFtYWlsdG86ZGV2ZWwtYm91bmNlc0BsaXN0cy5zYWlsZmlzaG9zLm9yZw..>] on behalf of rinigus [rinigus.git at gmail.com<redir.aspx?REF=O4gyhzgobECtluZ0ewTLfxROAtl72wmsgN2MItxlW9ylrFRjBHzUCAFtYWlsdG86cmluaWd1cy5naXRAZ21haWwuY29t>]
Sent: Monday, April 03, 2017 9:52 PM
To: Sailfish OS Developers
Subject: [SailfishDevel] Odd issues with SDK - shared libraries not recognized as such

Hi,

I have been struggling with an odd issue which is present in current stable and EA SDKs. Namely, several libraries are not recognized as dynamic libraries on i486 target. For example:

sb2 -t SailfishOS-i486 -m sdk-install ldd /usr/lib/libboost_regex.so.1.51.0
not a dynamic executable
Messages from sb2:
 (WARNING) ldd{bash}[6959] Executing statically linked native binary /srv/mer/targets/SailfishOS-i486/lib/ld-2.19.so<redir.aspx?REF=5PVEdlZK2kDjBwQ3WEDYMHgqXtf8qmNCOuVHnLp6m8OlrFRjBHzUCAFodHRwOi8vcmVkaXIuYXNweD9SRUY9NEt1MUJNRXdFNVBpQnFtdGl2dVJKRllwVUhFdmRULXJiaWFWdjJ4ZHZaQ3hnbE13NEh2VUNBRm9kSFJ3T2k4dmJHUXRNaTR4T1M1emJ3Li4.>
 (WARNING) ldd{bash}[6960] Executing statically linked native binary /srv/mer/targets/SailfishOS-i486/lib/ld-2.19.so<redir.aspx?REF=5PVEdlZK2kDjBwQ3WEDYMHgqXtf8qmNCOuVHnLp6m8OlrFRjBHzUCAFodHRwOi8vcmVkaXIuYXNweD9SRUY9NEt1MUJNRXdFNVBpQnFtdGl2dVJKRllwVUhFdmRULXJiaWFWdjJ4ZHZaQ3hnbE13NEh2VUNBRm9kSFJ3T2k4dmJHUXRNaTR4T1M1emJ3Li4.>
# exit 1 (1)

Probably most libraries are fine, like

sb2 -t SailfishOS-i486 -m sdk-install ldd /usr/lib/libboost_filesystem.so.1.51.0
linux-gate.so.1 =>  (0x6f79c000)
libsb2.so.1 => /usr/lib/libsb2/libsb2.so.1 (0x6f721000)
libboost_system.so.1.51.0 => /usr/lib/libboost_system.so.1.51.0 (0x6f719000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x6f631000)
libm.so.6 => /lib/libm.so.6 (0x6f5ea000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x6f5d0000)
libc.so.6 => /lib/libc.so.6 (0x6f409000)
libdl.so.2 => /lib/libdl.so.2 (0x6f403000)
/lib/ld-linux.so.2 (0x6f79d000)
Messages from sb2:
 (WARNING) ldd{bash}[6829] Executing statically linked native binary /srv/mer/targets/SailfishOS-i486/lib/ld-2.19.so<redir.aspx?REF=5PVEdlZK2kDjBwQ3WEDYMHgqXtf8qmNCOuVHnLp6m8OlrFRjBHzUCAFodHRwOi8vcmVkaXIuYXNweD9SRUY9NEt1MUJNRXdFNVBpQnFtdGl2dVJKRllwVUhFdmRULXJiaWFWdjJ4ZHZaQ3hnbE13NEh2VUNBRm9kSFJ3T2k4dmJHUXRNaTR4T1M1emJ3Li4.>
 (WARNING) ldd{bash}[6830] Executing statically linked native binary /srv/mer/targets/SailfishOS-i486/lib/ld-2.19.so<redir.aspx?REF=5PVEdlZK2kDjBwQ3WEDYMHgqXtf8qmNCOuVHnLp6m8OlrFRjBHzUCAFodHRwOi8vcmVkaXIuYXNweD9SRUY9NEt1MUJNRXdFNVBpQnFtdGl2dVJKRllwVUhFdmRULXJiaWFWdjJ4ZHZaQ3hnbE13NEh2VUNBRm9kSFJ3T2k4dmJHUXRNaTR4T1M1emJ3Li4.>
 (WARNING) ldd{bash}[6833] Executing statically linked native binary /srv/mer/targets/SailfishOS-i486/lib/ld-2.19.so<redir.aspx?REF=5PVEdlZK2kDjBwQ3WEDYMHgqXtf8qmNCOuVHnLp6m8OlrFRjBHzUCAFodHRwOi8vcmVkaXIuYXNweD9SRUY9NEt1MUJNRXdFNVBpQnFtdGl2dVJKRllwVUhFdmRULXJiaWFWdjJ4ZHZaQ3hnbE13NEh2VUNBRm9kSFJ3T2k4dmJHUXRNaTR4T1M1emJ3Li4.>
# exit 0 (0)

This issue does not appear on ARM target:

sb2 -t SailfishOS-armv7hl -m sdk-install ldd /usr/lib/libboost_regex.so.1.51.0
libicuuc.so.52 => /usr/lib/libicuuc.so.52 (0x488cc000)
libicui18n.so.52 => /usr/lib/libicui18n.so.52 (0x489d0000)
libicudata.so.52 => /usr/lib/libicudata.so.52 (0x48b28000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x4a1a4000)
libm.so.6 => /lib/libm.so.6 (0x4a256000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x4a2cb000)
libc.so.6 => /lib/libc.so.6 (0x4a2e3000)
libpthread.so.0 => /lib/libpthread.so.0 (0x4a3e8000)
libdl.so.2 => /lib/libdl.so.2 (0x4a40b000)
/lib/ld-linux-armhf.so.3 (0x40801000)

The libraries in question that I stumbled upon are libboost_regex and libharfbuzz. I tried to recompile harfbuzz to see if something went wrong on its generation, but got the same issue - its not recognized as a shared library by ldd.

Note that you can compile and link against these libraries. Don't know if the compiled code would run on the tablet, but it refuses to run under mb2/sb2. Which is a major problem preventing using libraries/code that has configure scripts to check for these libraries.

I have found some logs on sfos-porters #irc channel (2013 & 2014) with the similar issue, but there was no solution as far as I could tell.

Does anyone know how to fix it? Apart from skipping i486 or hacking configure scripts...

Cheers,

Rinigus

_______________________________________________
SailfishOS.org Devel mailing list
To unsubscribe, please send a mail to devel-unsubscribe at lists.sailfishos.org<redir.aspx?REF=3TaSqKWhJ4WcJKFDTgY7Ufcrqp6ImbIEhmy4d9vI_ialrFRjBHzUCAFtYWlsdG86ZGV2ZWwtdW5zdWJzY3JpYmVAbGlzdHMuc2FpbGZpc2hvcy5vcmc.>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.sailfishos.org/pipermail/devel/attachments/20170405/1a04ffb0/attachment-0001.html>


More information about the Devel mailing list