svn commit: r245651 - in head/lib: libc/arm libc/arm/gen libcompiler_rt
Andrew Turner
andrew at FreeBSD.org
Sat Jan 19 04:11:46 UTC 2013
Author: andrew
Date: Sat Jan 19 04:11:45 2013
New Revision: 245651
URL: http://svnweb.freebsd.org/changeset/base/245651
Log:
Use the compiler-rt version __{u,}divsi3 and __{u,}modsi3 on ARM EABI
Added:
head/lib/libc/arm/Symbol_oabi.map (contents, props changed)
Modified:
head/lib/libc/arm/Makefile.inc
head/lib/libc/arm/Symbol.map
head/lib/libc/arm/gen/Makefile.inc
head/lib/libcompiler_rt/Makefile
Modified: head/lib/libc/arm/Makefile.inc
==============================================================================
--- head/lib/libc/arm/Makefile.inc Sat Jan 19 04:03:18 2013 (r245650)
+++ head/lib/libc/arm/Makefile.inc Sat Jan 19 04:11:45 2013 (r245651)
@@ -8,3 +8,9 @@ SOFTFLOAT_BITS=32
# Long double is just double precision.
MDSRCS+=machdep_ldisd.c
SYM_MAPS+=${.CURDIR}/arm/Symbol.map
+
+.if ${MK_ARM_EABI} == "no"
+# This contains the symbols that were removed when moving to the ARM EABI
+SYM_MAPS+=${.CURDIR}/arm/Symbol_oabi.map
+.endif
+
Modified: head/lib/libc/arm/Symbol.map
==============================================================================
--- head/lib/libc/arm/Symbol.map Sat Jan 19 04:03:18 2013 (r245650)
+++ head/lib/libc/arm/Symbol.map Sat Jan 19 04:11:45 2013 (r245651)
@@ -46,10 +46,6 @@ FBSDprivate_1.0 {
_set_tp;
__aeabi_read_tp;
___longjmp;
- __umodsi3;
- __modsi3;
- __udivsi3;
- __divsi3;
__makecontext;
__longjmp;
signalcontext;
Added: head/lib/libc/arm/Symbol_oabi.map
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/lib/libc/arm/Symbol_oabi.map Sat Jan 19 04:11:45 2013 (r245651)
@@ -0,0 +1,16 @@
+/*
+ * $FreeBSD$
+ */
+
+/*
+ * This only needs to contain symbols that are not listed in
+ * symbol maps from other parts of libc (i.e., not found in
+ * stdlib/Symbol.map, string/Symbol.map, sys/Symbol.map, ...)
+ * and are not used in the ARM EABI.
+ */
+FBSDprivate_1.0 {
+ __umodsi3;
+ __modsi3;
+ __udivsi3;
+ __divsi3;
+};
Modified: head/lib/libc/arm/gen/Makefile.inc
==============================================================================
--- head/lib/libc/arm/gen/Makefile.inc Sat Jan 19 04:03:18 2013 (r245650)
+++ head/lib/libc/arm/gen/Makefile.inc Sat Jan 19 04:11:45 2013 (r245651)
@@ -3,4 +3,8 @@
SRCS+= _ctx_start.S _setjmp.S _set_tp.c alloca.S fabs.c \
getcontextx.c infinity.c ldexp.c makecontext.c \
- __aeabi_read_tp.S setjmp.S signalcontext.c sigsetjmp.S divsi3.S flt_rounds.c
+ __aeabi_read_tp.S setjmp.S signalcontext.c sigsetjmp.S flt_rounds.c
+
+.if ${MK_ARM_EABI} == "no"
+SRCS+= divsi3.S
+.endif
Modified: head/lib/libcompiler_rt/Makefile
==============================================================================
--- head/lib/libcompiler_rt/Makefile Sat Jan 19 04:03:18 2013 (r245650)
+++ head/lib/libcompiler_rt/Makefile Sat Jan 19 04:11:45 2013 (r245651)
@@ -136,18 +136,22 @@ SRCF+= adddf3 \
addsf3 \
divdf3 \
divsf3 \
- divsi3 \
extendsfdf2 \
fixdfsi \
fixsfsi \
floatsidf \
floatsisf \
- modsi3 \
muldf3 \
mulsf3 \
subdf3 \
subsf3 \
- truncdfsf2 \
+ truncdfsf2
+.endif
+
+.if ${MACHINE_CPUARCH} != "mips" && \
+ (${MACHINE_CPUARCH} != "arm" || ${MK_ARM_EABI} != "no")
+SRCF+= divsi3 \
+ modsi3 \
udivsi3 \
umodsi3
.endif
More information about the svn-src-all
mailing list