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