summaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
authorandrew <andrew@FreeBSD.org>2013-01-19 04:11:45 +0000
committerandrew <andrew@FreeBSD.org>2013-01-19 04:11:45 +0000
commit3600c83b820e00959d61600e67e9dcb32ef6b518 (patch)
treed5e36a7927de79aefe8a3e54aab56174913a7fc4 /lib/libc
parent109e426da134da0aa0a02bfa0f7bc2c02de562df (diff)
downloadFreeBSD-src-3600c83b820e00959d61600e67e9dcb32ef6b518.zip
FreeBSD-src-3600c83b820e00959d61600e67e9dcb32ef6b518.tar.gz
Use the compiler-rt version __{u,}divsi3 and __{u,}modsi3 on ARM EABI
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/arm/Makefile.inc6
-rw-r--r--lib/libc/arm/Symbol.map4
-rw-r--r--lib/libc/arm/Symbol_oabi.map16
-rw-r--r--lib/libc/arm/gen/Makefile.inc6
4 files changed, 27 insertions, 5 deletions
diff --git a/lib/libc/arm/Makefile.inc b/lib/libc/arm/Makefile.inc
index 4c72e56..dafc8d6 100644
--- a/lib/libc/arm/Makefile.inc
+++ b/lib/libc/arm/Makefile.inc
@@ -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
+
diff --git a/lib/libc/arm/Symbol.map b/lib/libc/arm/Symbol.map
index 48f6747..1c83b0a 100644
--- a/lib/libc/arm/Symbol.map
+++ b/lib/libc/arm/Symbol.map
@@ -46,10 +46,6 @@ FBSDprivate_1.0 {
_set_tp;
__aeabi_read_tp;
___longjmp;
- __umodsi3;
- __modsi3;
- __udivsi3;
- __divsi3;
__makecontext;
__longjmp;
signalcontext;
diff --git a/lib/libc/arm/Symbol_oabi.map b/lib/libc/arm/Symbol_oabi.map
new file mode 100644
index 0000000..0c22e4a
--- /dev/null
+++ b/lib/libc/arm/Symbol_oabi.map
@@ -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;
+};
diff --git a/lib/libc/arm/gen/Makefile.inc b/lib/libc/arm/gen/Makefile.inc
index a78cbb9..ec36d45 100644
--- a/lib/libc/arm/gen/Makefile.inc
+++ b/lib/libc/arm/gen/Makefile.inc
@@ -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
OpenPOWER on IntegriCloud