-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Description
Your Windows build number: (Type ver at a Windows Command Prompt)
10.0.16299.192
Linux ananke 4.4.0-43-Microsoft #1-Microsoft Wed Dec 31 14:42:53 PST 2014 x86_64 GNU/Linux
Debian sid
What you're doing and what's happening: (Copy&paste specific commands and their output, or include screen shots)
Executing lupdate from Qt5 tools, LD_DEBUG=all ldd /usr/lib/libQt5Xml.so, etc.
Doesn't treat libQt5Core.so.5 as a suitable library, as per
lupdate: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
What's wrong / what should be happening instead:
As long as ELF section called .note.ABI-tag exists, the library can't be linked to by other shared objects. It can be executed directly by the ld-linux linker however.
The workaround is to strip --remove-section=.note.ABI-tag /usr/lib/libQt5Core.so.5.10.1.
See how the section's presence influences file(1) output:
/usr/lib/libQt5Core.so.5.10.1: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=147dcf3333ff6b490dabb4028a217effa08013e3, for GNU/Linux 3.17.0, stripped
Finally, without the section:
/usr/lib/libQt5Core.so.5.10.1: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=147dcf3333ff6b490dabb4028a217effa08013e3, stripped
Strace of the failing command, if applicable[...]
openat of the library, read, lseek, close, barf out error message on the standard error file descriptor and exit_group.
Similarly LD_DEBUG=all shows opening the ELF without further information other than an error message.
3954: file=libQt5Core.so.5 [0]; needed by lupdate [0]
3954: find library=libQt5Core.so.5 [0]; searching
3954: search path=/usr/lib (system search path)
3954: trying file=/usr/lib/libQt5Core.so.5
3954: search cache=/etc/ld.so.cache
3954: search path=/usr/lib (system search path)
3954: trying file=/usr/lib/libQt5Core.so.5
3954:
lupdate: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
After removing the tag, the runtime linking process proceeds normally.