Date: Sat, 20 Jul 2024 16:42:23 -0700 From: Mark Millard <marklmi@yahoo.com> To: Konstantin Belousov <kostikbel@gmail.com> Cc: arm@freebsd.org, current@freebsd.org Subject: Re: armv7-on-aarch64 stuck at urdlck: I got a replication of the "ampere2" bulk build hangup problem on a Windows DevKit 2023 Message-ID: <8E9579B7-2ABF-4446-B65E-E993E7B67C5C@yahoo.com> In-Reply-To: <Zpt79jpCFDSiffcy@kib.kiev.ua> References: <A3BBDBA3-FF7E-47B8-8B45-C3351918FC08@yahoo.com> <8214703E-AB28-4FB3-A3DD-03C87363D8C6@yahoo.com> <E40B106D-30B7-49DC-8540-911A56E53FCA@yahoo.com> <BFCA474F-78D4-4E98-8A9B-B92C2DB6B0DE@yahoo.com> <E40627DC-35A2-4D5E-A85C-73D7FFD426DF@yahoo.com> <A208F7C8-0D9E-402C-BB85-A5022B37E3EC@yahoo.com> <Zpt79jpCFDSiffcy@kib.kiev.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
On Jul 20, 2024, at 01:57, Konstantin Belousov <kostikbel@gmail.com> = wrote: > [Everything and everybody in Cc: are stripped for good]. >=20 > On Fri, Jul 19, 2024 at 10:38:36PM -0700, Mark Millard wrote: >> 0x201375c0 - 0x2014092c is .bss in /lib/libthr.so.3 >>=20 >> (gdb) bt >> #0 0x201aeec0 in __pthread_map_stacks_exec () from /lib/libc.so.7 >> #1 0x2005d1e4 in ?? () from /libexec/ld-elf.so.1 >> Backtrace stopped: previous frame identical to this frame (corrupt = stack?) >> (gdb) disass >> Dump of assembler code for function __pthread_map_stacks_exec: >> =3D> 0x201aeec0 <+0>: ldr r0, [pc, #8] @ 0x201aeed0 = <__pthread_map_stacks_exec+16> >> 0x201aeec4 <+4>: add r0, pc, r0 >> 0x201aeec8 <+8>: ldr r0, [r0, #156] @ 0x9c >> 0x201aeecc <+12>: bx r0 >> 0x201aeed0 <+16>: andseq r6, r7, r4, lsr #12 >> End of assembler dump. >>=20 >=20 > Do the following: > 1. Rebuild rtld/libc/libthr with the debugging info and no = optimization, > i.e. ensure that flags are "-O0 -g" or "-Og -g" and not -O2. See > the first comment in libexec/rtld-elf/Makefile for the hint how to > do it. I did a full buildworld with "-Og -g" via temporary use of: diff --git a/share/mk/sys.mk b/share/mk/sys.mk index 44db9266784f..9c6c7ce575a4 100644 --- a/share/mk/sys.mk +++ b/share/mk/sys.mk @@ -145,7 +145,8 @@ CC ?=3D c89 CFLAGS ?=3D -O .else CC ?=3D cc -CFLAGS ?=3D -O2 -pipe +#CFLAGS ?=3D -O2 -pipe +CFLAGS ?=3D -Og -g -pipe .if defined(NO_STRICT_ALIASING) CFLAGS +=3D -fno-strict-aliasing .endif I installed the result armv7 world into a directory tree and installed pkg and cairo. > 2. Reproduce the issue The dlopen_test.c based case does not fail under the world built with "-Og -g": # cc -g -std=3Dc11 -pedantic -Wall -pthread dlopen_test.c ; ./a.out #=20 > under gdb (gdb) run Starting program: /root/a.out [Inferior 1 (process 36680) exited = normally] (gdb)=20 So it does not reproduce in gdb when buildworld was based on "-Og -g". > , and backtrace all threads from userspace. > I only need userspace backtrace, not either kernel-side stacks nor > the syscall history. >=20 > Are you sure that the issue is specific to armv7, might be it takes = more > efforts to reproduce on host native? =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?8E9579B7-2ABF-4446-B65E-E993E7B67C5C>