public inbox for libc-help@sourceware.org
 help / color / mirror / Atom feed
From: Carlos O'Donell <carlos@redhat.com>
To: "Krzysztof Żelechowski" <krzysztof.zelechowski@prospeo.com.pl>,
	libc-help <libc-help@sourceware.org>
Subject: Re: My dynamic loader refuses to load libQt5Core because of the ABI tag note
Date: Thu, 7 Oct 2021 15:14:48 -0400	[thread overview]
Message-ID: <cdbd0ae0-aa03-65bb-6c6f-b5e1199d31ee@redhat.com> (raw)
In-Reply-To: <DBAPR08MB5669FB2ED1BAEFE78D664497D7B19@DBAPR08MB5669.eurprd08.prod.outlook.com>

Second time around, forgot to TO libc-help.

On 10/7/21 14:47, Krzysztof Żelechowski via Libc-help wrote:
> /usr/lib/YaST2/bin/y2controlcenter
>                 /usr/lib/YaST2/bin/y2controlcenter: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory

This kind of question needs to be raised with the distribution maintainer since they
are responsible for providing the libraries required to run core applications (usually
OpenSUSE or SUSE) like YaST.

What does 'readelf -a -W /usr/lib/YaST2/bin/y2controlcenter' return?

Alternatively run with:

LD_DEBUG_OUTPUT=/tmp/y2cc LD_DEBUG=all /usr/lib/YaST2/bin/y2controlcenter

Then you'll find /tmp/y2cc.$PID with the details from the dynamic loader operations
that were taken to try find the DSO. This should give you further information to
try track down what is broken or missing (is there a DT_RPATH, or DT_RUNPATH, or other
that is getting in the way).

> uname -r
>                 4.4.0-19041-Microsoft

This looks like WSL2 running a specific Microsoft Linux kernel.

> ldd /usr/lib64/libQt5Widgets.so.5
> libQt5Core.so.5 => not found
> /usr/lib64/libQt5Core.so.5
>                 This is the QtCore library version Qt 5.12.7 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 7.5.0)
> Copyright (C) 2016 The Qt Company Ltd.
> Contact: http://www.qt.io/licensing/
>
> Installation prefix: /usr
> Library path:        lib64
> Include path:        include/qt5
> Processor features:  sse2[required] sse3 ssse3 fma sse4.1 sse4.2 movbe popcnt aes avx f16c rdrnd bmi avx2 bmi2 rdseed sha
> readelf -n /usr/lib64/libQt5Core.so.5
> Displaying notes found in: .note.ABI-tag
>   Owner                Data size        Description
>   GNU                  0x00000010       NT_GNU_ABI_TAG (ABI version tag)
>     OS: Linux, ABI: 3.17.0

That's OK, this just means you need a Linux Kernel 3.17.0 to run and you have that.

The only possible problem is if the kernel exposes a vDSO with a Linux note that has
an *old* version in it. You can dump the vDSO with gdb and examine it.

Likewise uname() might return something odd. I haven't tested. You could check with
a small program what uname() returns?

What does `cat /proc/sys/kernel/osrelease` print?

> objcopy -R .note.ABI-tag /usr/lib64/libQt5Core.so.5 /tmp/libQt5Core.so.5
> LD_LIBRARY_PATH=/tmp /usr/lib/YaST2/bin/y2controlcenter

Does this actually work?

> Please note that the error message "No such file or directory" is as misleading as can be.
 
Yes, in some cases the "unloadable file" ends up with "No such file or directory"

I agree we could do better for a diagnostic in this case.

-- 
Cheers,
Carlos.


  parent reply	other threads:[~2021-10-07 19:14 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-07 18:47 Krzysztof Żelechowski
2021-10-07 18:53 ` Jeffrey Walton
2021-10-07 19:00   ` Carlos O'Donell
2021-10-07 19:05     ` Adhemerval Zanella
2021-10-07 19:14 ` Carlos O'Donell [this message]
2021-10-08  8:03   ` Krzysztof Żelechowski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cdbd0ae0-aa03-65bb-6c6f-b5e1199d31ee@redhat.com \
    --to=carlos@redhat.com \
    --cc=krzysztof.zelechowski@prospeo.com.pl \
    --cc=libc-help@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).