]> Zhao Yanbai Git Server - minix.git/commitdiff
Fix ARM floating point for services
authorLionel Sambuc <lionel@minix3.org>
Wed, 28 May 2014 13:30:34 +0000 (15:30 +0200)
committerLionel Sambuc <lionel@minix3.org>
Mon, 28 Jul 2014 15:05:40 +0000 (17:05 +0200)
Change-Id: Ic5772a7a78ea13ab6bb8db3ffd7f0906fd1380cf

lib/libminc/arch/earm/Makefile.libc.inc
share/mk/minix.service.mk

index 9d5a13ea18a15296e470dab103fad6e8a3f82200..2fd3cac4861ad0b0fc5e10d050602b838b288dfd 100644 (file)
@@ -57,3 +57,43 @@ ${f}:        ${LIBCARCHDIR}/gen/${f:C/\.o/.S/}
 OBJS+= ${f}
 CLEANFILES+= ${f}
 .endfor
+
+.for f in \
+       __aeabi_dcmpeq.o __aeabi_fcmpeq.o \
+       __aeabi_dcmpge.o __aeabi_fcmpge.o \
+       __aeabi_dcmpgt.o __aeabi_fcmpgt.o \
+       __aeabi_dcmple.o __aeabi_fcmple.o \
+       __aeabi_dcmplt.o __aeabi_fcmplt.o \
+       __aeabi_dcmpun.o __aeabi_fcmpun.o
+CPPFLAGS.${f:C/\.o/.c/}+= -I${LIBCARCHDIR}/softfloat -I${LIBCDIR}/softfloat
+CPPFLAGS.${f:C/\.o/.c/}+= -DSOFTFLOAT_FOR_GCC
+${f}:  ${LIBCARCHDIR}/softfloat/${f:C/\.o/.c/}
+OBJS+= ${f}
+CLEANFILES+= ${f}
+.endfor
+
+.for f in \
+       fpgetround.o fpsetround.o fpgetmask.o fpsetmask.o \
+       fpgetsticky.o fpsetsticky.o
+CPPFLAGS.${f:C/\.o/.c/}+= -I${LIBCARCHDIR}/softfloat -I${LIBCDIR}/softfloat
+CPPFLAGS.${f:C/\.o/.c/}+= -DSOFTFLOAT_FOR_GCC
+${f}:  ${LIBCDIR}/softfloat/${f:C/\.o/.c/}
+OBJS+= ${f}
+CLEANFILES+= ${f}
+.endfor
+
+SOFTFLOAT_BITS?=64
+.for f in \
+       softfloat.o
+CPPFLAGS.${f:C/\.o/.c/}+= -I${LIBCARCHDIR}/softfloat -I${LIBCDIR}/softfloat
+CPPFLAGS.${f:C/\.o/.c/}+= -DSOFTFLOAT_FOR_GCC
+${f}:  ${LIBCDIR}/softfloat/bits${SOFTFLOAT_BITS}/${f:C/\.o/.c/}
+OBJS+= ${f}
+CLEANFILES+= ${f}
+.endfor
+
+.if defined(HAVE_GCC) && ${HAVE_GCC} >= 45
+.if (${MACHINE_CPU} == "arm")
+COPTS.softfloat.c+=    -Wno-enum-compare -fno-tree-vrp
+.endif
+.endif
index 267449c15d8e0b524d55a6478538ef57edcdfdcf..0beebfee546cd89ac4351d6679857abdfb5e716d 100644 (file)
@@ -27,7 +27,6 @@ LDADD+= -lminc
 DPADD+= ${LIBMINC}
 
 .if ${MACHINE_ARCH} == "earm"
-LDADD+= -lc_vfp
 
 # LSC: On ARM, when compiling statically, with gcc, lgcc_eh is required
 .if ${PROG:U} != "kernel" && !empty(CC:M*gcc)