Re: [main has a fix for] armv7-on-aarch64 stuck at urdlck: I got a replication of the "ampere2" bulk build hangup problem on a Windows DevKit 2023

Mark Millard <[email protected]>
Newsgroups gmane.os.freebsd.devel.arm,gmane.os.freebsd.devel.ports,gmane.os.freebsd.current
Message-ID <[email protected]>
On Jul 25, 2024, at 09:48, Mark Millard <[email protected]> wrote:

> Michal Meloun <mmel_at_FreeBSD.org> has committed a fix in main:
> 
> See:
> https://lists.freebsd.org/archives/dev-commits-src-main/2024-July/025399.html
> 
> that starts with:
> 
> From: Michal Meloun <mmel_at_FreeBSD.org>
> Date: Thu, 25 Jul 2024 16:25:09 UTC 
> The branch main has been updated by mmel:
> 
> URL: https://cgit.FreeBSD.org/src/commit/?id=5670b8cc3672d5a6bc2c41eb48d7d01343c43ad0
> 
> commit 5670b8cc3672d5a6bc2c41eb48d7d01343c43ad0
> Author: Michal Meloun <[email protected]>
> AuthorDate: 2024-07-24 15:11:27 +0000
> Commit: Michal Meloun <[email protected]>
> CommitDate: 2024-07-25 16:24:22 +0000
> 
> libthr: Preresolve selected EABI symbols on arm.
> 
> Add the ability to pre-resolve architecture-specific EABI symbols and
> use it on arm for selected EABI functions. These functions can be called
> with rtld bind lock write-locked, so they should be resolved in forward.
> 
> Reported by: Mark Millard <[email protected]>, John F Carr <[email protected]>
> Reviewed by: kib, imp
> MFC after: 1 week
> Differential Revision: https://reviews.freebsd.org/D46104
> ---
> lib/libthr/arch/aarch64/include/pthread_md.h | 5 +++
> lib/libthr/arch/amd64/include/pthread_md.h | 5 +++
> lib/libthr/arch/arm/Makefile.inc | 3 ++
> lib/libthr/arch/arm/thr_rtld_arm.c | 67 ++++++++++++++++++++++++++++
> lib/libthr/arch/i386/include/pthread_md.h | 5 +++
> lib/libthr/arch/powerpc/include/pthread_md.h | 5 +++
> lib/libthr/arch/riscv/include/pthread_md.h | 5 +++
> lib/libthr/thread/thr_private.h | 1 +
> lib/libthr/thread/thr_rtld.c | 3 ++
> 9 files changed, 99 insertions(+)
> 
> . . .

https://pkg.freebsd.org/FreeBSD:15:armv7/base_latest/ has 15.snap20240726110821
and updating to it leads to avoiding the hang-up in my dlopen_test.c testing.
It is based on:

126	static inline size_t
127	round_up(size_t size)
128	{
129		if (size % _thr_page_size != 0)
130			size = ((size / _thr_page_size) + 1) *
131			    _thr_page_size;
132		return size;
133	}

that uses the _aeabi_* routine(s) in standard armv7 builds.

But that no longer causes the recursive locking deadlock
problem.

So, it looks like updating the kernel and world on ampere2 and
enabling builds of main-armv7-default should no longer have
main-armv7-default hang-up during graphviz installation (or
analogous contexts). Hopefully, that means that
main-armv7-default builds will then complete and be distributed.

===
Mark Millard
marklmi at yahoo.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.