summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandrew <andrew@FreeBSD.org>2013-02-05 20:03:58 +0000
committerandrew <andrew@FreeBSD.org>2013-02-05 20:03:58 +0000
commit18658720df177c8047dfc7d4f19be4eb9553b0c1 (patch)
tree5528efd647c6814be1de774b700fda129d6c39b9
parentb313f550e1119059ac3b02a0849b10b166b3a3fd (diff)
downloadFreeBSD-src-18658720df177c8047dfc7d4f19be4eb9553b0c1.zip
FreeBSD-src-18658720df177c8047dfc7d4f19be4eb9553b0c1.tar.gz
* Add the integer div & mod functions and ARM EABI support functions to
libstand. * Stop linking the ARM U-Boot loader against libgcc now libstand has the required symbols.
-rw-r--r--lib/libstand/Makefile13
-rw-r--r--sys/boot/arm/uboot/Makefile4
2 files changed, 15 insertions, 2 deletions
diff --git a/lib/libstand/Makefile b/lib/libstand/Makefile
index fd720a9..807136d 100644
--- a/lib/libstand/Makefile
+++ b/lib/libstand/Makefile
@@ -61,7 +61,20 @@ SRCS+= bcmp.c bcopy.c bzero.c ffs.c memccpy.c memchr.c memcmp.c memcpy.c \
.endif
.if ${MACHINE_CPUARCH} == "arm"
.PATH: ${.CURDIR}/../libc/arm/gen
+
+.if ${MK_ARM_EABI} == "no"
SRCS+= divsi3.S
+.else
+# Compiler support functions
+.PATH: ${.CURDIR}/../../contrib/compiler-rt/lib/
+SRCS+= divmoddi4.c divmodsi4.c divdi3.c divsi3.c moddi3.c modsi3.c
+SRCS+= udivmoddi4.c udivmodsi4.c udivdi3.c udivsi3.c umoddi3.c umodsi3.c
+
+.PATH: ${.CURDIR}/../../contrib/compiler-rt/lib/arm/
+SRCS+= aeabi_idivmod.S aeabi_ldivmod.S aeabi_uidivmod.S aeabi_uldivmod.S
+SRCS+= aeabi_memcmp.S aeabi_memcpy.S aeabi_memmove.S aeabi_memset.S
+.endif
+
.endif
.if ${MACHINE_CPUARCH} == "ia64"
.PATH: ${.CURDIR}/../libc/ia64/string
diff --git a/sys/boot/arm/uboot/Makefile b/sys/boot/arm/uboot/Makefile
index c3c4bd8..1974218 100644
--- a/sys/boot/arm/uboot/Makefile
+++ b/sys/boot/arm/uboot/Makefile
@@ -112,8 +112,8 @@ CFLAGS+= -I${.CURDIR}/../../../../lib/libstand/
# clang doesn't understand %D as a specifier to printf
NO_WERROR.clang=
-DPADD= ${LIBFICL} ${LIBUBOOT} ${LIBFDT} ${LIBSTAND} ${LIBGCC}
-LDADD= ${LIBFICL} ${LIBUBOOT} ${LIBFDT} -lstand -lgcc
+DPADD= ${LIBFICL} ${LIBUBOOT} ${LIBFDT} ${LIBSTAND}
+LDADD= ${LIBFICL} ${LIBUBOOT} ${LIBFDT} -lstand
vers.c: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version
sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT}
OpenPOWER on IntegriCloud