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 byte_swap_2.o byte_swap_4.o divsi3.o divide.o udivsi3.o 15${f}: ${LIBCOMMONCARCHDIR}/gen/${f:C/\.o/.S/} 16OBJS+= ${f} 17CLEANFILES+= ${f} 18.endfor 19 20CPPFLAGS.byte_swap_4.S+= -D_STANDALONE 21 22.for f in \ 23 __aeabi_idiv0.o __aeabi_ldiv0.o 24${f}: ${LIBCOMMONCARCHDIR}/gen/${f:C/\.o/.c/} 25OBJS+= ${f} 26CLEANFILES+= ${f} 27.endfor 28 29CPPFLAGS.__aeabi_idiv0.c+= -D_STANDALONE 30CPPFLAGS.__aeabi_ldiv0.c+= -D_STANDALONE 31 32.for f in \ 33 __aeabi_ldivmod.o __aeabi_uldivmod.o 34${f}: ${LIBCOMMONCARCHDIR}/quad/${f:C/\.o/.S/} 35OBJS+= ${f} 36CLEANFILES+= ${f} 37.endfor 38 39.for f in \ 40 memcmp.o memcpy.o memmove.o memset.o \ 41 strcat.o strchr.o strcmp.o strcpy.o strlcpy.o strlen.o strncpy.o \ 42 strncmp.o strrchr.o strcpy_arm.o 43${f}: ${LIBCOMMONCARCHDIR}/string/${f:C/\.o/.S/} 44OBJS+= ${f} 45CLEANFILES+= ${f} 46.endfor 47 48CPPFLAGS.strcpy_arm.S+= -DSTRLCPY -D_LIBC 49 50######################################################################## 51# 52# Functions imported directly from libc. 53# 54.for f in \ 55 alloca.o 56${f}: ${LIBCARCHDIR}/gen/${f:C/\.o/.S/} 57OBJS+= ${f} 58CLEANFILES+= ${f} 59.endfor 60 61.for f in \ 62 __aeabi_dcmpeq.o __aeabi_fcmpeq.o \ 63 __aeabi_dcmpge.o __aeabi_fcmpge.o \ 64 __aeabi_dcmpgt.o __aeabi_fcmpgt.o \ 65 __aeabi_dcmple.o __aeabi_fcmple.o \ 66 __aeabi_dcmplt.o __aeabi_fcmplt.o \ 67 __aeabi_dcmpun.o __aeabi_fcmpun.o 68CPPFLAGS.${f:C/\.o/.c/}+= -I${LIBCARCHDIR}/softfloat -I${LIBCDIR}/softfloat 69CPPFLAGS.${f:C/\.o/.c/}+= -DSOFTFLOAT_FOR_GCC 70${f}: ${LIBCARCHDIR}/softfloat/${f:C/\.o/.c/} 71OBJS+= ${f} 72CLEANFILES+= ${f} 73.endfor 74 75.for f in \ 76 fpgetround.o fpsetround.o fpgetmask.o fpsetmask.o \ 77 fpgetsticky.o fpsetsticky.o 78CPPFLAGS.${f:C/\.o/.c/}+= -I${LIBCARCHDIR}/softfloat -I${LIBCDIR}/softfloat 79CPPFLAGS.${f:C/\.o/.c/}+= -DSOFTFLOAT_FOR_GCC 80${f}: ${LIBCDIR}/softfloat/${f:C/\.o/.c/} 81OBJS+= ${f} 82CLEANFILES+= ${f} 83.endfor 84 85SOFTFLOAT_BITS?=64 86.for f in \ 87 softfloat.o 88CPPFLAGS.${f:C/\.o/.c/}+= -I${LIBCARCHDIR}/softfloat -I${LIBCDIR}/softfloat 89CPPFLAGS.${f:C/\.o/.c/}+= -DSOFTFLOAT_FOR_GCC 90${f}: ${LIBCDIR}/softfloat/bits${SOFTFLOAT_BITS}/${f:C/\.o/.c/} 91OBJS+= ${f} 92CLEANFILES+= ${f} 93.endfor 94 95.if defined(HAVE_GCC) && ${HAVE_GCC} >= 45 96.if (${MACHINE_CPU} == "arm") 97COPTS.softfloat.c+= -Wno-enum-compare -fno-tree-vrp 98.endif 99.endif 100