NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: port-sparc64/60518: sparc64 compat32 is not compatible enough
The following reply was made to PR port-sparc64/60518; it has been noted by GNATS.
From: Taylor R Campbell <riastradh%NetBSD.org@localhost>
To: Valery Ushakov <uwe%stderr.spb.ru@localhost>
Cc: gnats-bugs%NetBSD.org@localhost, netbsd-bugs%NetBSD.org@localhost
Subject: Re: port-sparc64/60518: sparc64 compat32 is not compatible enough
Date: Wed, 29 Jul 2026 23:29:53 +0000
I bet this is the relevant part that's missing files needed for
__atomic_compare_exchange_1, __sync_bool_compare_and_swap_4, and
whatever else -- in addition to (or perhaps instead of) what the
comment says, I think it is used when building compat32 libc.so on
sparc64:
5 # This is called with MACHINE=3Dsparc64 && MACHINE_ARCH=3Dsparc whe=
n building
6 # 32 bit kernels for ultrasparc hardware
7 .if ${MACHINE} =3D=3D "sparc64" && \
8 (${HAVE_LLVM:Uno} =3D=3D "no" || (defined(LIB) && ${LIB} =3D=3D "k=
ern"))
9=20
10 SPARC64DIR=3D ${.PARSEDIR}/../../sparc64/atomic
11 .PATH.c: ${SPARC64DIR}
12 .PATH.S: ${SPARC64DIR}
13=20
14 .include "${SPARC64DIR}/Makefile.inc"
15=20
16 .if defined(LIB) && (${LIB} =3D=3D "kern" || ${LIB} =3D=3D "c" || $=
{LIB} =3D=3D "pthread" \
17 || ${LIB} =3D=3D "rump")
18 SRCS+=3D atomic_nand_64_cas.c atomic_xor_64_cas.c atomic_sub_64_cas=
.c \
19 atomic_cas_64_cas.c
20 .endif
21=20
22 .else
https://nxr.NetBSD.org/xref/src/common/lib/libc/arch/sparc/atomic/Makefile.=
inc?r=3D1.24#5
Try adding the following files to it (Makefile.inc rev. 1.18 from
back in 2014):
atomic_c11_compare_exchange_cas_32.c
atomic_c11_compare_exchange_cas_16.c
atomic_c11_compare_exchange_cas_8.c
Also, try comparing the output of:
sparc$ nm -gD --defined-only /usr/lib/libc.so
sparc64$ nm -gD --defined-only /usr/lib/sparc/libc.so
I bet there'll be other discrepancies too that have been overlooked
over the years.
Home |
Main Index |
Thread Index |
Old Index