1######################################################################## 2# 3# Shared libc with userspace (/common/lib/libc) 4# 5 6.for f in \ 7 memchr.o 8${f}: ${LIBCOMMONCDIR}/string/${f:C/\.o/.c/} 9OBJS+= ${f} 10CLEANFILES+= ${f} 11.endfor 12 13.for f in \ 14 lshldi3.o 15${f}: ${LIBCOMMONCDIR}/quad/${f:C/\.o/.c/} 16OBJS+= ${f} 17CLEANFILES+= ${f} 18.endfor 19 20.for f in \ 21 byte_swap_2.o byte_swap_4.o 22${f}: ${LIBCOMMONCARCHDIR}/gen/${f:C/\.o/.S/} 23OBJS+= ${f} 24CLEANFILES+= ${f} 25.endfor 26 27.for f in \ 28 __aeabi_idiv0.o __aeabi_ldiv0.o 29${f}: ${LIBCOMMONCARCHDIR}/gen/${f:C/\.o/.c/} 30OBJS+= ${f} 31CLEANFILES+= ${f} 32.endfor 33 34CPPFLAGS.__aeabi_idiv0.c+= -D_STANDALONE 35CPPFLAGS.__aeabi_ldiv0.c+= -D_STANDALONE 36 37#.for f in \ 38# __aeabi_ldivmod.o __aeabi_uldivmod.o 39#${f}: ${LIBCOMMONCARCHDIR}/quad/${f:C/\.o/.S/} 40#OBJS+= ${f} 41#CLEANFILES+= ${f} 42#.endfor 43 44.for f in \ 45 memcmp.o memcpy.o memmove.o memset.o \ 46 strcat.o strchr.o strcmp.o strcpy.o strlcpy.o strlen.o strncpy.o \ 47 strncmp.o strrchr.o strcpy_arm.o 48${f}: ${LIBCOMMONCARCHDIR}/string/${f:C/\.o/.S/} 49OBJS+= ${f} 50CLEANFILES+= ${f} 51.endfor 52 53CPPFLAGS.strcpy_arm.S+= -DSTRLCPY -D_LIBC 54 55######################################################################## 56# 57# Functions imported directly from libc. 58# 59.for f in \ 60 alloca.o 61${f}: ${LIBCARCHDIR}/gen/${f:C/\.o/.S/} 62OBJS+= ${f} 63CLEANFILES+= ${f} 64.endfor 65 66.for f in \ 67 __aeabi_dcmpeq.o __aeabi_fcmpeq.o \ 68 __aeabi_dcmpge.o __aeabi_fcmpge.o \ 69 __aeabi_dcmpgt.o __aeabi_fcmpgt.o \ 70 __aeabi_dcmple.o __aeabi_fcmple.o \ 71 __aeabi_dcmplt.o __aeabi_fcmplt.o \ 72 __aeabi_dcmpun.o __aeabi_fcmpun.o 73CPPFLAGS.${f:C/\.o/.c/}+= -I${LIBCARCHDIR}/softfloat -I${LIBCDIR}/softfloat 74CPPFLAGS.${f:C/\.o/.c/}+= -DSOFTFLOAT_FOR_GCC 75${f}: ${LIBCARCHDIR}/softfloat/${f:C/\.o/.c/} 76OBJS+= ${f} 77CLEANFILES+= ${f} 78.endfor 79 80.for f in \ 81 aeabi_uidivmod.o aeabi_ldivmod.o aeabi_uldivmod.o aeabi_idivmod.o 82${f}: ${NETBSDSRCDIR}/sys/external/bsd/compiler_rt/dist/lib/arm/${f:C/\.o/.S/} 83OBJS+= ${f} 84CLEANFILES+= ${f} 85.endfor 86 87.for f in \ 88 fpgetround.o fpsetround.o fpgetmask.o fpsetmask.o \ 89 fpgetsticky.o fpsetsticky.o 90CPPFLAGS.${f:C/\.o/.c/}+= -I${LIBCARCHDIR}/softfloat -I${LIBCDIR}/softfloat 91CPPFLAGS.${f:C/\.o/.c/}+= -DSOFTFLOAT_FOR_GCC 92${f}: ${LIBCDIR}/softfloat/${f:C/\.o/.c/} 93OBJS+= ${f} 94CLEANFILES+= ${f} 95.endfor 96 97SOFTFLOAT_BITS?=64 98.for f in \ 99 softfloat.o 100CPPFLAGS.${f:C/\.o/.c/}+= -I${LIBCARCHDIR}/softfloat -I${LIBCDIR}/softfloat 101CPPFLAGS.${f:C/\.o/.c/}+= -DSOFTFLOAT_FOR_GCC 102${f}: ${LIBCDIR}/softfloat/bits${SOFTFLOAT_BITS}/${f:C/\.o/.c/} 103OBJS+= ${f} 104CLEANFILES+= ${f} 105.endfor 106 107.if defined(HAVE_GCC) && ${HAVE_GCC} >= 45 108.if (${MACHINE_CPU} == "arm") 109COPTS.softfloat.c+= -Wno-enum-compare -fno-tree-vrp 110.endif 111.endif 112