[Bug 227552] w, uptime i386 coredump in libxo
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Fri May 11 20:49:02 UTC 2018
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=227552
--- Comment #26 from Phil Shafer <phil at freebsd.org> ---
Looks to be a "strip" issue:
Jimi [lib/test]% mkdir works fails
Jimi [lib/test]% install -s /usr/obj/usr/src/lib/libxo/libxo.so.0.full
works/libxo.so.0
Jimi [lib/test]% install -s /usr/obj/usr/src/lib/libxo/libxo.so.0.full
fails/libxo.so.0
Jimi [lib/test]% ll */*0
-rwxr-xr-x 1 phil phil 97756 May 11 16:43 fails/libxo.so.0*
-rwxr-xr-x 1 phil phil 97756 May 11 16:43 works/libxo.so.0*
Jimi [lib/test]% env LD_LIBRARY_PATH=works /tmp/uptime
4:45PM up 7 days, 8:40, 3 users, load averages: 0.55, 0.45, 0.43
Jimi [lib/test]% env LD_LIBRARY_PATH=fails /tmp/uptime
4:45PM up 7 days, 8:40, 3 users, load averages: 0.51, 0.44, 0.43
Jimi [lib/test]% strip fails/libxo.so.0
Jimi [lib/test]% env LD_LIBRARY_PATH=fails /tmp/uptime
Segmentation fault (core dumped)
Jimi [lib/test]% readelf -e works/libxo.so.0 > works/out
Jimi [lib/test]% readelf -e fails/libxo.so.0 > fails/out
Jimi [lib/test]% diff -u works/out fails/out
--- works/out 2018-05-11 16:45:46.660037000 -0400
+++ fails/out 2018-05-11 16:45:56.004434000 -0400
@@ -28,7 +28,7 @@
LOAD 0x000000 0x00000000 0x00000000 0x171f8 0x171f8 R E 0x1000
LOAD 0x0171f8 0x000181f8 0x000181f8 0x005fc 0x0064c RW 0x1000
DYNAMIC 0x0172f4 0x000182f4 0x000182f4 0x000d8 0x000d8 RW 0x4
- TLS 0x0171f8 0x000181f8 0x000181f8 0x00000 0x0064c R 0x8
+ TLS 0x0171f8 0x000187f4 0x000187f4 0x00000 0x00050 R 0x8
GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x4
Section to Segment mapping:
@@ -36,7 +36,7 @@
00 .hash .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rel.dyn
.rel.plt .init .plt .text .fini .rodata .eh_frame .comment .shstrtab
01 .ctors .dtors .jcr .data.rel.ro .dynamic .got .got.plt .data .bss
02 .dynamic
- 03 .ctors .dtors .jcr .data.rel.ro .dynamic .got .got.plt .data .bss
+ 03 .bss
04
There are 27 section headers, starting at offset 0x179a4:
Jimi [lib/test]% which strip
/usr/bin/strip
Jimi [lib/test]%
So "strip" (but not "install -s"?) doctors the TLS header, reducing the length
and causing TLS bss data to be uninitialized. Both versions have the .tbss
section removed from the "Segment to Section" map.
Thanks,
Phil
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list