diff options
author | andrew <andrew@FreeBSD.org> | 2013-01-19 04:11:45 +0000 |
---|---|---|
committer | andrew <andrew@FreeBSD.org> | 2013-01-19 04:11:45 +0000 |
commit | 3600c83b820e00959d61600e67e9dcb32ef6b518 (patch) | |
tree | d5e36a7927de79aefe8a3e54aab56174913a7fc4 /lib/libc | |
parent | 109e426da134da0aa0a02bfa0f7bc2c02de562df (diff) | |
download | FreeBSD-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.inc | 6 | ||||
-rw-r--r-- | lib/libc/arm/Symbol.map | 4 | ||||
-rw-r--r-- | lib/libc/arm/Symbol_oabi.map | 16 | ||||
-rw-r--r-- | lib/libc/arm/gen/Makefile.inc | 6 |
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 |