Makefile revision 251525
139212Sgibbs# $FreeBSD: head/lib/libcompiler_rt/Makefile 251525 2013-06-08 13:22:53Z ed $ 239212Sgibbs 339212Sgibbs.include <bsd.own.mk> 439212Sgibbs 539212SgibbsLIB= compiler_rt 639212SgibbsNO_PIC= 739212SgibbsWARNS?= 2 839212Sgibbs 939212SgibbsCFLAGS+=${PICFLAG} -fvisibility=hidden -DVISIBILITY_HIDDEN 1039212Sgibbs 1139212Sgibbs.if ${MACHINE_CPUARCH} == "amd64" 1239212SgibbsCRTARCH=x86_64 1339212Sgibbs.else 1439212SgibbsCRTARCH=${MACHINE_CPUARCH} 1539212Sgibbs.endif 1639212Sgibbs 1739212SgibbsCRTSRC=${.CURDIR}/../../contrib/compiler-rt/lib 1839212Sgibbs 1939212Sgibbs.PATH: ${CRTSRC}/${CRTARCH} ${CRTSRC} 2039212Sgibbs 2139212SgibbsSRCF= absvdi2 \ 2239212Sgibbs absvsi2 \ 2339212Sgibbs absvti2 \ 2439212Sgibbs addvdi3 \ 2539212Sgibbs addvsi3 \ 2639212Sgibbs addvti3 \ 2739212Sgibbs ashldi3 \ 2850477Speter ashlti3 \ 2939212Sgibbs ashrdi3 \ 3039212Sgibbs ashrti3 \ 3139212Sgibbs clzdi2 \ 3239212Sgibbs clzsi2 \ 3339212Sgibbs clzti2 \ 3455206Speter cmpdi2 \ 3539212Sgibbs cmpti2 \ 3639212Sgibbs comparedf2 \ 3739212Sgibbs comparesf2 \ 3839212Sgibbs ctzdi2 \ 3939212Sgibbs ctzsi2 \ 4039212Sgibbs ctzti2 \ 4139212Sgibbs divdc3 \ 4239212Sgibbs divdi3 \ 4339212Sgibbs divmoddi4 \ 4439212Sgibbs divmodsi4 \ 4539212Sgibbs divsc3 \ 4639212Sgibbs divti3 \ 4739212Sgibbs divxc3 \ 4839212Sgibbs enable_execute_stack \ 4939212Sgibbs eprintf \ 5039212Sgibbs ffsdi2 \ 5139212Sgibbs ffsti2 \ 5239212Sgibbs fixdfdi \ 5339212Sgibbs fixdfti \ 5439212Sgibbs fixsfdi \ 5539212Sgibbs fixsfti \ 5671507Sjhb fixunsdfdi \ 5739212Sgibbs fixunsdfsi \ 5839212Sgibbs fixunsdfti \ 5946581Sken fixunssfdi \ 6046581Sken fixunssfsi \ 6139212Sgibbs fixunssfti \ 6239212Sgibbs fixunsxfdi \ 6339212Sgibbs fixunsxfsi \ 6439212Sgibbs fixunsxfti \ 6539212Sgibbs fixxfdi \ 6639212Sgibbs fixxfti \ 6739212Sgibbs floatdidf \ 6839212Sgibbs floatdisf \ 6939212Sgibbs floatdixf \ 7071507Sjhb floattidf \ 7171507Sjhb floattisf \ 7271507Sjhb floattixf \ 7371507Sjhb floatundidf \ 7471507Sjhb floatundisf \ 7539212Sgibbs floatundixf \ 7639212Sgibbs floatunsidf \ 7739212Sgibbs floatunsisf \ 7839212Sgibbs floatuntidf \ 7939212Sgibbs floatuntisf \ 8039212Sgibbs floatuntixf \ 8139212Sgibbs int_util \ 8239212Sgibbs lshrdi3 \ 8339212Sgibbs lshrti3 \ 8439212Sgibbs moddi3 \ 8539212Sgibbs modti3 \ 8639212Sgibbs muldc3 \ 8739212Sgibbs muldi3 \ 8839212Sgibbs mulodi4 \ 8939212Sgibbs mulosi4 \ 9039212Sgibbs muloti4 \ 9171507Sjhb mulsc3 \ 9239212Sgibbs multi3 \ 9339212Sgibbs mulvdi3 \ 9439212Sgibbs mulvsi3 \ 9539212Sgibbs mulvti3 \ 9646581Sken mulxc3 \ 9746581Sken negdf2 \ 9839212Sgibbs negdi2 \ 9939212Sgibbs negsf2 \ 10039212Sgibbs negti2 \ 10139212Sgibbs negvdi2 \ 10239212Sgibbs negvsi2 \ 10339212Sgibbs negvti2 \ 10439212Sgibbs paritydi2 \ 10539212Sgibbs paritysi2 \ 10639212Sgibbs parityti2 \ 10739212Sgibbs popcountdi2 \ 10839212Sgibbs popcountsi2 \ 10939212Sgibbs popcountti2 \ 11071507Sjhb powidf2 \ 11139212Sgibbs powisf2 \ 11239212Sgibbs powitf2 \ 11339212Sgibbs powixf2 \ 11439212Sgibbs subvdi3 \ 11539212Sgibbs subvsi3 \ 11639212Sgibbs subvti3 \ 11739212Sgibbs trampoline_setup \ 11839212Sgibbs ucmpdi2 \ 11939212Sgibbs ucmpti2 \ 12039212Sgibbs udivdi3 \ 12139212Sgibbs udivmoddi4 \ 12239212Sgibbs udivmodsi4 \ 12339212Sgibbs udivmodti4 \ 12439212Sgibbs udivti3 \ 12539212Sgibbs umoddi3 \ 12639212Sgibbs umodti3 12739212Sgibbs 12839212Sgibbs# Don't build clear_cache on ARM with clang as it is a builtin there. 12939212Sgibbs.if ${MACHINE_CPUARCH} != "arm" || ${COMPILER_TYPE} != "clang" 13039212SgibbsSRCF+= clear_cache 13139212Sgibbs.endif 13239212Sgibbs 13339212Sgibbs# These are already shipped by libc.a on arm and mips 13455206Speter.if ${MACHINE_CPUARCH} != "arm" && ${MACHINE_CPUARCH} != "mips" 13539212SgibbsSRCF+= adddf3 \ 136 addsf3 \ 137 divdf3 \ 138 divsf3 \ 139 extendsfdf2 \ 140 fixdfsi \ 141 fixsfsi \ 142 floatsidf \ 143 floatsisf \ 144 muldf3 \ 145 mulsf3 \ 146 subdf3 \ 147 subsf3 \ 148 truncdfsf2 149.endif 150 151.if ${MACHINE_CPUARCH} != "mips" && \ 152 (${MACHINE_CPUARCH} != "arm" || ${MK_ARM_EABI} != "no") 153SRCF+= divsi3 \ 154 modsi3 \ 155 udivsi3 \ 156 umodsi3 157.endif 158 159# FreeBSD-specific atomic intrinsics. 160.if ${MACHINE_CPUARCH} == "arm" 161SRCF+= __sync_fetch_and_add_4 \ 162 __sync_fetch_and_and_4 \ 163 __sync_fetch_and_or_4 \ 164 __sync_fetch_and_sub_4 \ 165 __sync_fetch_and_xor_4 \ 166 __sync_lock_test_and_set_4 \ 167 __sync_synchronize \ 168 __sync_val_compare_and_swap_4 169.elif ${MACHINE_CPUARCH} == "mips" 170.PATH: ${.CURDIR}/../../sys/mips/mips 171 172SRCF+= stdatomic 173.endif 174 175.for file in ${SRCF} 176. if ${MACHINE_CPUARCH} != "arm" && exists(${CRTSRC}/${CRTARCH}/${file}.S) 177SRCS+= ${file}.S 178. else 179SRCS+= ${file}.c 180. endif 181.endfor 182 183.if ${MACHINE_CPUARCH} == "arm" && ${MK_ARM_EABI} != "no" 184SRCS+= aeabi_idivmod.S \ 185 aeabi_ldivmod.S \ 186 aeabi_memcmp.S \ 187 aeabi_memcpy.S \ 188 aeabi_memmove.S \ 189 aeabi_memset.S \ 190 aeabi_uidivmod.S \ 191 aeabi_uldivmod.S 192.endif 193 194.if ${MK_INSTALLLIB} != "no" 195SYMLINKS+=libcompiler_rt.a ${LIBDIR}/libgcc.a 196.endif 197.if ${MK_PROFILE} != "no" 198SYMLINKS+=libcompiler_rt_p.a ${LIBDIR}/libgcc_p.a 199.endif 200 201.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" || \ 202 ${MACHINE_CPUARCH} == "powerpc" 203AFLAGS+=--noexecstack 204ACFLAGS+=-Wa,--noexecstack 205.endif 206 207 208.include <bsd.lib.mk> 209