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