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
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=sparc64 && MACHINE_ARCH=sparc when building
6 # 32 bit kernels for ultrasparc hardware
7 .if ${MACHINE} == "sparc64" && \
8 (${HAVE_LLVM:Uno} == "no" || (defined(LIB) && ${LIB} == "kern"))
9
10 SPARC64DIR= ${.PARSEDIR}/../../sparc64/atomic
11 .PATH.c: ${SPARC64DIR}
12 .PATH.S: ${SPARC64DIR}
13
14 .include "${SPARC64DIR}/Makefile.inc"
15
16 .if defined(LIB) && (${LIB} == "kern" || ${LIB} == "c" || ${LIB} == "pthread" \
17 || ${LIB} == "rump")
18 SRCS+= atomic_nand_64_cas.c atomic_xor_64_cas.c atomic_sub_64_cas.c \
19 atomic_cas_64_cas.c
20 .endif
21
22 .else
https://nxr.NetBSD.org/xref/src/common/lib/libc/arch/sparc/atomic/Makefile.inc?r=1.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