1*a3cf0ef5SEd Schouten# $FreeBSD$ 2*a3cf0ef5SEd Schouten 3*a3cf0ef5SEd Schouten.include <bsd.own.mk> 4*a3cf0ef5SEd Schouten 5*a3cf0ef5SEd SchoutenLIB= compiler_rt 6*a3cf0ef5SEd SchoutenNO_PIC= 7*a3cf0ef5SEd SchoutenWARNS?= 2 8*a3cf0ef5SEd Schouten 9*a3cf0ef5SEd SchoutenCFLAGS+=${PICFLAG} 10*a3cf0ef5SEd Schouten 11*a3cf0ef5SEd Schouten.if ${MACHINE_CPUARCH} == "amd64" 12*a3cf0ef5SEd SchoutenCRTARCH=x86_64 13*a3cf0ef5SEd Schouten.else 14*a3cf0ef5SEd SchoutenCRTARCH=${MACHINE_CPUARCH} 15*a3cf0ef5SEd Schouten.endif 16*a3cf0ef5SEd Schouten 17*a3cf0ef5SEd SchoutenCRTSRC=${.CURDIR}/../../contrib/compiler-rt/lib 18*a3cf0ef5SEd Schouten 19*a3cf0ef5SEd Schouten.PATH: ${CRTSRC}/${CRTARCH} ${CRTSRC} 20*a3cf0ef5SEd Schouten 21*a3cf0ef5SEd SchoutenSRCF= absvdi2 \ 22*a3cf0ef5SEd Schouten absvsi2 \ 23*a3cf0ef5SEd Schouten absvti2 \ 24*a3cf0ef5SEd Schouten addvdi3 \ 25*a3cf0ef5SEd Schouten addvsi3 \ 26*a3cf0ef5SEd Schouten addvti3 \ 27*a3cf0ef5SEd Schouten ashldi3 \ 28*a3cf0ef5SEd Schouten ashlti3 \ 29*a3cf0ef5SEd Schouten ashrdi3 \ 30*a3cf0ef5SEd Schouten ashrti3 \ 31*a3cf0ef5SEd Schouten clear_cache \ 32*a3cf0ef5SEd Schouten clzdi2 \ 33*a3cf0ef5SEd Schouten clzsi2 \ 34*a3cf0ef5SEd Schouten clzti2 \ 35*a3cf0ef5SEd Schouten cmpdi2 \ 36*a3cf0ef5SEd Schouten cmpti2 \ 37*a3cf0ef5SEd Schouten comparedf2 \ 38*a3cf0ef5SEd Schouten comparesf2 \ 39*a3cf0ef5SEd Schouten ctzdi2 \ 40*a3cf0ef5SEd Schouten ctzsi2 \ 41*a3cf0ef5SEd Schouten ctzti2 \ 42*a3cf0ef5SEd Schouten divdc3 \ 43*a3cf0ef5SEd Schouten divdi3 \ 44*a3cf0ef5SEd Schouten divsc3 \ 45*a3cf0ef5SEd Schouten divti3 \ 46*a3cf0ef5SEd Schouten divxc3 \ 47*a3cf0ef5SEd Schouten enable_execute_stack \ 48*a3cf0ef5SEd Schouten eprintf \ 49*a3cf0ef5SEd Schouten ffsdi2 \ 50*a3cf0ef5SEd Schouten ffsti2 \ 51*a3cf0ef5SEd Schouten fixdfdi \ 52*a3cf0ef5SEd Schouten fixdfti \ 53*a3cf0ef5SEd Schouten fixsfdi \ 54*a3cf0ef5SEd Schouten fixsfti \ 55*a3cf0ef5SEd Schouten fixunsdfdi \ 56*a3cf0ef5SEd Schouten fixunsdfsi \ 57*a3cf0ef5SEd Schouten fixunsdfti \ 58*a3cf0ef5SEd Schouten fixunssfdi \ 59*a3cf0ef5SEd Schouten fixunssfsi \ 60*a3cf0ef5SEd Schouten fixunssfti \ 61*a3cf0ef5SEd Schouten fixunsxfdi \ 62*a3cf0ef5SEd Schouten fixunsxfsi \ 63*a3cf0ef5SEd Schouten fixunsxfti \ 64*a3cf0ef5SEd Schouten fixxfdi \ 65*a3cf0ef5SEd Schouten fixxfti \ 66*a3cf0ef5SEd Schouten floatdidf \ 67*a3cf0ef5SEd Schouten floatdisf \ 68*a3cf0ef5SEd Schouten floatdixf \ 69*a3cf0ef5SEd Schouten floattidf \ 70*a3cf0ef5SEd Schouten floattisf \ 71*a3cf0ef5SEd Schouten floattixf \ 72*a3cf0ef5SEd Schouten floatundidf \ 73*a3cf0ef5SEd Schouten floatundisf \ 74*a3cf0ef5SEd Schouten floatundixf \ 75*a3cf0ef5SEd Schouten floatunsidf \ 76*a3cf0ef5SEd Schouten floatunsisf \ 77*a3cf0ef5SEd Schouten floatuntidf \ 78*a3cf0ef5SEd Schouten floatuntisf \ 79*a3cf0ef5SEd Schouten floatuntixf \ 80*a3cf0ef5SEd Schouten lshrdi3 \ 81*a3cf0ef5SEd Schouten lshrti3 \ 82*a3cf0ef5SEd Schouten moddi3 \ 83*a3cf0ef5SEd Schouten modti3 \ 84*a3cf0ef5SEd Schouten muldc3 \ 85*a3cf0ef5SEd Schouten muldi3 \ 86*a3cf0ef5SEd Schouten mulsc3 \ 87*a3cf0ef5SEd Schouten multi3 \ 88*a3cf0ef5SEd Schouten mulvdi3 \ 89*a3cf0ef5SEd Schouten mulvsi3 \ 90*a3cf0ef5SEd Schouten mulvti3 \ 91*a3cf0ef5SEd Schouten mulxc3 \ 92*a3cf0ef5SEd Schouten negdf2 \ 93*a3cf0ef5SEd Schouten negdi2 \ 94*a3cf0ef5SEd Schouten negsf2 \ 95*a3cf0ef5SEd Schouten negti2 \ 96*a3cf0ef5SEd Schouten negvdi2 \ 97*a3cf0ef5SEd Schouten negvsi2 \ 98*a3cf0ef5SEd Schouten negvti2 \ 99*a3cf0ef5SEd Schouten paritydi2 \ 100*a3cf0ef5SEd Schouten paritysi2 \ 101*a3cf0ef5SEd Schouten parityti2 \ 102*a3cf0ef5SEd Schouten popcountdi2 \ 103*a3cf0ef5SEd Schouten popcountsi2 \ 104*a3cf0ef5SEd Schouten popcountti2 \ 105*a3cf0ef5SEd Schouten powidf2 \ 106*a3cf0ef5SEd Schouten powisf2 \ 107*a3cf0ef5SEd Schouten powitf2 \ 108*a3cf0ef5SEd Schouten powixf2 \ 109*a3cf0ef5SEd Schouten subvdi3 \ 110*a3cf0ef5SEd Schouten subvsi3 \ 111*a3cf0ef5SEd Schouten subvti3 \ 112*a3cf0ef5SEd Schouten trampoline_setup \ 113*a3cf0ef5SEd Schouten ucmpdi2 \ 114*a3cf0ef5SEd Schouten ucmpti2 \ 115*a3cf0ef5SEd Schouten udivdi3 \ 116*a3cf0ef5SEd Schouten udivmoddi4 \ 117*a3cf0ef5SEd Schouten udivmodti4 \ 118*a3cf0ef5SEd Schouten udivti3 \ 119*a3cf0ef5SEd Schouten umoddi3 \ 120*a3cf0ef5SEd Schouten umodti3 121*a3cf0ef5SEd Schouten 122*a3cf0ef5SEd Schouten# These are already shipped by libc.a on arm and mips 123*a3cf0ef5SEd Schouten.if ${MACHINE_CPUARCH} != "arm" && ${MACHINE_CPUARCH} != "mips" 124*a3cf0ef5SEd SchoutenSRCF+= adddf3 \ 125*a3cf0ef5SEd Schouten addsf3 \ 126*a3cf0ef5SEd Schouten divdf3 \ 127*a3cf0ef5SEd Schouten divsf3 \ 128*a3cf0ef5SEd Schouten divsi3 \ 129*a3cf0ef5SEd Schouten extendsfdf2 \ 130*a3cf0ef5SEd Schouten fixdfsi \ 131*a3cf0ef5SEd Schouten fixsfsi \ 132*a3cf0ef5SEd Schouten floatsidf \ 133*a3cf0ef5SEd Schouten floatsisf \ 134*a3cf0ef5SEd Schouten modsi3 \ 135*a3cf0ef5SEd Schouten muldf3 \ 136*a3cf0ef5SEd Schouten mulsf3 \ 137*a3cf0ef5SEd Schouten truncdfsf2 \ 138*a3cf0ef5SEd Schouten udivsi3 \ 139*a3cf0ef5SEd Schouten umodsi3 140*a3cf0ef5SEd Schouten.endif 141*a3cf0ef5SEd Schouten 142*a3cf0ef5SEd Schouten.for file in ${SRCF} 143*a3cf0ef5SEd Schouten. if ${MACHINE_CPUARCH} != "arm" && exists(${CRTSRC}/${CRTARCH}/${file}.S) 144*a3cf0ef5SEd SchoutenSRCS+= ${file}.S 145*a3cf0ef5SEd Schouten. else 146*a3cf0ef5SEd SchoutenSRCS+= ${file}.c 147*a3cf0ef5SEd Schouten. endif 148*a3cf0ef5SEd Schouten.endfor 149*a3cf0ef5SEd Schouten 150*a3cf0ef5SEd Schouten.if ${MK_INSTALLLIB} != "no" 151*a3cf0ef5SEd SchoutenSYMLINKS+=libcompiler_rt.a ${LIBDIR}/libgcc.a 152*a3cf0ef5SEd Schouten.endif 153*a3cf0ef5SEd Schouten.if ${MK_PROFILE} != "no" 154*a3cf0ef5SEd SchoutenSYMLINKS+=libcompiler_rt_p.a ${LIBDIR}/libgcc_p.a 155*a3cf0ef5SEd Schouten.endif 156*a3cf0ef5SEd Schouten 157*a3cf0ef5SEd Schouten.include <bsd.lib.mk> 158