[lug] A head scratcher for your weekend
Matt Bidwell
mbidwell at gmail.com
Wed May 23 22:02:12 MDT 2018
Sorry for the delay in replying. Going to reply to the last two emails
in one email.
OK, the suggestion to try another qt based program was a good one.
Mythfrontend obviously also didn't work. Installed k3b, and it also gave
the same library message.
The output of ldd against /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.10.1
and /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 is the same run by root
or non root users. Nothing missing shows up.
I've rebooted a few times now. If only it could be that simple.
$ ls -alh /usr/lib/x86_64-linux-gnu/libQt5Core.so.5*
lrwxrwxrwx 1 root root 20 May 20 15:57
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5 -> libQt5Core.so.5.10.1
lrwxrwxrwx 1 root root 20 May 20 15:57
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5.10 -> libQt5Core.so.5.10.1
-rw-r--r-- 1 root root 5.0M May 20 15:57
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5.10.1
If you've read this far, you really wanted to see the redelf output
$ readelf -e /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
ELF Header:
Magic: 7f 45 4c 46 02 01 01 03 00 00 00 00 00 00 00 00
Class: ELF64
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - GNU
ABI Version: 0
Type: DYN (Shared object file)
Machine: Advanced Micro Devices X86-64
Version: 0x1
Entry point address: 0x96740
Start of program headers: 64 (bytes into file)
Start of section headers: 5222704 (bytes into file)
Flags: 0x0
Size of this header: 64 (bytes)
Size of program headers: 56 (bytes)
Number of program headers: 11
Size of section headers: 64 (bytes)
Number of section headers: 32
Section header string table index: 31
Section Headers:
[Nr] Name Type Address Offset
Size EntSize Flags Link Info Align
[ 0] NULL 0000000000000000 00000000
0000000000000000 0000000000000000 0 0 0
[ 1] .note.gnu.build-i NOTE 00000000000002a8 000002a8
0000000000000024 0000000000000000 A 0 0 4
[ 2] .gnu.hash GNU_HASH 00000000000002d0 000002d0
00000000000088a8 0000000000000000 A 3 0 8
[ 3] .dynsym DYNSYM 0000000000008b78 00008b78
00000000000232f8 0000000000000018 A 4 1 8
[ 4] .dynstr STRTAB 000000000002be70 0002be70
0000000000036080 0000000000000000 A 0 0 1
[ 5] .gnu.version VERSYM 0000000000061ef0 00061ef0
0000000000002eea 0000000000000002 A 3 0 2
[ 6] .gnu.version_d VERDEF 0000000000064de0 00064de0
00000000000001e0 0000000000000000 A 4 14 8
[ 7] .gnu.version_r VERNEED 0000000000064fc0 00064fc0
0000000000000210 0000000000000000 A 4 7 8
[ 8] .rela.dyn RELA 00000000000651d0 000651d0
0000000000017850 0000000000000018 A 3 0 8
[ 9] .rela.plt RELA 000000000007ca20 0007ca20
0000000000001bc0 0000000000000018 AI 3 27 8
[10] .init PROGBITS 000000000007e5e0 0007e5e0
0000000000000017 0000000000000000 AX 0 0 4
[11] .plt PROGBITS 000000000007e600 0007e600
0000000000001290 0000000000000010 AX 0 0 16
[12] .plt.got PROGBITS 000000000007f890 0007f890
0000000000000008 0000000000000008 AX 0 0 8
[13] .text PROGBITS 000000000007f8a0 0007f8a0
00000000002c0b82 0000000000000000 AX 0 0 16
[14] .fini PROGBITS 0000000000340424 00340424
0000000000000009 0000000000000000 AX 0 0 4
[15] .rodata PROGBITS 0000000000340440 00340440
000000000012f888 0000000000000000 A 0 0 32
[16] .interp PROGBITS 000000000046fcd0 0046fcd0
000000000000001c 0000000000000000 A 0 0 16
[17] .eh_frame_hdr PROGBITS 000000000046fcec 0046fcec
000000000000eeac 0000000000000000 A 0 0 4
[18] .eh_frame PROGBITS 000000000047eb98 0047eb98
000000000005a0b0 0000000000000000 A 0 0 8
[19] .gcc_except_table PROGBITS 00000000004d8c48 004d8c48
0000000000014ed7 0000000000000000 A 0 0 4
[20] .note.ABI-tag NOTE 00000000004edb20 004edb20
0000000000000020 0000000000000000 A 0 0 4
[21] .tbss NOBITS 00000000006ee750 004ee750
0000000000000010 0000000000000000 WAT 0 0 8
[22] .init_array INIT_ARRAY 00000000006ee750 004ee750
0000000000000020 0000000000000008 WA 0 0 8
[23] .fini_array FINI_ARRAY 00000000006ee770 004ee770
0000000000000010 0000000000000008 WA 0 0 8
[24] .data.rel.ro PROGBITS 00000000006ee780 004ee780
000000000000ac60 0000000000000000 WA 0 0 32
[25] .dynamic DYNAMIC 00000000006f93e0 004f93e0
00000000000002b0 0000000000000010 WA 4 0 8
[26] .got PROGBITS 00000000006f9690 004f9690
0000000000000958 0000000000000008 WA 0 0 8
[27] .got.plt PROGBITS 00000000006fa000 004fa000
0000000000000958 0000000000000008 WA 0 0 8
[28] .data PROGBITS 00000000006fa960 004fa960
0000000000000664 0000000000000000 WA 0 0 32
[29] .bss NOBITS 00000000006fb000 004fafc4
0000000000004000 0000000000000000 WA 0 0 64
[30] .gnu_debuglink PROGBITS 0000000000000000 004fafc4
0000000000000034 0000000000000000 0 0 4
[31] .shstrtab STRTAB 0000000000000000 004faff8
0000000000000131 0000000000000000 0 0 1
Key to Flags:
W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
L (link order), O (extra OS processing required), G (group), T (TLS),
C (compressed), x (unknown), o (OS specific), E (exclude),
l (large), p (processor specific)
Program Headers:
Type Offset VirtAddr PhysAddr
FileSiz MemSiz Flags Align
PHDR 0x0000000000000040 0x0000000000000040 0x0000000000000040
0x0000000000000268 0x0000000000000268 R 0x8
INTERP 0x000000000046fcd0 0x000000000046fcd0 0x000000000046fcd0
0x000000000000001c 0x000000000000001c R 0x10
[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
LOAD 0x0000000000000000 0x0000000000000000 0x0000000000000000
0x00000000004edb40 0x00000000004edb40 R E 0x200000
LOAD 0x00000000004ee750 0x00000000006ee750 0x00000000006ee750
0x000000000000c874 0x00000000000108b0 RW 0x200000
DYNAMIC 0x00000000004f93e0 0x00000000006f93e0 0x00000000006f93e0
0x00000000000002b0 0x00000000000002b0 RW 0x8
NOTE 0x00000000000002a8 0x00000000000002a8 0x00000000000002a8
0x0000000000000024 0x0000000000000024 R 0x4
NOTE 0x00000000004edb20 0x00000000004edb20 0x00000000004edb20
0x0000000000000020 0x0000000000000020 R 0x4
TLS 0x00000000004ee750 0x00000000006ee750 0x00000000006ee750
0x0000000000000000 0x0000000000000010 R 0x8
GNU_EH_FRAME 0x000000000046fcec 0x000000000046fcec 0x000000000046fcec
0x000000000000eeac 0x000000000000eeac R 0x4
GNU_STACK 0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000 0x0000000000000000 RW 0x10
GNU_RELRO 0x00000000004ee750 0x00000000006ee750 0x00000000006ee750
0x000000000000b8b0 0x000000000000b8b0 R 0x1
Section to Segment mapping:
Segment Sections...
00
01 .interp
02 .note.gnu.build-id .gnu.hash .dynsym .dynstr .gnu.version
.gnu.version_d .gnu.version_r .rela.dyn .rela.plt .init .plt .plt.got
.text .fini .rodata .interp .eh_frame_hdr .eh_frame .gcc_except_table
.note.ABI-tag
03 .init_array .fini_array .data.rel.ro .dynamic .got .got.plt
.data .bss
04 .dynamic
05 .note.gnu.build-id
06 .note.ABI-tag
07 .tbss
08 .eh_frame_hdr
09
10 .init_array .fini_array .data.rel.ro .dynamic .got
You will all be happy to know both the library and executable little
endian.
I thought the beginning of the strace was pretty interesting:
execve("/usr/bin/mythbackend", ["/usr/bin/mythbackend"], 0x7fffc6393f30
/* 19 vars */) = 0
brk(NULL) = 0x7faff5f4e000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or
directory)
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or
directory)
.....
And here's the first appearance of the libQt library to the end of the
end of the strace:
openat(AT_FDCWD, "/lib/libQt5Core.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT
(No such file or directory)
openat(AT_FDCWD, "/usr/lib/tls/libQt5Core.so.5", O_RDONLY|O_CLOEXEC) =
-1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/libQt5Core.so.5", O_RDONLY|O_CLOEXEC) = -1
ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/local/lib/libQt5Core.so.5", O_RDONLY|O_CLOEXEC) =
-1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libQt5Core.so.5",
O_RDONLY|O_CLOEXEC) = 3
read(3,
"\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 at g\t\0\0\0\0\0"..., 832)
= 832
lseek(3, 5167904, SEEK_SET) = 5167904
read(3,
"\4\0\0\0\20\0\0\0\1\0\0\0GNU\0\0\0\0\0\3\0\0\0\21\0\0\0\0\0\0\0", 32) = 32
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or
directory)
openat(AT_FDCWD,
"/lib/x86_64-linux-gnu/tls/x86_64/x86_64/libQt5Core.so.5",
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/lib/x86_64-linux-gnu/tls/x86_64/x86_64", 0x7fff9b396bc0) = -1
ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/tls/x86_64/libQt5Core.so.5",
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/lib/x86_64-linux-gnu/tls/x86_64", 0x7fff9b396bc0) = -1 ENOENT (No
such file or directory)
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/tls/x86_64/libQt5Core.so.5",
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/lib/x86_64-linux-gnu/tls/x86_64", 0x7fff9b396bc0) = -1 ENOENT (No
such file or directory)
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/tls/libQt5Core.so.5",
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/lib/x86_64-linux-gnu/tls", 0x7fff9b396bc0) = -1 ENOENT (No such
file or directory)
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/x86_64/x86_64/libQt5Core.so.5",
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/lib/x86_64-linux-gnu/x86_64/x86_64", 0x7fff9b396bc0) = -1 ENOENT
(No such file or directory)
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/x86_64/libQt5Core.so.5",
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/lib/x86_64-linux-gnu/x86_64", 0x7fff9b396bc0) = -1 ENOENT (No
such file or directory)
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/x86_64/libQt5Core.so.5",
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/lib/x86_64-linux-gnu/x86_64", 0x7fff9b396bc0) = -1 ENOENT (No
such file or directory)
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libQt5Core.so.5",
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/lib/x86_64-linux-gnu", {st_mode=S_IFDIR|0755, st_size=16384,
...}) = 0
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libQt5Core.so.5",
O_RDONLY|O_CLOEXEC) = 3
read(3,
"\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 at g\t\0\0\0\0\0"..., 832)
= 832
lseek(3, 5167904, SEEK_SET) = 5167904
read(3,
"\4\0\0\0\20\0\0\0\1\0\0\0GNU\0\0\0\0\0\3\0\0\0\21\0\0\0\0\0\0\0", 32) = 32
close(3) = 0
openat(AT_FDCWD, "/lib/libQt5Core.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT
(No such file or directory)
openat(AT_FDCWD, "/usr/lib/tls/libQt5Core.so.5", O_RDONLY|O_CLOEXEC) =
-1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/libQt5Core.so.5", O_RDONLY|O_CLOEXEC) = -1
ENOENT (No such file or directory)
writev(2, [{iov_base="/usr/bin/mythbackend", iov_len=20}, {iov_base=":
", iov_len=2}, {iov_base="error while loading shared libra"...,
iov_len=36}, {iov_base=": ", iov_len=2}, {iov_base="libQt5Core.so.5",
iov_len=15}, {iov_base=": ", iov_len=2}, {iov_base="cannot open shared
object file", iov_len=30}, {iov_base=": ", iov_len=2}, {iov_base="No
such file or directory", iov_len=25}, {iov_base="\n", iov_len=1}], 10) = 135
exit_group(127) = ?
+++ exited with 127 +++
Sorry for the length. Thanks for the help. -Matt
On 05/21/2018 06:49 PM, Louis Krupp wrote:
> On the off chance that there's something in the library that the system
> doesn't like, can you do this?
>
> readelf -e <path to library>
>
> And would it be too much trouble to capture more of the stat calls?
>
> And -- last -- on the off chance that something has changed, what does
> this do now?:
>
> ls -alh /usr/lib/x86_64-linux-gnu/libQt5Core.so.5*
>
> Louis
>
>
>
> On Mon, May 21, 2018 at 5:34 AM, Matt Bidwell <mbidwell at gmail.com
> <mailto:mbidwell at gmail.com>> wrote:
>
> It appears to stat it many times. Here's the last one:
> stat("/lib/x86_64-linux-gnu", {st_mode=S_IFDIR|0755, st_size=16384,
> ...}) = 0
> openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libQt5Core.so.5",
> O_RDONLY|O_CLOEXEC) = 3
> read(3,
> "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 at g\t\0\0\0\0\0"...,
> 832) = 832
> lseek(3, 5167904, SEEK_SET) = 5167904
> read(3,
> "\4\0\0\0\20\0\0\0\1\0\0\0GNU\0\0\0\0\0\3\0\0\0\21\0\0\0\0\0\0\0",
> 32) = 32
> close(3) = 0
>
> Here's wht ldconfig -p get's me.
> # ldconfig -p | grep libQt5Core.so.5
> libQt5Core.so.5 (libc6,x86-64, OS ABI: Linux 3.17.0) =>
> /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
>
> I really do appreciate the help. There were some Qt package updates
> this morning including libqt5core5a. Updating them didn't fix
> anything but I may dig through the change logs later. -Matt
>
>
> On 05/20/2018 08:30 PM, Davide Del Vento wrote:
>
> In the strace output, is there any attempt to load any of the
> /usr/lib/x86_64-linux-gnu/libQt5Core.so.5* ?
> If so, you should get the clue we're after.
> If not, that's the weirdness, especially if it shows (succeeding)
> attempts to load /usr/lib/x86_64-linux-gnu/libQt5Script.so.5 as the
> ldd suggests.
>
> On Sun, May 20, 2018 at 6:49 PM, Zan Lynx <zlynx at acm.org
> <mailto:zlynx at acm.org>> wrote:
>
> On 5/20/2018 4:46 PM, Matt Bidwell wrote:
>
>
> openat(AT_FDCWD, "/usr/lib/libQt5Core.so.5",
> O_RDONLY|O_CLOEXEC) = 3
>
>
>
> This one is not in the 64-bit library location so it is
> rejected for loading
> into a 64-bit program. At least if it is following the usual
> Linux
> distribution file locations.
>
> --
> Knowledge is Power -- Power Corrupts
> Study Hard -- Be Evil
More information about the LUG
mailing list