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