On Jul 25, 2024, at 09:48, Mark Millard <mark...@yahoo.com> 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 <m...@freebsd.org>
> AuthorDate: 2024-07-24 15:11:27 +0000
> Commit: Michal Meloun <m...@freebsd.org>
> 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 <mark...@yahoo.com>, John F Carr <j...@mit.edu>
> 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


Reply via email to