# $NetBSD: Makefile.compiler-rt,v 1.14 2023/11/13 19:07:00 mrg Exp $ COMPILER_RT_DIR= ${.PARSEDIR}/../../external/bsd/compiler_rt COMPILER_RT_SRCDIR= ${COMPILER_RT_DIR}/dist .if ${MACHINE_ARCH} == "powerpc" COMPILER_RT_CPU_DIR= ${COMPILER_RT_SRCDIR}/lib/builtins/ppc COMPILER_RT_ARCH_DIR= ${COMPILER_RT_SRCDIR}/lib/builtins/ppc .else COMPILER_RT_CPU_DIR= ${COMPILER_RT_SRCDIR}/lib/builtins/${MACHINE_CPU} COMPILER_RT_ARCH_DIR= ${COMPILER_RT_SRCDIR}/lib/builtins/${MACHINE_ARCH} .endif .PATH: ${COMPILER_RT_CPU_DIR} .PATH: ${COMPILER_RT_ARCH_DIR} .PATH: ${COMPILER_RT_SRCDIR}/lib/builtins GENERIC_SRCS+= \ absvdi2.c \ absvsi2.c \ absvti2.c \ addvdi3.c \ addvsi3.c \ addvti3.c \ ashlti3.c \ ashrti3.c \ clzti2.c \ cmpti2.c \ ctzti2.c \ divti3.c \ ffsti2.c \ int_util.c \ lshrti3.c \ modti3.c \ mulodi4.c \ mulosi4.c \ muloti4.c \ multi3.c \ mulvdi3.c \ mulvsi3.c \ mulvti3.c \ negti2.c \ negvdi2.c \ negvsi2.c \ negvti2.c \ paritydi2.c \ paritysi2.c \ parityti2.c \ popcountdi2.c \ popcountsi2.c \ popcountti2.c \ subvdi3.c \ subvsi3.c \ subvti3.c \ ucmpti2.c \ udivmodti4.c \ udivti3.c \ umodti3.c .if ${MACHINE_CPU} != "aarch64" && ${MACHINE} != "alpha" GENERIC_SRCS+= \ clzsi2.c \ ctzsi2.c .endif .if ${MACHINE_CPU} != "aarch64" && ${MACHINE} != "alpha" && \ ${MACHINE_ARCH} != "m68k" GENERIC_SRCS+= \ divmodsi4.c \ divsi3.c \ modsi3.c \ udivmodsi4.c \ udivsi3.c \ umodsi3.c .endif .if ${MACHINE_CPU} != "aarch64" GENERIC_SRCS+= \ clzdi2.c \ ctzdi2.c \ ffsdi2.c .endif .if ${MACHINE_CPU} != "aarch64" && ${MACHINE} != "alpha" GENERIC_SRCS+= \ ashldi3.c \ ashrdi3.c \ lshrdi3.c .endif .if ${MACHINE_CPU} != "aarch64" && ${MACHINE} != "alpha" GENERIC_SRCS+= \ cmpdi2.c \ divdi3.c \ divmoddi4.c \ moddi3.c \ muldi3.c \ negdi2.c \ ucmpdi2.c \ udivdi3.c \ udivmoddi4.c \ umoddi3.c .endif .if ${MACHINE_CPU} == "arm" . if !empty(MACHINE_ARCH:Mearm*) GENERIC_SRCS+= \ aeabi_idivmod.S \ aeabi_ldivmod.S \ aeabi_uidivmod.S \ aeabi_uldivmod.S \ __aeabi_idiv0.c \ __aeabi_ldiv0.c . endif .endif .for src in ${GENERIC_SRCS} . if exists(${COMPILER_RT_CPU_DIR}/${src:R}.S) || \ exists(${COMPILER_RT_ARCH_DIR}/${src:R}.S) SRCS+= ${src:R}.S . else SRCS+= ${src} COPTS.${src}+= -Wno-missing-prototypes \ -Wno-old-style-definition \ -Wno-strict-prototypes \ -Wno-uninitialized . endif .endfor CPPFLAGS.int_util.c+= -DKERNEL_USE # XXX Explicit divide by zero in udivmoddi4.c -> abort(). .if defined(HAVE_GCC) && ${HAVE_GCC} >= 7 && ${ACTIVE_CC} == "gcc" . if ${MACHINE_CPU} != "arm" COPTS.udivmoddi4.c+= -fnon-call-exceptions . endif .endif # XXX This makes no binary changes at the moment. .include "${COMPILER_RT_DIR}/abi.mk"