Makefile revision 298107
1195098Sed# $FreeBSD: head/lib/libcompiler_rt/Makefile 298107 2016-04-16 07:45:30Z gjb $ 2195098Sed 3353358Sdim.include <src.opts.mk> 4353358Sdim 5353358SdimPACKAGE=lib${LIB} 6195098SedLIB= compiler_rt 7195098SedNO_PIC= 8195098SedWARNS?= 2 9249423Sdim 10341825SdimCFLAGS+=${PICFLAG} -fvisibility=hidden -DVISIBILITY_HIDDEN 11249423SdimCFLAGS+=-I${.CURDIR}/../../contrib/libcxxrt 12321369Sdim 13249423Sdim.if ${MACHINE_CPUARCH} == "amd64" 14321369SdimCRTARCH=x86_64 15360784Sdim.else 16261991SdimCRTARCH=${MACHINE_CPUARCH} 17218893Sdim.endif 18314564Sdim 19218893SdimCRTSRC=${.CURDIR}/../../contrib/compiler-rt/lib/builtins 20321369Sdim 21202878Srdivacky.PATH: ${CRTSRC}/${CRTARCH} ${CRTSRC} 22288943Sdim 23288943SdimSRCF= absvdi2 \ 24276479Sdim absvsi2 \ 25360784Sdim absvti2 \ 26360784Sdim addvdi3 \ 27288943Sdim addvsi3 \ 28309124Sdim addvti3 \ 29221345Sdim apple_versioning \ 30276479Sdim ashldi3 \ 31321369Sdim ashlti3 \ 32321369Sdim ashrdi3 \ 33218893Sdim ashrti3 \ 34249423Sdim clear_cache \ 35321369Sdim clzdi2 \ 36202878Srdivacky clzsi2 \ 37321369Sdim clzti2 \ 38321369Sdim cmpdi2 \ 39206274Srdivacky cmpti2 \ 40321369Sdim ctzdi2 \ 41321369Sdim ctzsi2 \ 42195098Sed ctzti2 \ 43195098Sed divdc3 \ 44276479Sdim divdi3 \ 45276479Sdim divmoddi4 \ 46276479Sdim divmodsi4 \ 47276479Sdim divsc3 \ 48321369Sdim divtc3 \ 49321369Sdim divti3 \ 50321369Sdim divxc3 \ 51276479Sdim enable_execute_stack \ 52276479Sdim eprintf \ 53276479Sdim extendhfsf2 \ 54276479Sdim ffsdi2 \ 55327952Sdim ffsti2 \ 56327952Sdim fixdfdi \ 57327952Sdim fixdfti \ 58327952Sdim fixsfdi \ 59327952Sdim fixsfti \ 60327952Sdim fixunsdfdi \ 61327952Sdim fixunsdfsi \ 62327952Sdim fixunsdfti \ 63327952Sdim fixunssfdi \ 64327952Sdim fixunssfsi \ 65327952Sdim fixunssfti \ 66327952Sdim fixunsxfdi \ 67327952Sdim fixunsxfsi \ 68327952Sdim fixunsxfti \ 69327952Sdim fixxfdi \ 70327952Sdim fixxfti \ 71327952Sdim floatdidf \ 72327952Sdim floatdisf \ 73327952Sdim floatditf \ 74327952Sdim floatdixf \ 75327952Sdim floatsitf \ 76327952Sdim floattidf \ 77344779Sdim floattisf \ 78344779Sdim floattixf \ 79344779Sdim floatundidf \ 80344779Sdim floatundisf \ 81344779Sdim floatunditf \ 82344779Sdim floatundixf \ 83344779Sdim floatunsidf \ 84344779Sdim floatunsisf \ 85344779Sdim floatuntidf \ 86344779Sdim floatuntisf \ 87344779Sdim floatuntixf \ 88344779Sdim gcc_personality_v0 \ 89276479Sdim int_util \ 90276479Sdim lshrdi3 \ 91276479Sdim lshrti3 \ 92341825Sdim moddi3 \ 93341825Sdim modti3 \ 94251662Sdim muldc3 \ 95195098Sed muldi3 \ 96195098Sed mulodi4 \ 97327952Sdim mulosi4 \ 98202878Srdivacky muloti4 \ 99249423Sdim mulsc3 \ 100280031Sdim multi3 \ 101327952Sdim mulvdi3 \ 102276479Sdim mulvsi3 \ 103280031Sdim mulvti3 \ 104249423Sdim multc3 \ 105251662Sdim mulxc3 \ 106249423Sdim negdf2 \ 107249423Sdim negdi2 \ 108202878Srdivacky negsf2 \ 109202878Srdivacky negti2 \ 110202878Srdivacky negvdi2 \ 111202878Srdivacky negvsi2 \ 112202878Srdivacky negvti2 \ 113353358Sdim paritydi2 \ 114353358Sdim paritysi2 \ 115353358Sdim parityti2 \ 116353358Sdim popcountdi2 \ 117353358Sdim popcountsi2 \ 118276479Sdim popcountti2 \ 119276479Sdim powidf2 \ 120309124Sdim powisf2 \ 121309124Sdim powitf2 \ 122309124Sdim powixf2 \ 123261991Sdim subvdi3 \ 124276479Sdim subvsi3 \ 125276479Sdim subvti3 \ 126276479Sdim trampoline_setup \ 127261991Sdim truncdfhf2 \ 128261991Sdim truncsfhf2 \ 129202878Srdivacky ucmpdi2 \ 130202878Srdivacky ucmpti2 \ 131261991Sdim udivdi3 \ 132280031Sdim udivmoddi4 \ 133218893Sdim udivmodsi4 \ 134218893Sdim udivmodti4 \ 135218893Sdim udivti3 \ 136261991Sdim umoddi3 \ 137223017Sdim umodti3 138223017Sdim 139223017Sdim# 128-bit quad precision long double support, only used on arm64 140223017Sdim.if ${MACHINE_CPUARCH} == "aarch64" 141261991SdimSRCF+= addtf3 \ 142202878Srdivacky comparetf2 \ 143202878Srdivacky divtf3 \ 144341825Sdim extenddftf2 \ 145218893Sdim extendsftf2 \ 146353358Sdim fixtfdi \ 147234353Sdim fixtfsi \ 148218893Sdim fixtfti \ 149353358Sdim fixunstfdi \ 150261991Sdim fixunstfsi \ 151218893Sdim fixunstfti \ 152218893Sdim floatunsitf \ 153341825Sdim multf3 \ 154218893Sdim subtf3 \ 155261991Sdim trunctfdf2 \ 156234353Sdim trunctfsf2 157218893Sdim.endif 158239462Sdim 159261991Sdim# These are already shipped by libc.a on arm and mips 160218893Sdim.if ${MACHINE_CPUARCH} != "arm" && ${MACHINE_CPUARCH} != "mips" 161218893SdimSRCF+= adddf3 \ 162296417Sdim addsf3 \ 163276479Sdim divdf3 \ 164218893Sdim divsf3 \ 165218893Sdim extendsfdf2 \ 166276479Sdim fixdfsi \ 167276479Sdim fixsfsi \ 168276479Sdim floatsidf \ 169276479Sdim floatsisf \ 170276479Sdim muldf3 \ 171276479Sdim mulsf3 \ 172288943Sdim subdf3 \ 173276479Sdim subsf3 \ 174314564Sdim truncdfsf2 175218893Sdim.endif 176218893Sdim 177314564Sdim.if ${MACHINE_CPUARCH} != "arm" 178314564SdimSRCF+= comparedf2 \ 179314564Sdim comparesf2 180314564Sdim.endif 181314564Sdim 182314564Sdim.if ${MACHINE_CPUARCH} != "mips" 183314564SdimSRCF+= divsi3 \ 184314564Sdim modsi3 \ 185314564Sdim udivsi3 \ 186314564Sdim umodsi3 187314564Sdim.endif 188314564Sdim 189314564Sdim# FreeBSD-specific atomic intrinsics. 190314564Sdim.if ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "armv6" 191314564Sdim.PATH: ${.CURDIR}/../../sys/arm/arm 192314564Sdim 193234353SdimSRCF+= stdatomic 194234353SdimCFLAGS+= -DEMIT_SYNC_ATOMICS 195234353Sdim.elif ${MACHINE_CPUARCH} == "mips" 196234353Sdim.PATH: ${.CURDIR}/../../sys/mips/mips 197218893Sdim 198218893SdimSRCF+= stdatomic 199218893Sdim.endif 200218893Sdim 201309124Sdim.for file in ${SRCF} 202309124Sdim. if ${MACHINE_ARCH:Marm*hf*} != "" && exists(${CRTSRC}/${CRTARCH}/${file}vfp.S) 203309124SdimSRCS+= ${file}vfp.S 204328594Semaste. elif !(${MACHINE_CPUARCH} == "arm" && ${MACHINE_ARCH:Marm*hf*} == "") && exists(${CRTSRC}/${CRTARCH}/${file}.S) 205202878SrdivackySRCS+= ${file}.S 206206274Srdivacky. else 207309124SdimSRCS+= ${file}.c 208261991Sdim. endif 209309124Sdim.endfor 210261991Sdim 211261991Sdim.if ${MACHINE_CPUARCH} == "arm" 212341825SdimSRCS+= aeabi_div0.c \ 213341825Sdim aeabi_idivmod.S \ 214341825Sdim aeabi_ldivmod.S \ 215353358Sdim aeabi_memcmp.S \ 216341825Sdim aeabi_memcpy.S \ 217341825Sdim aeabi_memmove.S \ 218341825Sdim aeabi_memset.S \ 219341825Sdim aeabi_uidivmod.S \ 220218893Sdim aeabi_uldivmod.S \ 221218893Sdim bswapdi2.S \ 222341825Sdim bswapsi2.S \ 223341825Sdim switch16.S \ 224353358Sdim switch32.S \ 225341825Sdim switch8.S \ 226341825Sdim switchu8.S \ 227341825Sdim sync_synchronize.S 228341825Sdim.endif 229341825Sdim 230341825Sdim.if ${MK_INSTALLLIB} != "no" 231344779SdimSYMLINKS+=libcompiler_rt.a ${LIBDIR}/libgcc.a 232344779Sdim.endif 233344779Sdim.if ${MK_PROFILE} != "no" 234344779SdimSYMLINKS+=libcompiler_rt_p.a ${LIBDIR}/libgcc_p.a 235344779Sdim.endif 236344779Sdim 237344779Sdim.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" || \ 238218893Sdim ${MACHINE_CPUARCH} == "powerpc" || ${MACHINE_ARCH:Marmv6*} 239218893SdimAFLAGS+=--noexecstack 240218893SdimACFLAGS+=-Wa,--noexecstack 241221345Sdim.endif 242221345Sdim 243218893Sdim 244218893Sdim.include <bsd.lib.mk> 245218893Sdim