Makefile.inc revision 360658
1# $FreeBSD: stable/11/lib/libcompiler_rt/Makefile.inc 360658 2020-05-05 12:59:04Z dim $ 2 3CRTARCH= ${MACHINE_CPUARCH:C/amd64/x86_64/} 4 5CRTSRC= ${SRCTOP}/contrib/compiler-rt/lib/builtins 6 7.PATH: ${CRTSRC}/${CRTARCH} 8.PATH: ${CRTSRC} 9 10SRCF+= absvdi2 11SRCF+= absvsi2 12SRCF+= absvti2 13SRCF+= addvdi3 14SRCF+= addvsi3 15SRCF+= addvti3 16SRCF+= apple_versioning 17SRCF+= ashldi3 18SRCF+= ashlti3 19SRCF+= ashrdi3 20SRCF+= ashrti3 21SRCF+= clear_cache 22SRCF+= clzdi2 23SRCF+= clzsi2 24SRCF+= clzti2 25SRCF+= cmpdi2 26SRCF+= cmpti2 27SRCF+= ctzdi2 28SRCF+= ctzsi2 29SRCF+= ctzti2 30SRCF+= divdc3 31SRCF+= divdi3 32SRCF+= divmoddi4 33SRCF+= divmodsi4 34SRCF+= divsc3 35SRCF+= divtc3 36SRCF+= divti3 37SRCF+= divxc3 38SRCF+= enable_execute_stack 39SRCF+= eprintf 40SRCF+= extendhfsf2 41SRCF+= ffsdi2 42SRCF+= ffssi2 43SRCF+= ffsti2 44SRCF+= fixdfdi 45SRCF+= fixdfti 46SRCF+= fixsfdi 47SRCF+= fixsfti 48SRCF+= fixunsdfdi 49SRCF+= fixunsdfsi 50SRCF+= fixunsdfti 51SRCF+= fixunssfdi 52SRCF+= fixunssfsi 53SRCF+= fixunssfti 54SRCF+= fixunsxfdi 55SRCF+= fixunsxfsi 56SRCF+= fixunsxfti 57SRCF+= fixxfdi 58SRCF+= fixxfti 59SRCF+= floatditf 60SRCF+= floattidf 61SRCF+= floattisf 62SRCF+= floattixf 63SRCF+= floatunditf 64SRCF+= floatunsidf 65SRCF+= floatunsisf 66SRCF+= floatuntidf 67SRCF+= floatuntisf 68SRCF+= floatuntixf 69SRCF+= gcc_personality_v0 # not in upstream 70SRCF+= int_util 71SRCF+= lshrdi3 72SRCF+= lshrti3 73SRCF+= moddi3 74SRCF+= modti3 75SRCF+= muldc3 76SRCF+= muldi3 77SRCF+= mulodi4 78SRCF+= mulosi4 79SRCF+= muloti4 80SRCF+= mulsc3 81SRCF+= multi3 82SRCF+= mulvdi3 83SRCF+= mulvsi3 84SRCF+= mulvti3 85SRCF+= multc3 86SRCF+= mulxc3 87SRCF+= negdf2 88SRCF+= negdi2 89SRCF+= negsf2 90SRCF+= negti2 91SRCF+= negvdi2 92SRCF+= negvsi2 93SRCF+= negvti2 94SRCF+= paritydi2 95SRCF+= paritysi2 96SRCF+= parityti2 97SRCF+= popcountdi2 98SRCF+= popcountsi2 99SRCF+= popcountti2 100SRCF+= powidf2 101SRCF+= powisf2 102SRCF+= powitf2 103SRCF+= powixf2 104SRCF+= subvdi3 105SRCF+= subvsi3 106SRCF+= subvti3 107SRCF+= trampoline_setup 108SRCF+= truncdfhf2 109SRCF+= truncsfhf2 110SRCF+= ucmpdi2 111SRCF+= ucmpti2 112SRCF+= udivdi3 113SRCF+= udivmoddi4 114SRCF+= udivmodsi4 115SRCF+= udivmodti4 116SRCF+= udivti3 117SRCF+= umoddi3 118SRCF+= umodti3 119 120# Avoid using SSE2 instructions on i386, if unsupported. 121.if ${MACHINE_CPUARCH} == "i386" && empty(MACHINE_CPU:Msse2) 122SRCS+= floatdidf.c 123SRCS+= floatdisf.c 124SRCS+= floatdixf.c 125SRCS+= floatundidf.c 126SRCS+= floatundisf.c 127SRCS+= floatundixf.c 128.else 129SRCF+= floatdidf 130SRCF+= floatdisf 131SRCF+= floatdixf 132SRCF+= floatundidf 133SRCF+= floatundisf 134SRCF+= floatundixf 135.endif 136 137# __cpu_model support, only used on x86 138.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" 139SRCF+= cpu_model 140.endif 141 142# 128-bit quad precision long double support, only used on arm64 143.if ${MACHINE_CPUARCH} == "aarch64" 144SRCF+= addtf3 145SRCF+= comparetf2 146SRCF+= divtf3 147SRCF+= extenddftf2 148SRCF+= extendsftf2 149SRCF+= fixtfdi 150SRCF+= fixtfsi 151SRCF+= fixtfti 152SRCF+= fixunstfdi 153SRCF+= fixunstfsi 154SRCF+= fixunstfti 155SRCF+= floatsitf 156SRCF+= floattitf 157SRCF+= floatunsitf 158SRCF+= floatuntitf 159SRCF+= multf3 160SRCF+= subtf3 161SRCF+= trunctfdf2 162SRCF+= trunctfsf2 163.endif 164 165# These are already shipped by libc.a on arm and mips 166.if ${MACHINE_CPUARCH} != "arm" && ${MACHINE_CPUARCH} != "mips" 167SRCF+= adddf3 168SRCF+= addsf3 169SRCF+= divdf3 170SRCF+= divsf3 171SRCF+= extendsfdf2 172SRCF+= fixdfsi 173SRCF+= fixsfsi 174SRCF+= floatsidf 175SRCF+= floatsisf 176SRCF+= muldf3 177SRCF+= mulsf3 178SRCF+= subdf3 179SRCF+= subsf3 180SRCF+= truncdfsf2 181.endif 182 183.if ${MACHINE_CPUARCH} != "arm" 184SRCF+= comparedf2 185SRCF+= comparesf2 186.endif 187 188.if ${MACHINE_CPUARCH} != "mips" 189SRCF+= divsi3 190SRCF+= modsi3 191SRCF+= udivsi3 192SRCF+= umodsi3 193.endif 194 195# FreeBSD-specific atomic intrinsics. 196.if ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "armv6" 197.PATH: ${SRCTOP}/sys/arm/arm 198 199SRCF+= stdatomic 200CFLAGS+= -DEMIT_SYNC_ATOMICS 201.elif ${MACHINE_CPUARCH} == "mips" 202.PATH: ${SRCTOP}/sys/mips/mips 203 204SRCF+= stdatomic 205.endif 206 207.for file in ${SRCF} 208.if ${MACHINE_ARCH:Marmv6*} && (!defined(CPUTYPE) || ${CPUTYPE:M*soft*} == "") \ 209 && exists(${CRTSRC}/${CRTARCH}/${file}vfp.S) 210SRCS+= ${file}vfp.S 211. elif exists(${CRTSRC}/${CRTARCH}/${file}.S) 212SRCS+= ${file}.S 213. else 214SRCS+= ${file}.c 215. endif 216.endfor 217 218.if ${MACHINE_CPUARCH} == "arm" 219SRCS+= aeabi_div0.c 220SRCS+= aeabi_idivmod.S 221SRCS+= aeabi_ldivmod.S 222SRCS+= aeabi_memcmp.S 223SRCS+= aeabi_memcpy.S 224SRCS+= aeabi_memmove.S 225SRCS+= aeabi_memset.S 226SRCS+= aeabi_uidivmod.S 227SRCS+= aeabi_uldivmod.S 228SRCS+= bswapdi2.S 229SRCS+= bswapsi2.S 230SRCS+= switch16.S 231SRCS+= switch32.S 232SRCS+= switch8.S 233SRCS+= switchu8.S 234SRCS+= sync_synchronize.S 235.endif 236 237# GCC-6.3 on mips32 requires bswap32 built-in. 238.if ${MACHINE_CPUARCH} == "mips" 239SRCS+= bswapdi2.c 240SRCS+= bswapsi2.c 241.endif 242 243