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
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to