1 1.8 mrg # $NetBSD: Makefile.compiler-rt,v 1.8 2019/02/07 10:44:54 mrg 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.5 matt divsi3.c \ 69 1.5 matt modsi3.c \ 70 1.5 matt udivmodsi4.c \ 71 1.5 matt udivsi3.c \ 72 1.5 matt umodsi3.c 73 1.5 matt .endif 74 1.5 matt 75 1.5 matt .if ${MACHINE_CPU} != "aarch64" && ${MACHINE} != "alpha" 76 1.5 matt GENERIC_SRCS+= \ 77 1.5 matt clzdi2.c \ 78 1.5 matt ctzdi2.c \ 79 1.5 matt ffsdi2.c 80 1.5 matt .endif 81 1.5 matt 82 1.5 matt .if ${MACHINE_CPU} != "aarch64" && ${MACHINE} != "alpha" 83 1.5 matt GENERIC_SRCS+= \ 84 1.5 matt ashldi3.c \ 85 1.5 matt ashrdi3.c \ 86 1.5 matt lshrdi3.c 87 1.5 matt .endif 88 1.5 matt 89 1.5 matt .if ${MACHINE_CPU} != "aarch64" && ${MACHINE} != "alpha" 90 1.5 matt GENERIC_SRCS+= \ 91 1.5 matt cmpdi2.c \ 92 1.5 matt divdi3.c \ 93 1.5 matt divmoddi4.c \ 94 1.5 matt moddi3.c \ 95 1.5 matt muldi3.c \ 96 1.5 matt negdi2.c \ 97 1.5 matt ucmpdi2.c \ 98 1.5 matt udivdi3.c \ 99 1.5 matt udivmoddi4.c \ 100 1.5 matt umoddi3.c 101 1.5 matt .endif 102 1.5 matt 103 1.1 joerg .if ${MACHINE_CPU} == "arm" 104 1.2 joerg . if !empty(MACHINE_ARCH:Mearm*) 105 1.1 joerg GENERIC_SRCS+= \ 106 1.1 joerg aeabi_idivmod.S \ 107 1.1 joerg aeabi_ldivmod.S \ 108 1.1 joerg aeabi_uidivmod.S \ 109 1.3 joerg aeabi_uldivmod.S \ 110 1.3 joerg __aeabi_idiv0.c \ 111 1.3 joerg __aeabi_ldiv0.c 112 1.1 joerg . endif 113 1.1 joerg .endif 114 1.1 joerg 115 1.1 joerg .for src in ${GENERIC_SRCS} 116 1.1 joerg . if exists(${COMPILER_RT_CPU_DIR}/${src:R}.S) || \ 117 1.1 joerg exists(${COMPILER_RT_ARCH_DIR}/${src:R}.S) 118 1.1 joerg SRCS+= ${src:R}.S 119 1.1 joerg . else 120 1.1 joerg SRCS+= ${src} 121 1.1 joerg COPTS.${src}+= -Wno-missing-prototypes \ 122 1.1 joerg -Wno-old-style-definition \ 123 1.1 joerg -Wno-strict-prototypes \ 124 1.1 joerg -Wno-uninitialized 125 1.1 joerg . endif 126 1.1 joerg .endfor 127 1.1 joerg 128 1.1 joerg CPPFLAGS.int_util.c+= -DKERNEL_USE 129 1.6 mrg 130 1.6 mrg # XXX Explicit divide by zero in udivmoddi4.c -> abort(). 131 1.6 mrg .if defined(HAVE_GCC) && ${HAVE_GCC} == 7 && ${ACTIVE_CC} == "gcc" 132 1.8 mrg . if ${MACHINE_CPU} != "arm" 133 1.6 mrg COPTS.udivmoddi4.c+= -fnon-call-exceptions 134 1.8 mrg . endif 135 1.6 mrg .endif 136