Home | History | Annotate | Line # | Download | only in libkern
Makefile.compiler-rt revision 1.9
      1  1.9  thorpej # $NetBSD: Makefile.compiler-rt,v 1.9 2019/04/05 14:00:16 thorpej Exp $
      2  1.1    joerg 
      3  1.1    joerg COMPILER_RT_SRCDIR=	${NETBSDSRCDIR}/sys/external/bsd/compiler_rt/dist
      4  1.1    joerg 
      5  1.1    joerg .if ${MACHINE_ARCH} == "powerpc"
      6  1.4    joerg COMPILER_RT_CPU_DIR=	${COMPILER_RT_SRCDIR}/lib/builtins/ppc
      7  1.4    joerg COMPILER_RT_ARCH_DIR=	${COMPILER_RT_SRCDIR}/lib/builtins/ppc
      8  1.1    joerg .else
      9  1.4    joerg COMPILER_RT_CPU_DIR=	${COMPILER_RT_SRCDIR}/lib/builtins/${MACHINE_CPU}
     10  1.4    joerg COMPILER_RT_ARCH_DIR=	${COMPILER_RT_SRCDIR}/lib/builtins/${MACHINE_ARCH}
     11  1.1    joerg .endif
     12  1.1    joerg 
     13  1.1    joerg .PATH: ${COMPILER_RT_CPU_DIR}
     14  1.1    joerg .PATH: ${COMPILER_RT_ARCH_DIR}
     15  1.4    joerg .PATH: ${COMPILER_RT_SRCDIR}/lib/builtins
     16  1.1    joerg 
     17  1.1    joerg GENERIC_SRCS+= \
     18  1.1    joerg 	absvdi2.c \
     19  1.1    joerg 	absvsi2.c \
     20  1.1    joerg 	absvti2.c \
     21  1.1    joerg 	addvdi3.c \
     22  1.1    joerg 	addvsi3.c \
     23  1.1    joerg 	addvti3.c \
     24  1.1    joerg 	ashlti3.c \
     25  1.1    joerg 	ashrti3.c \
     26  1.1    joerg 	clzti2.c \
     27  1.1    joerg 	cmpti2.c \
     28  1.1    joerg 	ctzti2.c \
     29  1.1    joerg 	divti3.c \
     30  1.1    joerg 	ffsti2.c \
     31  1.1    joerg 	int_util.c \
     32  1.1    joerg 	lshrti3.c \
     33  1.1    joerg 	modti3.c \
     34  1.1    joerg 	mulodi4.c \
     35  1.1    joerg 	mulosi4.c \
     36  1.1    joerg 	muloti4.c \
     37  1.1    joerg 	multi3.c \
     38  1.1    joerg 	mulvdi3.c \
     39  1.1    joerg 	mulvsi3.c \
     40  1.1    joerg 	mulvti3.c \
     41  1.1    joerg 	negti2.c \
     42  1.1    joerg 	negvdi2.c \
     43  1.1    joerg 	negvsi2.c \
     44  1.1    joerg 	negvti2.c \
     45  1.1    joerg 	paritydi2.c \
     46  1.1    joerg 	paritysi2.c \
     47  1.1    joerg 	parityti2.c \
     48  1.1    joerg 	popcountdi2.c \
     49  1.1    joerg 	popcountsi2.c \
     50  1.1    joerg 	popcountti2.c \
     51  1.1    joerg 	subvdi3.c \
     52  1.1    joerg 	subvsi3.c \
     53  1.1    joerg 	subvti3.c \
     54  1.1    joerg 	ucmpti2.c \
     55  1.1    joerg 	udivmodti4.c \
     56  1.1    joerg 	udivti3.c \
     57  1.1    joerg 	umodti3.c
     58  1.1    joerg 
     59  1.5     matt .if ${MACHINE_CPU} != "aarch64" && ${MACHINE} != "alpha"
     60  1.5     matt GENERIC_SRCS+= \
     61  1.5     matt 	clzsi2.c \
     62  1.5     matt 	ctzsi2.c
     63  1.5     matt .endif
     64  1.5     matt 
     65  1.5     matt .if ${MACHINE_CPU} != "aarch64" && ${MACHINE} != "alpha"
     66  1.5     matt GENERIC_SRCS+= \
     67  1.5     matt 	divmodsi4.c \
     68  1.5     matt 	divsi3.c \
     69  1.5     matt 	modsi3.c \
     70  1.5     matt 	udivmodsi4.c \
     71  1.5     matt 	udivsi3.c \
     72  1.5     matt 	umodsi3.c
     73  1.5     matt .endif
     74  1.5     matt 
     75  1.9  thorpej .if ${MACHINE_CPU} != "aarch64"
     76  1.5     matt GENERIC_SRCS+= \
     77  1.5     matt 	clzdi2.c \
     78  1.5     matt 	ctzdi2.c \
     79  1.5     matt 	ffsdi2.c
     80  1.5     matt .endif
     81  1.5     matt 
     82  1.5     matt .if ${MACHINE_CPU} != "aarch64" && ${MACHINE} != "alpha"
     83  1.5     matt GENERIC_SRCS+= \
     84  1.5     matt 	ashldi3.c \
     85  1.5     matt 	ashrdi3.c \
     86  1.5     matt 	lshrdi3.c
     87  1.5     matt .endif
     88  1.5     matt 
     89  1.5     matt .if ${MACHINE_CPU} != "aarch64" && ${MACHINE} != "alpha"
     90  1.5     matt GENERIC_SRCS+= \
     91  1.5     matt 	cmpdi2.c \
     92  1.5     matt 	divdi3.c \
     93  1.5     matt 	divmoddi4.c \
     94  1.5     matt 	moddi3.c \
     95  1.5     matt 	muldi3.c \
     96  1.5     matt 	negdi2.c \
     97  1.5     matt 	ucmpdi2.c \
     98  1.5     matt 	udivdi3.c \
     99  1.5     matt 	udivmoddi4.c \
    100  1.5     matt 	umoddi3.c
    101  1.5     matt .endif
    102  1.5     matt 
    103  1.1    joerg .if ${MACHINE_CPU} == "arm"
    104  1.2    joerg .  if !empty(MACHINE_ARCH:Mearm*)
    105  1.1    joerg GENERIC_SRCS+= \
    106  1.1    joerg 	aeabi_idivmod.S \
    107  1.1    joerg 	aeabi_ldivmod.S \
    108  1.1    joerg 	aeabi_uidivmod.S \
    109  1.3    joerg 	aeabi_uldivmod.S \
    110  1.3    joerg 	__aeabi_idiv0.c \
    111  1.3    joerg 	__aeabi_ldiv0.c
    112  1.1    joerg .  endif
    113  1.1    joerg .endif
    114  1.1    joerg 
    115  1.1    joerg .for src in ${GENERIC_SRCS}
    116  1.1    joerg .  if exists(${COMPILER_RT_CPU_DIR}/${src:R}.S) || \
    117  1.1    joerg       exists(${COMPILER_RT_ARCH_DIR}/${src:R}.S)
    118  1.1    joerg SRCS+=	${src:R}.S
    119  1.1    joerg .  else
    120  1.1    joerg SRCS+=	${src}
    121  1.1    joerg COPTS.${src}+=	-Wno-missing-prototypes \
    122  1.1    joerg 		-Wno-old-style-definition \
    123  1.1    joerg 		-Wno-strict-prototypes \
    124  1.1    joerg 		-Wno-uninitialized
    125  1.1    joerg .  endif
    126  1.1    joerg .endfor
    127  1.1    joerg 
    128  1.1    joerg CPPFLAGS.int_util.c+=	-DKERNEL_USE
    129  1.6      mrg 
    130  1.6      mrg # XXX Explicit divide by zero in udivmoddi4.c -> abort().
    131  1.6      mrg .if defined(HAVE_GCC) && ${HAVE_GCC} == 7 && ${ACTIVE_CC} == "gcc"
    132  1.8      mrg . if ${MACHINE_CPU} != "arm"
    133  1.6      mrg COPTS.udivmoddi4.c+=	-fnon-call-exceptions
    134  1.8      mrg . endif
    135  1.6      mrg .endif
    136