FS#61130 - qt5-base 5.12.0-1 doesn't work on linux-lts44 (with workaround)

Attached to Project: Arch Linux
Opened by James Bunton (delx) - Wednesday, 19 December 2018, 13:18 GMT
Last edited by Eli Schwartz (eschwartz) - Wednesday, 19 December 2018, 14:05 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To No-one
Architecture x86_64
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

Description:
Upgrading from 5.11.2-3 -> 5.12.0-1 stops Qt from working under kernel 4.4 using the linux-lts44 AUR package.

Steps to reproduce:
- Install linux-lts44 and boot it
- Install qt5-base 5.12.0-1
- Run any Qt5 app, or run `LD_PRELOAD=/lib/libQt5Core.so.5 /bin/true`

The error I see is:
ERROR: ld.so: object '/lib/libQt5Core.so.5' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.


The problem:
I think this is because the ABI tag specifies Linux 4.11 as the minimum version, compared to 3.17 for the previous qt5-base package. This can be seen with:

$ objdump -s -j .note.ABI-tag /lib/libQt5Core.so.5

/lib/libQt5Core.so.5: file format elf64-x86-64

Contents of section .note.ABI-tag:
51ca14 04000000 10000000 01000000 474e5500 ............GNU.
51ca24 00000000 04000000 0b000000 00000000 ................


Workaround:
Stripping the tag seems to work. I can load and run my Qt apps after running this command.
$ strip --remove-section=.note.ABI-tag /lib/libQt5Core.so

Hopefully the package can be rebuilt with the lower ABI tag. Thanks :)
This task depends upon

Closed by  Eli Schwartz (eschwartz)
Wednesday, 19 December 2018, 14:05 GMT
Reason for closing:  Not a bug
Additional comments about closing:  AUR packages are, as the name indicates, unsupported.
Comment by Eli Schwartz (eschwartz) - Wednesday, 19 December 2018, 14:05 GMT
If the software is incorrectly specifying an ABI tag that it shouldn't, feel free to report an upstream bug to the Qt5 build system.

But you're wrong, the ABI tag exists because it is the minimum required version for statx(2).

EDIT: Thanks for doing the correct thing and uploading https://aur.archlinux.org/packages/qt5-base-nostatx to support this use case. AUR users of older kernels can use the AUR build of qt5-base.

Loading...