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