1215125Sed# $FreeBSD: releng/11.0/lib/libcompiler_rt/Makefile 300119 2016-05-18 06:01:18Z imp $ 2215125Sed 3265420Simp.include <src.opts.mk> 4215125Sed 5298107SgjbPACKAGE=lib${LIB} 6215125SedLIB= compiler_rt 7215125SedNO_PIC= 8215125SedWARNS?= 2 9215125Sed 10215129SedCFLAGS+=${PICFLAG} -fvisibility=hidden -DVISIBILITY_HIDDEN 11280031SdimCFLAGS+=-I${.CURDIR}/../../contrib/libcxxrt 12215125Sed 13215125Sed.if ${MACHINE_CPUARCH} == "amd64" 14215125SedCRTARCH=x86_64 15215125Sed.else 16215125SedCRTARCH=${MACHINE_CPUARCH} 17215125Sed.endif 18215125Sed 19276851SdimCRTSRC=${.CURDIR}/../../contrib/compiler-rt/lib/builtins 20215125Sed 21215125Sed.PATH: ${CRTSRC}/${CRTARCH} ${CRTSRC} 22215125Sed 23215125SedSRCF= absvdi2 \ 24215125Sed absvsi2 \ 25215125Sed absvti2 \ 26215125Sed addvdi3 \ 27215125Sed addvsi3 \ 28215125Sed addvti3 \ 29276851Sdim apple_versioning \ 30215125Sed ashldi3 \ 31215125Sed ashlti3 \ 32215125Sed ashrdi3 \ 33215125Sed ashrti3 \ 34251791Sandrew clear_cache \ 35215125Sed clzdi2 \ 36215125Sed clzsi2 \ 37215125Sed clzti2 \ 38215125Sed cmpdi2 \ 39215125Sed cmpti2 \ 40215125Sed ctzdi2 \ 41215125Sed ctzsi2 \ 42215125Sed ctzti2 \ 43215125Sed divdc3 \ 44215125Sed divdi3 \ 45222656Sed divmoddi4 \ 46222656Sed divmodsi4 \ 47215125Sed divsc3 \ 48296417Sdim divtc3 \ 49215125Sed divti3 \ 50215125Sed divxc3 \ 51215125Sed enable_execute_stack \ 52215125Sed eprintf \ 53288943Sdim extendhfsf2 \ 54215125Sed ffsdi2 \ 55215125Sed ffsti2 \ 56215125Sed fixdfdi \ 57215125Sed fixdfti \ 58215125Sed fixsfdi \ 59215125Sed fixsfti \ 60215125Sed fixunsdfdi \ 61215125Sed fixunsdfsi \ 62215125Sed fixunsdfti \ 63215125Sed fixunssfdi \ 64215125Sed fixunssfsi \ 65215125Sed fixunssfti \ 66215125Sed fixunsxfdi \ 67215125Sed fixunsxfsi \ 68215125Sed fixunsxfti \ 69215125Sed fixxfdi \ 70215125Sed fixxfti \ 71215125Sed floatdidf \ 72215125Sed floatdisf \ 73281223Semaste floatditf \ 74215125Sed floatdixf \ 75280853Semaste floatsitf \ 76215125Sed floattidf \ 77215125Sed floattisf \ 78215125Sed floattixf \ 79215125Sed floatundidf \ 80215125Sed floatundisf \ 81281223Semaste floatunditf \ 82215125Sed floatundixf \ 83215125Sed floatunsidf \ 84215125Sed floatunsisf \ 85215125Sed floatuntidf \ 86215125Sed floatuntisf \ 87215125Sed floatuntixf \ 88276851Sdim gcc_personality_v0 \ 89229135Sed int_util \ 90215125Sed lshrdi3 \ 91215125Sed lshrti3 \ 92215125Sed moddi3 \ 93215125Sed modti3 \ 94215125Sed muldc3 \ 95215125Sed muldi3 \ 96229135Sed mulodi4 \ 97229135Sed mulosi4 \ 98229135Sed muloti4 \ 99215125Sed mulsc3 \ 100215125Sed multi3 \ 101215125Sed mulvdi3 \ 102215125Sed mulvsi3 \ 103215125Sed mulvti3 \ 104281221Semaste multc3 \ 105215125Sed mulxc3 \ 106215125Sed negdf2 \ 107215125Sed negdi2 \ 108215125Sed negsf2 \ 109215125Sed negti2 \ 110215125Sed negvdi2 \ 111215125Sed negvsi2 \ 112215125Sed negvti2 \ 113215125Sed paritydi2 \ 114215125Sed paritysi2 \ 115215125Sed parityti2 \ 116215125Sed popcountdi2 \ 117215125Sed popcountsi2 \ 118215125Sed popcountti2 \ 119215125Sed powidf2 \ 120215125Sed powisf2 \ 121215125Sed powitf2 \ 122215125Sed powixf2 \ 123215125Sed subvdi3 \ 124215125Sed subvsi3 \ 125215125Sed subvti3 \ 126215125Sed trampoline_setup \ 127288943Sdim truncdfhf2 \ 128288943Sdim truncsfhf2 \ 129215125Sed ucmpdi2 \ 130215125Sed ucmpti2 \ 131215125Sed udivdi3 \ 132215125Sed udivmoddi4 \ 133222656Sed udivmodsi4 \ 134215125Sed udivmodti4 \ 135215125Sed udivti3 \ 136215125Sed umoddi3 \ 137215125Sed umodti3 138215125Sed 139281270Semaste# 128-bit quad precision long double support, only used on arm64 140281270Semaste.if ${MACHINE_CPUARCH} == "aarch64" 141281270SemasteSRCF+= addtf3 \ 142281270Semaste comparetf2 \ 143281270Semaste divtf3 \ 144281270Semaste extenddftf2 \ 145281270Semaste extendsftf2 \ 146281270Semaste fixtfdi \ 147281270Semaste fixtfsi \ 148281270Semaste fixtfti \ 149281270Semaste fixunstfdi \ 150281270Semaste fixunstfsi \ 151281270Semaste fixunstfti \ 152281600Semaste floatunsitf \ 153281270Semaste multf3 \ 154281270Semaste subtf3 \ 155281270Semaste trunctfdf2 \ 156281270Semaste trunctfsf2 157281270Semaste.endif 158281270Semaste 159215125Sed# These are already shipped by libc.a on arm and mips 160215125Sed.if ${MACHINE_CPUARCH} != "arm" && ${MACHINE_CPUARCH} != "mips" 161215125SedSRCF+= adddf3 \ 162215125Sed addsf3 \ 163215125Sed divdf3 \ 164215125Sed divsf3 \ 165215125Sed extendsfdf2 \ 166215125Sed fixdfsi \ 167215125Sed fixsfsi \ 168215125Sed floatsidf \ 169215125Sed floatsisf \ 170215125Sed muldf3 \ 171215125Sed mulsf3 \ 172222656Sed subdf3 \ 173222656Sed subsf3 \ 174245651Sandrew truncdfsf2 175245651Sandrew.endif 176245651Sandrew 177276895Sandrew.if ${MACHINE_CPUARCH} != "arm" 178276895SandrewSRCF+= comparedf2 \ 179276895Sandrew comparesf2 180276895Sandrew.endif 181276895Sandrew 182272350Sandrew.if ${MACHINE_CPUARCH} != "mips" 183245651SandrewSRCF+= divsi3 \ 184245651Sandrew modsi3 \ 185215125Sed udivsi3 \ 186215125Sed umodsi3 187215125Sed.endif 188215125Sed 189249968Sed# FreeBSD-specific atomic intrinsics. 190255092Stheraven.if ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "armv6" 191251784Sed.PATH: ${.CURDIR}/../../sys/arm/arm 192251784Sed 193251784SedSRCF+= stdatomic 194255092StheravenCFLAGS+= -DEMIT_SYNC_ATOMICS 195251525Sed.elif ${MACHINE_CPUARCH} == "mips" 196251525Sed.PATH: ${.CURDIR}/../../sys/mips/mips 197251525Sed 198251525SedSRCF+= stdatomic 199228919Sed.endif 200228919Sed 201215125Sed.for file in ${SRCF} 202300119Simp.if ${MACHINE_ARCH:Marmv6*} && (!defined(CPUTYPE) || ${CPUTYPE:M*soft*} == "") && \ 203300119Simp exists(${CRTSRC}/${CRTARCH}/${file}vfp.S) 204263660SandrewSRCS+= ${file}vfp.S 205300119Simp. elif exists(${CRTSRC}/${CRTARCH}/${file}.S) 206215125SedSRCS+= ${file}.S 207215125Sed. else 208215125SedSRCS+= ${file}.c 209215125Sed. endif 210215125Sed.endfor 211215125Sed 212272350Sandrew.if ${MACHINE_CPUARCH} == "arm" 213276895SandrewSRCS+= aeabi_div0.c \ 214276851Sdim aeabi_idivmod.S \ 215245643Sandrew aeabi_ldivmod.S \ 216246372Sandrew aeabi_memcmp.S \ 217246372Sandrew aeabi_memcpy.S \ 218246372Sandrew aeabi_memmove.S \ 219246372Sandrew aeabi_memset.S \ 220245643Sandrew aeabi_uidivmod.S \ 221276851Sdim aeabi_uldivmod.S \ 222276851Sdim bswapdi2.S \ 223276851Sdim bswapsi2.S \ 224276851Sdim switch16.S \ 225276851Sdim switch32.S \ 226276851Sdim switch8.S \ 227276851Sdim switchu8.S \ 228276895Sandrew sync_synchronize.S 229245643Sandrew.endif 230245643Sandrew 231249702Sed.if ${MK_INSTALLLIB} != "no" 232215125SedSYMLINKS+=libcompiler_rt.a ${LIBDIR}/libgcc.a 233249702Sed.endif 234249702Sed.if ${MK_PROFILE} != "no" 235215125SedSYMLINKS+=libcompiler_rt_p.a ${LIBDIR}/libgcc_p.a 236215125Sed.endif 237215125Sed 238217393Skib.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" || \ 239288373Skib ${MACHINE_CPUARCH} == "powerpc" || ${MACHINE_ARCH:Marmv6*} 240217101SkibAFLAGS+=--noexecstack 241217102SkibACFLAGS+=-Wa,--noexecstack 242217101Skib.endif 243217101Skib 244217101Skib 245215125Sed.include <bsd.lib.mk> 246