1 1.14 mrg # $NetBSD: Makefile.compiler-rt,v 1.14 2023/11/13 19:07:00 mrg Exp $ 2 1.1 joerg 3 1.14 mrg COMPILER_RT_DIR= ${.PARSEDIR}/../../external/bsd/compiler_rt 4 1.13 rin COMPILER_RT_SRCDIR= ${COMPILER_RT_DIR}/dist 5 1.1 joerg 6 1.1 joerg .if ${MACHINE_ARCH} == "powerpc" 7 1.4 joerg COMPILER_RT_CPU_DIR= ${COMPILER_RT_SRCDIR}/lib/builtins/ppc 8 1.4 joerg COMPILER_RT_ARCH_DIR= ${COMPILER_RT_SRCDIR}/lib/builtins/ppc 9 1.1 joerg .else 10 1.4 joerg COMPILER_RT_CPU_DIR= ${COMPILER_RT_SRCDIR}/lib/builtins/${MACHINE_CPU} 11 1.4 joerg COMPILER_RT_ARCH_DIR= ${COMPILER_RT_SRCDIR}/lib/builtins/${MACHINE_ARCH} 12 1.1 joerg .endif 13 1.1 joerg 14 1.1 joerg .PATH: ${COMPILER_RT_CPU_DIR} 15 1.1 joerg .PATH: ${COMPILER_RT_ARCH_DIR} 16 1.4 joerg .PATH: ${COMPILER_RT_SRCDIR}/lib/builtins 17 1.1 joerg 18 1.1 joerg GENERIC_SRCS+= \ 19 1.1 joerg absvdi2.c \ 20 1.1 joerg absvsi2.c \ 21 1.1 joerg absvti2.c \ 22 1.1 joerg addvdi3.c \ 23 1.1 joerg addvsi3.c \ 24 1.1 joerg addvti3.c \ 25 1.1 joerg ashlti3.c \ 26 1.1 joerg ashrti3.c \ 27 1.1 joerg clzti2.c \ 28 1.1 joerg cmpti2.c \ 29 1.1 joerg ctzti2.c \ 30 1.1 joerg divti3.c \ 31 1.1 joerg ffsti2.c \ 32 1.1 joerg int_util.c \ 33 1.1 joerg lshrti3.c \ 34 1.1 joerg modti3.c \ 35 1.1 joerg mulodi4.c \ 36 1.1 joerg mulosi4.c \ 37 1.1 joerg muloti4.c \ 38 1.1 joerg multi3.c \ 39 1.1 joerg mulvdi3.c \ 40 1.1 joerg mulvsi3.c \ 41 1.1 joerg mulvti3.c \ 42 1.1 joerg negti2.c \ 43 1.1 joerg negvdi2.c \ 44 1.1 joerg negvsi2.c \ 45 1.1 joerg negvti2.c \ 46 1.1 joerg paritydi2.c \ 47 1.1 joerg paritysi2.c \ 48 1.1 joerg parityti2.c \ 49 1.1 joerg popcountdi2.c \ 50 1.1 joerg popcountsi2.c \ 51 1.1 joerg popcountti2.c \ 52 1.1 joerg subvdi3.c \ 53 1.1 joerg subvsi3.c \ 54 1.1 joerg subvti3.c \ 55 1.1 joerg ucmpti2.c \ 56 1.1 joerg udivmodti4.c \ 57 1.1 joerg udivti3.c \ 58 1.1 joerg umodti3.c 59 1.1 joerg 60 1.5 matt .if ${MACHINE_CPU} != "aarch64" && ${MACHINE} != "alpha" 61 1.5 matt GENERIC_SRCS+= \ 62 1.5 matt clzsi2.c \ 63 1.5 matt ctzsi2.c 64 1.5 matt .endif 65 1.5 matt 66 1.11 rin .if ${MACHINE_CPU} != "aarch64" && ${MACHINE} != "alpha" && \ 67 1.11 rin ${MACHINE_ARCH} != "m68k" 68 1.11 rin GENERIC_SRCS+= \ 69 1.12 rin divmodsi4.c \ 70 1.5 matt divsi3.c \ 71 1.5 matt modsi3.c \ 72 1.12 rin udivmodsi4.c \ 73 1.5 matt udivsi3.c \ 74 1.5 matt umodsi3.c 75 1.5 matt .endif 76 1.5 matt 77 1.9 thorpej .if ${MACHINE_CPU} != "aarch64" 78 1.5 matt GENERIC_SRCS+= \ 79 1.5 matt clzdi2.c \ 80 1.5 matt ctzdi2.c \ 81 1.5 matt ffsdi2.c 82 1.5 matt .endif 83 1.5 matt 84 1.5 matt .if ${MACHINE_CPU} != "aarch64" && ${MACHINE} != "alpha" 85 1.5 matt GENERIC_SRCS+= \ 86 1.5 matt ashldi3.c \ 87 1.5 matt ashrdi3.c \ 88 1.5 matt lshrdi3.c 89 1.5 matt .endif 90 1.5 matt 91 1.5 matt .if ${MACHINE_CPU} != "aarch64" && ${MACHINE} != "alpha" 92 1.5 matt GENERIC_SRCS+= \ 93 1.5 matt cmpdi2.c \ 94 1.5 matt divdi3.c \ 95 1.5 matt divmoddi4.c \ 96 1.5 matt moddi3.c \ 97 1.5 matt muldi3.c \ 98 1.5 matt negdi2.c \ 99 1.5 matt ucmpdi2.c \ 100 1.5 matt udivdi3.c \ 101 1.5 matt udivmoddi4.c \ 102 1.5 matt umoddi3.c 103 1.5 matt .endif 104 1.5 matt 105 1.1 joerg .if ${MACHINE_CPU} == "arm" 106 1.2 joerg . if !empty(MACHINE_ARCH:Mearm*) 107 1.1 joerg GENERIC_SRCS+= \ 108 1.1 joerg aeabi_idivmod.S \ 109 1.1 joerg aeabi_ldivmod.S \ 110 1.1 joerg aeabi_uidivmod.S \ 111 1.3 joerg aeabi_uldivmod.S \ 112 1.3 joerg __aeabi_idiv0.c \ 113 1.3 joerg __aeabi_ldiv0.c 114 1.1 joerg . endif 115 1.1 joerg .endif 116 1.1 joerg 117 1.1 joerg .for src in ${GENERIC_SRCS} 118 1.1 joerg . if exists(${COMPILER_RT_CPU_DIR}/${src:R}.S) || \ 119 1.1 joerg exists(${COMPILER_RT_ARCH_DIR}/${src:R}.S) 120 1.1 joerg SRCS+= ${src:R}.S 121 1.1 joerg . else 122 1.1 joerg SRCS+= ${src} 123 1.1 joerg COPTS.${src}+= -Wno-missing-prototypes \ 124 1.1 joerg -Wno-old-style-definition \ 125 1.1 joerg -Wno-strict-prototypes \ 126 1.1 joerg -Wno-uninitialized 127 1.1 joerg . endif 128 1.1 joerg .endfor 129 1.1 joerg 130 1.1 joerg CPPFLAGS.int_util.c+= -DKERNEL_USE 131 1.6 mrg 132 1.6 mrg # XXX Explicit divide by zero in udivmoddi4.c -> abort(). 133 1.10 mrg .if defined(HAVE_GCC) && ${HAVE_GCC} >= 7 && ${ACTIVE_CC} == "gcc" 134 1.8 mrg . if ${MACHINE_CPU} != "arm" 135 1.6 mrg COPTS.udivmoddi4.c+= -fnon-call-exceptions 136 1.8 mrg . endif 137 1.6 mrg .endif 138 1.13 rin 139 1.13 rin # XXX This makes no binary changes at the moment. 140 1.13 rin .include "${COMPILER_RT_DIR}/abi.mk" 141