Date: Thu, 21 Nov 2024 13:33:12 -0800 From: Mark Millard <marklmi@yahoo.com> To: Dimitry Andric <dim@FreeBSD.org>, FreeBSD Mailing List <freebsd-ports@freebsd.org>, Current FreeBSD <freebsd-current@freebsd.org> Cc: Guido Falsi <mad@madpilot.net> Subject: Re: port binary dumping core on recent head in poudriere [WRONG: 1500026 libsass.so.1.0.0 vs. 1500027 one] Message-ID: <AF4B453E-F2DE-48A6-BC02-5B00AD559C85@yahoo.com> In-Reply-To: <DD5BB2AF-603F-426A-B766-84B1DE617A53@yahoo.com> References: <0078D1FE-5A33-43A1-B679-727080676688@yahoo.com> <ECF20A6F-6591-46A0-99AE-53BC54CA649F@yahoo.com> <DD5BB2AF-603F-426A-B766-84B1DE617A53@yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
> On Nov 21, 2024, at 13:15, Mark Millard <marklmi@yahoo.com> wrote: >=20 > Summary: >=20 > Turns out in my context: libsass.so <http://libsass.so/>.1.0.0 built = for > 1500026 fails and built for 1500027 works, at least > when used via a 1500027 world. So much for that idea: updating the poudriere jail to be 1500027 based and rebuilding the software and installing it still gets the problem, despite file showing 1500027 now. > # file /usr/local/lib/libsass.so.1.0.0* > /usr/local/lib/libsass.so.1.0.0: ELF 64-bit LSB shared = object, x86-64, version 1 (FreeBSD), dynamically linked, for FreeBSD = 15.0 (1500026), with debug_info, not stripped > /usr/local/lib/libsass.so.1.0.0.good-from-pkg: ELF 64-bit LSB shared = object, x86-64, version 1 (FreeBSD), dynamically linked, for FreeBSD = 15.0 (1500027), stripped > /usr/local/lib/libsass.so.1.0.0.orig-stripped: ELF 64-bit LSB shared = object, x86-64, version 1 (FreeBSD), dynamically linked, for FreeBSD = 15.0 (1500026), stripped >=20 > Use of the 1500026 ones fail; use of the 1500027 one works. >=20 > FYI: >=20 > # file /usr/local/bin/sassc = /usr/obj/DESTDIRs/main-amd64-pbase/usr/local/bin/sassc=20 > /usr/local/bin/sassc: ELF 64-bit LSB = executable, x86-64, version 1 (FreeBSD), dynamically linked, interpreter = /libexec/ld-elf.so.1, for FreeBSD 15.0 (1500026), FreeBSD-style, with = debug_info, not stripped > /usr/obj/DESTDIRs/main-amd64-pbase/usr/local/bin/sassc: ELF 64-bit LSB = executable, x86-64, version 1 (FreeBSD), dynamically linked, interpreter = /libexec/ld-elf.so.1, for FreeBSD 15.0 (1500027), FreeBSD-style, = stripped >=20 >=20 > The details that lead to finding that out . . . >=20 > I've no got both a failing context (outside a chroot) > and a working one (inside a PkgBase based chroot that > got sassc and such via pkg install). So exploring . . . >=20 > Failing (the "Old value =3D 0x0" is odd): >=20 > Reading symbols from /usr/local/bin/sassc... > (gdb) set radix 16 > Input and output radices now set to decimal 16, hex 10, octal 20. > (gdb) watch -l *(unsigned long*)0x800508108 > Hardware watchpoint 1: -location *(unsigned long*)0x800508108 > (gdb) watch -l *(unsigned long*)0x800671170 > Hardware watchpoint 2: -location *(unsigned long*)0x800671170 > (gdb) run > Starting program: /usr/local/bin/sassc =20 > Hardware watchpoint 1: -location *(unsigned long*)0x800508108 >=20 > Old value =3D 0x0 > New value =3D 0x800249000 > reloc_plt (obj=3Dobj@entry=3D0x80022a808, flags=3Dflags@entry=3D0x4, = lockstate=3Dlockstate@entry=3D0x0) at = /usr/main-src/libexec/rtld-elf/amd64/reloc.c:343 > 343 break; > (gdb) c > Continuing. >=20 > Hardware watchpoint 2: -location *(unsigned long*)0x800671170 >=20 > Old value =3D 0x39696 > New value =3D 0x80066e696 > reloc_plt (obj=3Dobj@entry=3D0x80022e408, flags=3Dflags@entry=3D0x4, = lockstate=3Dlockstate@entry=3D0x0) at = /usr/main-src/libexec/rtld-elf/amd64/reloc.c:343 > 343 break; > (gdb) c > Continuing. >=20 > Program received signal SIGSEGV, Segmentation fault. > Invalid permissions for mapped object. > 0x0000000800249000 in ?? () >=20 >=20 >=20 > Working (no odd "Old value" this time): > (The "watchpoint 2" address is somewhat different.) >=20 > Reading symbols from /usr/local/bin/sassc... > (No debugging symbols found in /usr/local/bin/sassc) > (gdb) set radix 16 > Input and output radices now set to decimal 16, hex 10, octal 20. > (gdb) watch -l *(unsigned long*)0x800508108 > Hardware watchpoint 1: -location *(unsigned long*)0x800508108 > (gdb) watch -l *(unsigned long*)0x800670170 > Hardware watchpoint 2: -location *(unsigned long*)0x800670170 > (gdb) run > Starting program: /usr/local/bin/sassc =20 > Hardware watchpoint 1: -location *(unsigned long*)0x800508108 >=20 > Old value =3D 0x2aada6 > New value =3D 0x8004f3da6 > reloc_plt (obj=3Dobj@entry=3D0x80022a808, flags=3Dflags@entry=3D0x4, = lockstate=3Dlockstate@entry=3D0x0) at = /home/pkgbuild/worktrees/main/libexec/rtld-elf/amd64/reloc.c:343 > 343 break; > (gdb) c > Continuing. >=20 > Hardware watchpoint 2: -location *(unsigned long*)0x800670170 >=20 > Old value =3D 0x39696 > New value =3D 0x80066d696 > reloc_plt (obj=3Dobj@entry=3D0x80022e408, flags=3Dflags@entry=3D0x4, = lockstate=3Dlockstate@entry=3D0x0) at = /home/pkgbuild/worktrees/main/libexec/rtld-elf/amd64/reloc.c:343 > 343 break; > (gdb) c > Continuing. >=20 > Hardware watchpoint 1: -location *(unsigned long*)0x800508108 >=20 > Old value =3D 0x8004f3da6 > New value =3D 0x800648870 > reloc_jmpslot (where=3Dwhere@entry=3D0x800508108 <acos@got[plt]>, = target=3Dtarget@entry=3D0x800648870, obj=3Dobj@entry=3D0x80022e408, = refobj=3Drefobj@entry=3D0x80022a808, rel=3Drel@entry=3D0x8002fcf10) > at /home/pkgbuild/worktrees/main/libexec/rtld-elf/amd64/reloc.c:413 > 413 return (target); > (gdb) c > Continuing. > Usage: /usr/local/bin/sassc [options] [INPUT] [OUTPUT] >=20 > Options: > -s, --stdin Read input from standard input instead of an = input file. > -t, --style NAME Output style. Can be: nested, expanded, = compact, compressed. > -l, --line-numbers Emit comments showing original line numbers. > --line-comments > -I, --load-path PATH Set Sass import path. > -P, --plugin-path PATH Set path to autoload plugins. > -m, --sourcemap[=3DTYPE] Emit source map (auto or inline). > -M, --omit-map-comment Omits the source map url comment. > -p, --precision Set the precision for numbers. > -a, --sass Treat input as indented syntax. > -v, --version Display compiled versions. > -h, --help Display this help message. >=20 > [Inferior 1 (process 87037) exited normally] >=20 >=20 >=20 > Turns out that copying the /usr/local/lib/libsass.so.1.0.0 > from the working environment to the failing one makes the > failing one work. So something about the content of > /usr/local/lib/libsass.so.1.0.0 makes the difference. >=20 > Turns out it tracks the 1500026 vs. 1500027 distinctions > below: >=20 > # file /usr/local/lib/libsass.so.1.0.0* > /usr/local/lib/libsass.so.1.0.0: ELF 64-bit LSB shared = object, x86-64, version 1 (FreeBSD), dynamically linked, for FreeBSD = 15.0 (1500026), with debug_info, not stripped > /usr/local/lib/libsass.so.1.0.0.good-from-pkg: ELF 64-bit LSB shared = object, x86-64, version 1 (FreeBSD), dynamically linked, for FreeBSD = 15.0 (1500027), stripped > /usr/local/lib/libsass.so.1.0.0.orig-stripped: ELF 64-bit LSB shared = object, x86-64, version 1 (FreeBSD), dynamically linked, for FreeBSD = 15.0 (1500026), stripped =3D=3D=3D Mark Millard marklmi at yahoo.com =3D=3D=3D Mark Millard marklmi at yahoo.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AF4B453E-F2DE-48A6-BC02-5B00AD559C85>