Module Name:    src
Committed By:   martin
Date:           Sun Aug  8 10:11:40 UTC 2021

Modified Files:
        src/lib/libc/compiler_rt [netbsd-9]: Makefile.inc
        src/lib/libm/compiler_rt [netbsd-9]: Makefile.inc
        src/sys/external/bsd/compiler_rt/dist/lib/builtins [netbsd-9]: adddf3.c
            addsf3.c ashldi3.c ashrdi3.c comparedf2.c comparesf2.c divdf3.c
            divsf3.c divsi3.c extendhfsf2.c extendsfdf2.c fixdfdi.c fixdfsi.c
            fixsfdi.c fixsfsi.c fixunsdfdi.c fixunsdfsi.c fixunssfdi.c
            fixunssfsi.c floatdidf.c floatdisf.c floatsidf.c floatsisf.c
            floatundidf.c floatundisf.c floatunsidf.c floatunsisf.c int_lib.h
            lshrdi3.c muldf3.c muldi3.c mulsf3.c negdf2.c negsf2.c subdf3.c
            subsf3.c truncdfhf2.c truncdfsf2.c truncsfhf2.c udivsi3.c
        src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm [netbsd-9]:
            aeabi_cdcmpeq_check_nan.c aeabi_cfcmpeq_check_nan.c aeabi_div0.c
            aeabi_drsub.c aeabi_frsub.c
        src/sys/lib/libkern [netbsd-9]: Makefile.compiler-rt
Added Files:
        src/sys/external/bsd/compiler_rt [netbsd-9]: abi.mk

Log Message:
Pull up following revision(s) (requested by skrll in ticket #1328):

        sys/external/bsd/compiler_rt/dist/lib/builtins/negsf2.c: revision 1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/muldf3.c: revision 1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/truncdfhf2.c: revision 
1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/negsf2.c: revision 1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/muldf3.c: revision 1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/floatdidf.c: revision 1.3
        
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cfcmpeq_check_nan.c: 
revision 1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/truncdfhf2.c: revision 
1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/floatdidf.c: revision 1.4
        sys/external/bsd/compiler_rt/dist/lib/builtins/floatdidf.c: revision 1.5
        sys/external/bsd/compiler_rt/dist/lib/builtins/divdf3.c: revision 1.2
        sys/external/bsd/compiler_rt/abi.mk: revision 1.1
        sys/external/bsd/compiler_rt/dist/lib/builtins/divdf3.c: revision 1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h: revision 1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/floatunsisf.c: revision 
1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/comparesf2.c: revision 
1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h: revision 1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/floatunsisf.c: revision 
1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/comparesf2.c: revision 
1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h: revision 1.4
        sys/external/bsd/compiler_rt/dist/lib/builtins/ashrdi3.c: revision 1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/ashldi3.c: revision 1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/truncdfsf2.c: revision 
1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/subdf3.c: revision 1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h: revision 1.5
        sys/external/bsd/compiler_rt/dist/lib/builtins/ashrdi3.c: revision 1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/ashldi3.c: revision 1.3
        sys/lib/libkern/Makefile.compiler-rt: revision 1.13
        sys/external/bsd/compiler_rt/dist/lib/builtins/truncdfsf2.c: revision 
1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/subdf3.c: revision 1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h: revision 1.6
        sys/external/bsd/compiler_rt/dist/lib/builtins/lshrdi3.c: revision 1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/floatsisf.c: revision 1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/extendhfsf2.c: revision 
1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/lshrdi3.c: revision 1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/floatsisf.c: revision 1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/extendhfsf2.c: revision 
1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/floatunsidf.c: revision 
1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/floatunsidf.c: revision 
1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/fixdfsi.c: revision 1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/fixdfsi.c: revision 1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_frsub.c: 
revision 1.2
        lib/libm/compiler_rt/Makefile.inc: revision 1.11
        sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsdfsi.c: revision 
1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/floatsidf.c: revision 1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsdfsi.c: revision 
1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/divsi3.c: revision 1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/adddf3.c: revision 1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/floatsidf.c: revision 1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/divsi3.c: revision 1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/adddf3.c: revision 1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_div0.c: 
revision 1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/mulsf3.c: revision 1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/mulsf3.c: revision 1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/fixdfdi.c: revision 1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/fixdfdi.c: revision 1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/divsf3.c: revision 1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/negdf2.c: revision 1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsdfdi.c: revision 
1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/divsf3.c: revision 1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/negdf2.c: revision 1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsdfdi.c: revision 
1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/extendsfdf2.c: revision 
1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/subsf3.c: revision 1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/extendsfdf2.c: revision 
1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/subsf3.c: revision 1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/comparedf2.c: revision 
1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/comparedf2.c: revision 
1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/floatundisf.c: revision 
1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/floatundisf.c: revision 
1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/fixsfsi.c: revision 1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_drsub.c: 
revision 1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/fixsfsi.c: revision 1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/muldi3.c: revision 1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/fixunssfsi.c: revision 
1.2
        
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cdcmpeq_check_nan.c: 
revision 1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/muldi3.c: revision 1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/fixunssfsi.c: revision 
1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/floatdisf.c: revision 1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/floatdisf.c: revision 1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/addsf3.c: revision 1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/addsf3.c: revision 1.3
        lib/libc/compiler_rt/Makefile.inc: revision 1.40
        sys/external/bsd/compiler_rt/dist/lib/builtins/fixunssfdi.c: revision 
1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/fixunssfdi.c: revision 
1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/udivsi3.c: revision 1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/truncsfhf2.c: revision 
1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/floatundidf.c: revision 
1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/fixsfdi.c: revision 1.2
        sys/external/bsd/compiler_rt/dist/lib/builtins/udivsi3.c: revision 1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/truncsfhf2.c: revision 
1.3
        sys/external/bsd/compiler_rt/dist/lib/builtins/floatundidf.c: revision 
1.4
        sys/external/bsd/compiler_rt/dist/lib/builtins/fixsfdi.c: revision 1.3

PR port-arm/55897
Cherry-pick upstream commit llvm-svn: 266891:
https://github.com/llvm/llvm-project/commit/28e1b977d4694c6b3a5c4d8107570a969be71e77#diff-549f1733063df365663fe375f336034e33e16d6bf2826cd4f966045aeb136007
----
[PATCH] builtins: remove use of __attribute__((pcs("aapcs"))) on
  Windows
Windows does not honour the __attribute__((pcs)) on ARM.  Although this will
result in ABI mismatches, compiler-rt should largely be unneeded for resolving
dependencies as we generate MS ABI compliant library calls now for the most
part.
llvm-svn: 266891
PR port-arm/55897
Cherry-pick upstream commit llvm-svn: 298974 for lib/builtins/int_lib.h.
https://github.com/llvm/llvm-project/commit/d8ca74176e25bd4080ee81982819e2ef7a36553f#diff-549f1733063df365663fe375f336034e33e16d6bf2826cd4f966045aeb136007
----
[Builtin] Unxfail tests for armhf
Summary:
Originally, a few tests fail for armhf target due to:
1) COMPILER_RT_ARMHF_TARGET was not set when building the lib
2) COMPILER_RT_ABI should not be defined as `__attribute__((pcs("aapcs")))` for 
armhf when building for both lib and tests
This addresshttps://bugs.llvm.org//show_bug.cgi?id=32261
mulsc3_test.c is a newly exposed issue, which will be addressed separately.
Reviewers: rengolin, compnerd
Reviewed By: compnerd
Subscribers: aemerson, llvm-commits, mgorny
Differential Revision:https://reviews.llvm.org/D31448
llvm-svn: 298974
PR port-arm/55897
Cherry-pick upstream commit llvm-svn: 303138:
https://github.com/llvm/llvm-project/commit/44c45717b9e9f3dc194508d2eeeb8599a9d76949#diff-549f1733063df365663fe375f336034e33e16d6bf2826cd4f966045aeb136007
----
[PATCH] builtins: use reserved spelling (NFC)
llvm-svn: 303138
PR port-arm/55897
Cherry-pick upstream commit llvm-svn: 303188:
https://github.com/llvm/llvm-project/commit/36ac5ddff7377586390a71cb3261f0a40d274308#diff-549f1733063df365663fe375f336034e33e16d6bf2826cd4f966045aeb136007
----
[PATCH] builtins: expand out the AEABI function stubs
These actually may change calling conventions.  We cannot simply provide
function aliases as the aliased function may have a different calling
convention.  Provide a forwarding function instead to permit the
compiler to synthesize the calling convention adjustment thunk.
Remove the `ARM_EABI_FNALIAS` macro as that is not safe to use.
Resolves PR33030!
llvm-svn: 303188
PR port-arm/55897
Cherry-pick upstream commit llvm-svn: 303207:
https://github.com/llvm/llvm-project/commit/4a45838d10085defac0f3b3003a5263e34536f3b#diff-549f1733063df365663fe375f336034e33e16d6bf2826cd4f966045aeb136007
----
[PATCH] builtins: fix guard __AEABI__ -> __ARM_EABI__
llvm-svn: 303207
PR port-arm/55897
Cherry-pick upstream commit llvm-svn: 314851:
https://github.com/llvm/llvm-project/commit/0d586d06a756b126a7eb43a21ecc12bd243d7cd8#diff-549f1733063df365663fe375f336034e33e16d6bf2826cd4f966045aeb136007
----
[PATCH] [compiler-rt] Add back ARM EABI aliases where legal.
r303188 removed all the uses of aliases for EABI functions from
compiler-rt, because some of them had mismatched calling conventions.
Obviously, we can't use aliases for functions which don't have the same
calling convention, but that's only an issue for floating-point
functions with the hardfloat ABI.  In other cases, the stubs increase
size and reduce performance for no benefit.
This patch adds back the aliases, with appropriate checks to make sure
they're only used in cases where the calling convention matches.
llvm-svn: 314851
PR port-arm/55897
Fix ABI mismatch for armhf runtime routines for floating-point arithmetics;
For hard-float arm variants, provide
(1) generic runtime routines with correct calling convention, and
(2) EABI runtime routines at the same time.
I've confirmed that no binary changes for kernels.
LGTM by skrll


To generate a diff of this commit:
cvs rdiff -u -r1.35 -r1.35.6.1 src/lib/libc/compiler_rt/Makefile.inc
cvs rdiff -u -r1.10 -r1.10.18.1 src/lib/libm/compiler_rt/Makefile.inc
cvs rdiff -u -r0 -r1.1.8.2 src/sys/external/bsd/compiler_rt/abi.mk
cvs rdiff -u -r1.1.1.3 -r1.1.1.3.34.1 \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/adddf3.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/extendsfdf2.c
cvs rdiff -u -r1.1.1.4 -r1.1.1.4.34.1 \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/addsf3.c
cvs rdiff -u -r1.1.1.1 -r1.1.1.1.40.1 \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/ashldi3.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/ashrdi3.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatdisf.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatundisf.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/lshrdi3.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/muldi3.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/negsf2.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/udivsi3.c
cvs rdiff -u -r1.1.1.4 -r1.1.1.4.22.1 \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/comparedf2.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/comparesf2.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h
cvs rdiff -u -r1.1.1.3 -r1.1.1.3.36.1 \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/divdf3.c
cvs rdiff -u -r1.1.1.2 -r1.1.1.2.40.1 \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/divsf3.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/divsi3.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatsidf.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatsisf.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatunsidf.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatunsisf.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/negdf2.c
cvs rdiff -u -r1.1.1.1 -r1.1.1.1.26.1 \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/extendhfsf2.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/truncdfhf2.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/truncsfhf2.c
cvs rdiff -u -r1.1.1.3 -r1.1.1.3.22.1 \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixdfdi.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixdfsi.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/subdf3.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/subsf3.c
cvs rdiff -u -r1.1.1.2 -r1.1.1.2.22.1 \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixsfdi.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixsfsi.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsdfdi.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsdfsi.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunssfdi.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunssfsi.c
cvs rdiff -u -r1.2 -r1.2.22.1 \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatdidf.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatundidf.c
cvs rdiff -u -r1.1.1.2 -r1.1.1.2.34.1 \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/muldf3.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/mulsf3.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/truncdfsf2.c
cvs rdiff -u -r1.1.1.1 -r1.1.1.1.26.1 \
    
src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cdcmpeq_check_nan.c
 \
    
src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cfcmpeq_check_nan.c
 \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_div0.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_drsub.c \
    src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_frsub.c
cvs rdiff -u -r1.9 -r1.9.4.1 src/sys/lib/libkern/Makefile.compiler-rt

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/compiler_rt/Makefile.inc
diff -u src/lib/libc/compiler_rt/Makefile.inc:1.35 src/lib/libc/compiler_rt/Makefile.inc:1.35.6.1
--- src/lib/libc/compiler_rt/Makefile.inc:1.35	Sun Jul 23 09:50:54 2017
+++ src/lib/libc/compiler_rt/Makefile.inc	Sun Aug  8 10:11:39 2021
@@ -1,6 +1,7 @@
-# $NetBSD: Makefile.inc,v 1.35 2017/07/23 09:50:54 martin Exp $
+# $NetBSD: Makefile.inc,v 1.35.6.1 2021/08/08 10:11:39 martin Exp $
 
-COMPILER_RT_SRCDIR=	${NETBSDSRCDIR}/sys/external/bsd/compiler_rt/dist
+COMPILER_RT_DIR=	${NETBSDSRCDIR}/sys/external/bsd/compiler_rt
+COMPILER_RT_SRCDIR=	${COMPILER_RT_DIR}/dist
 
 .if ${LIBC_MACHINE_ARCH} == "powerpc" || ${LIBC_MACHINE_ARCH} == "powerpc64"
 COMPILER_RT_CPU_DIR=	${COMPILER_RT_SRCDIR}/lib/builtins/ppc
@@ -296,3 +297,5 @@ COPTS.${src}+=	-Wno-missing-prototypes \
 COPTS.${src}+=	-D__SOFT_FP__
 .endif
 .endfor
+
+.include "${COMPILER_RT_DIR}/abi.mk"

Index: src/lib/libm/compiler_rt/Makefile.inc
diff -u src/lib/libm/compiler_rt/Makefile.inc:1.10 src/lib/libm/compiler_rt/Makefile.inc:1.10.18.1
--- src/lib/libm/compiler_rt/Makefile.inc:1.10	Sat Feb 27 19:06:56 2016
+++ src/lib/libm/compiler_rt/Makefile.inc	Sun Aug  8 10:11:39 2021
@@ -1,6 +1,7 @@
-# $NetBSD: Makefile.inc,v 1.10 2016/02/27 19:06:56 joerg Exp $
+# $NetBSD: Makefile.inc,v 1.10.18.1 2021/08/08 10:11:39 martin Exp $
 
-COMPILER_RT_SRCDIR=	${NETBSDSRCDIR}/sys/external/bsd/compiler_rt/dist
+COMPILER_RT_DIR=	${NETBSDSRCDIR}/sys/external/bsd/compiler_rt
+COMPILER_RT_SRCDIR=	${COMPILER_RT_DIR}/dist
 
 .if ${MACHINE_CPU} == "powerpc"
 COMPILER_RT_CPU_DIR=	${COMPILER_RT_SRCDIR}/lib/builtins/ppc
@@ -38,3 +39,5 @@ SRCS+=	${src}
 COPTS.${src}+=	-Wno-error=missing-prototypes
 .  endif
 .endfor
+
+.include "${COMPILER_RT_DIR}/abi.mk"

Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/adddf3.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/adddf3.c:1.1.1.3 src/sys/external/bsd/compiler_rt/dist/lib/builtins/adddf3.c:1.1.1.3.34.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/adddf3.c:1.1.1.3	Sun Aug 10 10:14:04 2014
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/adddf3.c	Sun Aug  8 10:11:39 2021
@@ -15,8 +15,16 @@
 #define DOUBLE_PRECISION
 #include "fp_add_impl.inc"
 
-ARM_EABI_FNALIAS(dadd, adddf3)
-
 COMPILER_RT_ABI double __adddf3(double a, double b){
     return __addXf3__(a, b);
 }
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI double __aeabi_dadd(double a, double b) {
+  return __adddf3(a, b);
+}
+#else
+AEABI_RTABI double __aeabi_dadd(double a, double b) COMPILER_RT_ALIAS(__adddf3);
+#endif
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/extendsfdf2.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/extendsfdf2.c:1.1.1.3 src/sys/external/bsd/compiler_rt/dist/lib/builtins/extendsfdf2.c:1.1.1.3.34.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/extendsfdf2.c:1.1.1.3	Sun Aug 10 10:14:04 2014
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/extendsfdf2.c	Sun Aug  8 10:11:39 2021
@@ -12,8 +12,16 @@
 #define DST_DOUBLE
 #include "fp_extend_impl.inc"
 
-ARM_EABI_FNALIAS(f2d, extendsfdf2)
-
 COMPILER_RT_ABI double __extendsfdf2(float a) {
     return __extendXfYf2__(a);
 }
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI double __aeabi_f2d(float a) {
+  return __extendsfdf2(a);
+}
+#else
+AEABI_RTABI double __aeabi_f2d(float a) COMPILER_RT_ALIAS(__extendsfdf2);
+#endif
+#endif

Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/addsf3.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/addsf3.c:1.1.1.4 src/sys/external/bsd/compiler_rt/dist/lib/builtins/addsf3.c:1.1.1.4.34.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/addsf3.c:1.1.1.4	Sun Aug 10 10:14:04 2014
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/addsf3.c	Sun Aug  8 10:11:39 2021
@@ -15,8 +15,16 @@
 #define SINGLE_PRECISION
 #include "fp_add_impl.inc"
 
-ARM_EABI_FNALIAS(fadd, addsf3)
-
 COMPILER_RT_ABI float __addsf3(float a, float b) {
     return __addXf3__(a, b);
 }
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI float __aeabi_fadd(float a, float b) {
+  return __addsf3(a, b);
+}
+#else
+AEABI_RTABI float __aeabi_fadd(float a, float b) COMPILER_RT_ALIAS(__addsf3);
+#endif
+#endif

Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/ashldi3.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/ashldi3.c:1.1.1.1 src/sys/external/bsd/compiler_rt/dist/lib/builtins/ashldi3.c:1.1.1.1.40.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/ashldi3.c:1.1.1.1	Wed Feb 26 22:31:29 2014
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/ashldi3.c	Sun Aug  8 10:11:39 2021
@@ -18,8 +18,6 @@
 
 /* Precondition:  0 <= b < bits_in_dword */
 
-ARM_EABI_FNALIAS(llsl, ashldi3)
-
 COMPILER_RT_ABI di_int
 __ashldi3(di_int a, si_int b)
 {
@@ -41,3 +39,7 @@ __ashldi3(di_int a, si_int b)
     }
     return result.all;
 }
+
+#if defined(__ARM_EABI__)
+AEABI_RTABI di_int __aeabi_llsl(di_int a, si_int b) COMPILER_RT_ALIAS(__ashldi3);
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/ashrdi3.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/ashrdi3.c:1.1.1.1 src/sys/external/bsd/compiler_rt/dist/lib/builtins/ashrdi3.c:1.1.1.1.40.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/ashrdi3.c:1.1.1.1	Wed Feb 26 22:31:29 2014
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/ashrdi3.c	Sun Aug  8 10:11:39 2021
@@ -18,8 +18,6 @@
 
 /* Precondition:  0 <= b < bits_in_dword */
 
-ARM_EABI_FNALIAS(lasr, ashrdi3)
-
 COMPILER_RT_ABI di_int
 __ashrdi3(di_int a, si_int b)
 {
@@ -42,3 +40,7 @@ __ashrdi3(di_int a, si_int b)
     }
     return result.all;
 }
+
+#if defined(__ARM_EABI__)
+AEABI_RTABI di_int __aeabi_lasr(di_int a, si_int b) COMPILER_RT_ALIAS(__ashrdi3);
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatdisf.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatdisf.c:1.1.1.1 src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatdisf.c:1.1.1.1.40.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatdisf.c:1.1.1.1	Wed Feb 26 22:31:29 2014
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatdisf.c	Sun Aug  8 10:11:39 2021
@@ -22,8 +22,6 @@
 
 #include "int_lib.h"
 
-ARM_EABI_FNALIAS(l2f, floatdisf)
-
 COMPILER_RT_ABI float
 __floatdisf(di_int a)
 {
@@ -78,3 +76,13 @@ __floatdisf(di_int a)
            ((su_int)a & 0x007FFFFF);   /* mantissa */
     return fb.f;
 }
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI float __aeabi_l2f(di_int a) {
+  return __floatdisf(a);
+}
+#else
+AEABI_RTABI float __aeabi_l2f(di_int a) COMPILER_RT_ALIAS(__floatdisf);
+#endif
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatundisf.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatundisf.c:1.1.1.1 src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatundisf.c:1.1.1.1.40.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatundisf.c:1.1.1.1	Wed Feb 26 22:31:29 2014
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatundisf.c	Sun Aug  8 10:11:39 2021
@@ -22,8 +22,6 @@
 
 #include "int_lib.h"
 
-ARM_EABI_FNALIAS(ul2f, floatundisf)
-
 COMPILER_RT_ABI float
 __floatundisf(du_int a)
 {
@@ -75,3 +73,13 @@ __floatundisf(du_int a)
            ((su_int)a & 0x007FFFFF);  /* mantissa */
     return fb.f;
 }
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI float __aeabi_ul2f(du_int a) {
+  return __floatundisf(a);
+}
+#else
+AEABI_RTABI float __aeabi_ul2f(du_int a) COMPILER_RT_ALIAS(__floatundisf);
+#endif
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/lshrdi3.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/lshrdi3.c:1.1.1.1 src/sys/external/bsd/compiler_rt/dist/lib/builtins/lshrdi3.c:1.1.1.1.40.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/lshrdi3.c:1.1.1.1	Wed Feb 26 22:31:29 2014
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/lshrdi3.c	Sun Aug  8 10:11:39 2021
@@ -18,8 +18,6 @@
 
 /* Precondition:  0 <= b < bits_in_dword */
 
-ARM_EABI_FNALIAS(llsr, lshrdi3)
-
 COMPILER_RT_ABI di_int
 __lshrdi3(di_int a, si_int b)
 {
@@ -41,3 +39,7 @@ __lshrdi3(di_int a, si_int b)
     }
     return result.all;
 }
+
+#if defined(__ARM_EABI__)
+AEABI_RTABI di_int __aeabi_llsr(di_int a, si_int b) COMPILER_RT_ALIAS(__lshrdi3);
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/muldi3.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/muldi3.c:1.1.1.1 src/sys/external/bsd/compiler_rt/dist/lib/builtins/muldi3.c:1.1.1.1.40.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/muldi3.c:1.1.1.1	Wed Feb 26 22:31:29 2014
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/muldi3.c	Sun Aug  8 10:11:39 2021
@@ -40,8 +40,6 @@ __muldsi3(su_int a, su_int b)
 
 /* Returns: a * b */
 
-ARM_EABI_FNALIAS(lmul, muldi3)
-
 COMPILER_RT_ABI di_int
 __muldi3(di_int a, di_int b)
 {
@@ -54,3 +52,7 @@ __muldi3(di_int a, di_int b)
     r.s.high += x.s.high * y.s.low + x.s.low * y.s.high;
     return r.all;
 }
+
+#if defined(__ARM_EABI__)
+AEABI_RTABI di_int __aeabi_lmul(di_int a, di_int b) COMPILER_RT_ALIAS(__muldi3);
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/negsf2.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/negsf2.c:1.1.1.1 src/sys/external/bsd/compiler_rt/dist/lib/builtins/negsf2.c:1.1.1.1.40.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/negsf2.c:1.1.1.1	Wed Feb 26 22:31:29 2014
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/negsf2.c	Sun Aug  8 10:11:39 2021
@@ -14,9 +14,17 @@
 #define SINGLE_PRECISION
 #include "fp_lib.h"
 
-ARM_EABI_FNALIAS(fneg, negsf2)
-
 COMPILER_RT_ABI fp_t
 __negsf2(fp_t a) {
     return fromRep(toRep(a) ^ signBit);
 }
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI fp_t __aeabi_fneg(fp_t a) {
+  return __negsf2(a);
+}
+#else
+AEABI_RTABI fp_t __aeabi_fneg(fp_t a) COMPILER_RT_ALIAS(__negsf2);
+#endif
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/udivsi3.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/udivsi3.c:1.1.1.1 src/sys/external/bsd/compiler_rt/dist/lib/builtins/udivsi3.c:1.1.1.1.40.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/udivsi3.c:1.1.1.1	Wed Feb 26 22:31:29 2014
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/udivsi3.c	Sun Aug  8 10:11:39 2021
@@ -18,8 +18,6 @@
 
 /* Translated from Figure 3-40 of The PowerPC Compiler Writer's Guide */
 
-ARM_EABI_FNALIAS(uidiv, udivsi3)
-
 /* This function should not call __divsi3! */
 COMPILER_RT_ABI su_int
 __udivsi3(su_int n, su_int d)
@@ -64,3 +62,7 @@ __udivsi3(su_int n, su_int d)
     q = (q << 1) | carry;
     return q;
 }
+
+#if defined(__ARM_EABI__)
+AEABI_RTABI su_int __aeabi_uidiv(su_int n, su_int d) COMPILER_RT_ALIAS(__udivsi3);
+#endif

Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/comparedf2.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/comparedf2.c:1.1.1.4 src/sys/external/bsd/compiler_rt/dist/lib/builtins/comparedf2.c:1.1.1.4.22.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/comparedf2.c:1.1.1.4	Sat Feb 27 18:59:29 2016
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/comparedf2.c	Sun Aug  8 10:11:39 2021
@@ -113,8 +113,6 @@ __gedf2(fp_t a, fp_t b) {
     }
 }
 
-ARM_EABI_FNALIAS(dcmpun, unorddf2)
-
 COMPILER_RT_ABI int
 __unorddf2(fp_t a, fp_t b) {
     const rep_t aAbs = toRep(a) & absMask;
@@ -144,3 +142,12 @@ __gtdf2(fp_t a, fp_t b) {
     return __gedf2(a, b);
 }
 
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI int __aeabi_dcmpun(fp_t a, fp_t b) {
+  return __unorddf2(a, b);
+}
+#else
+AEABI_RTABI int __aeabi_dcmpun(fp_t a, fp_t b) COMPILER_RT_ALIAS(__unorddf2);
+#endif
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/comparesf2.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/comparesf2.c:1.1.1.4 src/sys/external/bsd/compiler_rt/dist/lib/builtins/comparesf2.c:1.1.1.4.22.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/comparesf2.c:1.1.1.4	Sat Feb 27 18:59:29 2016
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/comparesf2.c	Sun Aug  8 10:11:39 2021
@@ -113,8 +113,6 @@ __gesf2(fp_t a, fp_t b) {
     }
 }
 
-ARM_EABI_FNALIAS(fcmpun, unordsf2)
-
 COMPILER_RT_ABI int
 __unordsf2(fp_t a, fp_t b) {
     const rep_t aAbs = toRep(a) & absMask;
@@ -143,3 +141,13 @@ COMPILER_RT_ABI enum GE_RESULT
 __gtsf2(fp_t a, fp_t b) {
     return __gesf2(a, b);
 }
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI int __aeabi_fcmpun(fp_t a, fp_t b) {
+  return __unordsf2(a, b);
+}
+#else
+AEABI_RTABI int __aeabi_fcmpun(fp_t a, fp_t b) COMPILER_RT_ALIAS(__unordsf2);
+#endif
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h:1.1.1.4 src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h:1.1.1.4.22.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h:1.1.1.4	Sat Feb 27 18:59:30 2016
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/int_lib.h	Sun Aug  8 10:11:39 2021
@@ -22,26 +22,27 @@
 
 #if defined(__ELF__)
 #define FNALIAS(alias_name, original_name) \
-  void alias_name() __attribute__((alias(#original_name)))
+  void alias_name() __attribute__((__alias__(#original_name)))
+#define COMPILER_RT_ALIAS(aliasee) __attribute__((__alias__(#aliasee)))
 #else
 #define FNALIAS(alias, name) _Pragma("GCC error(\"alias unsupported on this file format\")")
+#define COMPILER_RT_ALIAS(aliasee) _Pragma("GCC error(\"alias unsupported on this file format\")")
 #endif
 
 /* ABI macro definitions */
 
 #if __ARM_EABI__
-# define ARM_EABI_FNALIAS(aeabi_name, name)         \
-  void __aeabi_##aeabi_name() __attribute__((alias("__" #name)));
-# define COMPILER_RT_ABI __attribute__((pcs("aapcs")))
-#else
-# define ARM_EABI_FNALIAS(aeabi_name, name)
-# if defined(__arm__) && defined(_WIN32) && (!defined(_MSC_VER) || defined(__clang__))
-#   define COMPILER_RT_ABI __attribute__((pcs("aapcs")))
-# else
+# ifdef COMPILER_RT_ARMHF_TARGET
 #   define COMPILER_RT_ABI
+# else
+#   define COMPILER_RT_ABI __attribute__((__pcs__("aapcs")))
 # endif
+#else
+# define COMPILER_RT_ABI
 #endif
 
+#define AEABI_RTABI __attribute__((__pcs__("aapcs")))
+
 #ifdef _MSC_VER
 #define ALWAYS_INLINE __forceinline
 #define NOINLINE __declspec(noinline)

Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/divdf3.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/divdf3.c:1.1.1.3 src/sys/external/bsd/compiler_rt/dist/lib/builtins/divdf3.c:1.1.1.3.36.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/divdf3.c:1.1.1.3	Mon May 19 16:11:28 2014
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/divdf3.c	Sun Aug  8 10:11:39 2021
@@ -19,8 +19,6 @@
 #define DOUBLE_PRECISION
 #include "fp_lib.h"
 
-ARM_EABI_FNALIAS(ddiv, divdf3)
-
 COMPILER_RT_ABI fp_t
 __divdf3(fp_t a, fp_t b) {
     
@@ -183,3 +181,13 @@ __divdf3(fp_t a, fp_t b) {
         return result;
     }
 }
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI fp_t __aeabi_ddiv(fp_t a, fp_t b) {
+  return __divdf3(a, b);
+}
+#else
+AEABI_RTABI fp_t __aeabi_ddiv(fp_t a, fp_t b) COMPILER_RT_ALIAS(__divdf3);
+#endif
+#endif

Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/divsf3.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/divsf3.c:1.1.1.2 src/sys/external/bsd/compiler_rt/dist/lib/builtins/divsf3.c:1.1.1.2.40.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/divsf3.c:1.1.1.2	Tue Mar 18 22:28:42 2014
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/divsf3.c	Sun Aug  8 10:11:39 2021
@@ -19,8 +19,6 @@
 #define SINGLE_PRECISION
 #include "fp_lib.h"
 
-ARM_EABI_FNALIAS(fdiv, divsf3)
-
 COMPILER_RT_ABI fp_t
 __divsf3(fp_t a, fp_t b) {
     
@@ -167,3 +165,13 @@ __divsf3(fp_t a, fp_t b) {
         return fromRep(absResult | quotientSign);
     }
 }
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI fp_t __aeabi_fdiv(fp_t a, fp_t b) {
+  return __divsf3(a, b);
+}
+#else
+AEABI_RTABI fp_t __aeabi_fdiv(fp_t a, fp_t b) COMPILER_RT_ALIAS(__divsf3);
+#endif
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/divsi3.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/divsi3.c:1.1.1.2 src/sys/external/bsd/compiler_rt/dist/lib/builtins/divsi3.c:1.1.1.2.40.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/divsi3.c:1.1.1.2	Tue Mar 18 22:28:42 2014
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/divsi3.c	Sun Aug  8 10:11:39 2021
@@ -16,8 +16,6 @@
 
 /* Returns: a / b */
 
-ARM_EABI_FNALIAS(idiv, divsi3)
-
 COMPILER_RT_ABI si_int
 __divsi3(si_int a, si_int b)
 {
@@ -35,3 +33,7 @@ __divsi3(si_int a, si_int b)
      */
     return ((su_int)a/(su_int)b ^ s_a) - s_a;    /* negate if s_a == -1 */
 }
+
+#if defined(__ARM_EABI__)
+AEABI_RTABI si_int __aeabi_idiv(si_int a, si_int b) COMPILER_RT_ALIAS(__divsi3);
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatsidf.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatsidf.c:1.1.1.2 src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatsidf.c:1.1.1.2.40.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatsidf.c:1.1.1.2	Tue Mar 18 22:28:42 2014
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatsidf.c	Sun Aug  8 10:11:39 2021
@@ -18,8 +18,6 @@
 
 #include "int_lib.h"
 
-ARM_EABI_FNALIAS(i2d, floatsidf)
-
 COMPILER_RT_ABI fp_t
 __floatsidf(int a) {
     
@@ -51,3 +49,13 @@ __floatsidf(int a) {
     // Insert the sign bit and return
     return fromRep(result | sign);
 }
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI fp_t __aeabi_i2d(int a) {
+  return __floatsidf(a);
+}
+#else
+AEABI_RTABI fp_t __aeabi_i2d(int a) COMPILER_RT_ALIAS(__floatsidf);
+#endif
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatsisf.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatsisf.c:1.1.1.2 src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatsisf.c:1.1.1.2.40.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatsisf.c:1.1.1.2	Tue Mar 18 22:28:42 2014
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatsisf.c	Sun Aug  8 10:11:39 2021
@@ -18,8 +18,6 @@
 
 #include "int_lib.h"
 
-ARM_EABI_FNALIAS(i2f, floatsisf)
-
 COMPILER_RT_ABI fp_t
 __floatsisf(int a) {
     
@@ -57,3 +55,13 @@ __floatsisf(int a) {
     // Insert the sign bit and return
     return fromRep(result | sign);
 }
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI fp_t __aeabi_i2f(int a) {
+  return __floatsisf(a);
+}
+#else
+AEABI_RTABI fp_t __aeabi_i2f(int a) COMPILER_RT_ALIAS(__floatsisf);
+#endif
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatunsidf.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatunsidf.c:1.1.1.2 src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatunsidf.c:1.1.1.2.40.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatunsidf.c:1.1.1.2	Tue Mar 18 22:28:42 2014
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatunsidf.c	Sun Aug  8 10:11:39 2021
@@ -18,8 +18,6 @@
 
 #include "int_lib.h"
 
-ARM_EABI_FNALIAS(ui2d, floatunsidf)
-
 COMPILER_RT_ABI fp_t
 __floatunsidf(unsigned int a) {
     
@@ -40,3 +38,13 @@ __floatunsidf(unsigned int a) {
     result += (rep_t)(exponent + exponentBias) << significandBits;
     return fromRep(result);
 }
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI fp_t __aeabi_ui2d(unsigned int a) {
+  return __floatunsidf(a);
+}
+#else
+AEABI_RTABI fp_t __aeabi_ui2d(unsigned int a) COMPILER_RT_ALIAS(__floatunsidf);
+#endif
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatunsisf.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatunsisf.c:1.1.1.2 src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatunsisf.c:1.1.1.2.40.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatunsisf.c:1.1.1.2	Tue Mar 18 22:28:42 2014
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatunsisf.c	Sun Aug  8 10:11:39 2021
@@ -18,8 +18,6 @@
 
 #include "int_lib.h"
 
-ARM_EABI_FNALIAS(ui2f, floatunsisf)
-
 COMPILER_RT_ABI fp_t
 __floatunsisf(unsigned int a) {
     
@@ -48,3 +46,13 @@ __floatunsisf(unsigned int a) {
     result += (rep_t)(exponent + exponentBias) << significandBits;
     return fromRep(result);
 }
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI fp_t __aeabi_ui2f(unsigned int a) {
+  return __floatunsisf(a);
+}
+#else
+AEABI_RTABI fp_t __aeabi_ui2f(unsigned int a) COMPILER_RT_ALIAS(__floatunsisf);
+#endif
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/negdf2.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/negdf2.c:1.1.1.2 src/sys/external/bsd/compiler_rt/dist/lib/builtins/negdf2.c:1.1.1.2.40.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/negdf2.c:1.1.1.2	Tue Mar 18 22:28:42 2014
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/negdf2.c	Sun Aug  8 10:11:39 2021
@@ -14,9 +14,17 @@
 #define DOUBLE_PRECISION
 #include "fp_lib.h"
 
-ARM_EABI_FNALIAS(dneg, negdf2)
-
 COMPILER_RT_ABI fp_t
 __negdf2(fp_t a) {
     return fromRep(toRep(a) ^ signBit);
 }
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI fp_t __aeabi_dneg(fp_t a) {
+  return __negdf2(a);
+}
+#else
+AEABI_RTABI fp_t __aeabi_dneg(fp_t a) COMPILER_RT_ALIAS(__negdf2);
+#endif
+#endif

Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/extendhfsf2.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/extendhfsf2.c:1.1.1.1 src/sys/external/bsd/compiler_rt/dist/lib/builtins/extendhfsf2.c:1.1.1.1.26.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/extendhfsf2.c:1.1.1.1	Sat Feb 27 18:59:30 2016
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/extendhfsf2.c	Sun Aug  8 10:11:39 2021
@@ -12,8 +12,6 @@
 #define DST_SINGLE
 #include "fp_extend_impl.inc"
 
-ARM_EABI_FNALIAS(h2f, extendhfsf2)
-
 // Use a forwarding definition and noinline to implement a poor man's alias,
 // as there isn't a good cross-platform way of defining one.
 COMPILER_RT_ABI NOINLINE float __extendhfsf2(uint16_t a) {
@@ -23,3 +21,13 @@ COMPILER_RT_ABI NOINLINE float __extendh
 COMPILER_RT_ABI float __gnu_h2f_ieee(uint16_t a) {
     return __extendhfsf2(a);
 }
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI float __aeabi_h2f(uint16_t a) {
+  return __extendhfsf2(a);
+}
+#else
+AEABI_RTABI float __aeabi_h2f(uint16_t a) COMPILER_RT_ALIAS(__extendhfsf2);
+#endif
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/truncdfhf2.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/truncdfhf2.c:1.1.1.1 src/sys/external/bsd/compiler_rt/dist/lib/builtins/truncdfhf2.c:1.1.1.1.26.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/truncdfhf2.c:1.1.1.1	Sat Feb 27 18:59:30 2016
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/truncdfhf2.c	Sun Aug  8 10:11:39 2021
@@ -11,8 +11,16 @@
 #define DST_HALF
 #include "fp_trunc_impl.inc"
 
-ARM_EABI_FNALIAS(d2h, truncdfhf2)
-
 COMPILER_RT_ABI uint16_t __truncdfhf2(double a) {
     return __truncXfYf2__(a);
 }
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI uint16_t __aeabi_d2h(double a) {
+  return __truncdfhf2(a);
+}
+#else
+AEABI_RTABI uint16_t __aeabi_d2h(double a) COMPILER_RT_ALIAS(__truncdfhf2);
+#endif
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/truncsfhf2.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/truncsfhf2.c:1.1.1.1 src/sys/external/bsd/compiler_rt/dist/lib/builtins/truncsfhf2.c:1.1.1.1.26.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/truncsfhf2.c:1.1.1.1	Sat Feb 27 18:59:30 2016
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/truncsfhf2.c	Sun Aug  8 10:11:39 2021
@@ -11,8 +11,6 @@
 #define DST_HALF
 #include "fp_trunc_impl.inc"
 
-ARM_EABI_FNALIAS(f2h, truncsfhf2)
-
 // Use a forwarding definition and noinline to implement a poor man's alias,
 // as there isn't a good cross-platform way of defining one.
 COMPILER_RT_ABI NOINLINE uint16_t __truncsfhf2(float a) {
@@ -22,3 +20,13 @@ COMPILER_RT_ABI NOINLINE uint16_t __trun
 COMPILER_RT_ABI uint16_t __gnu_f2h_ieee(float a) {
     return __truncsfhf2(a);
 }
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI uint16_t __aeabi_f2h(float a) {
+  return __truncsfhf2(a);
+}
+#else
+AEABI_RTABI uint16_t __aeabi_f2h(float a) COMPILER_RT_ALIAS(__truncsfhf2);
+#endif
+#endif

Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixdfdi.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixdfdi.c:1.1.1.3 src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixdfdi.c:1.1.1.3.22.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixdfdi.c:1.1.1.3	Sat Feb 27 18:59:29 2016
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixdfdi.c	Sun Aug  8 10:11:39 2021
@@ -10,7 +10,6 @@
 
 #define DOUBLE_PRECISION
 #include "fp_lib.h"
-ARM_EABI_FNALIAS(d2lz, fixdfdi)
 
 #ifndef __SOFT_FP__
 /* Support for systems that have hardware floating-point; can set the invalid
@@ -44,3 +43,13 @@ __fixdfdi(fp_t a) {
 }
 
 #endif
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI di_int __aeabi_d2lz(fp_t a) {
+  return __fixdfdi(a);
+}
+#else
+AEABI_RTABI di_int __aeabi_d2lz(fp_t a) COMPILER_RT_ALIAS(__fixdfdi);
+#endif
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixdfsi.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixdfsi.c:1.1.1.3 src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixdfsi.c:1.1.1.3.22.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixdfsi.c:1.1.1.3	Sat Feb 27 18:59:29 2016
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixdfsi.c	Sun Aug  8 10:11:39 2021
@@ -14,9 +14,17 @@ typedef si_int fixint_t;
 typedef su_int fixuint_t;
 #include "fp_fixint_impl.inc"
 
-ARM_EABI_FNALIAS(d2iz, fixdfsi)
-
 COMPILER_RT_ABI si_int
 __fixdfsi(fp_t a) {
     return __fixint(a);
 }
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI si_int __aeabi_d2iz(fp_t a) {
+  return __fixdfsi(a);
+}
+#else
+AEABI_RTABI si_int __aeabi_d2iz(fp_t a) COMPILER_RT_ALIAS(__fixdfsi);
+#endif
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/subdf3.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/subdf3.c:1.1.1.3 src/sys/external/bsd/compiler_rt/dist/lib/builtins/subdf3.c:1.1.1.3.22.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/subdf3.c:1.1.1.3	Sat Feb 27 18:59:30 2016
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/subdf3.c	Sun Aug  8 10:11:39 2021
@@ -15,11 +15,18 @@
 #define DOUBLE_PRECISION
 #include "fp_lib.h"
 
-ARM_EABI_FNALIAS(dsub, subdf3)
-
 // Subtraction; flip the sign bit of b and add.
 COMPILER_RT_ABI fp_t
 __subdf3(fp_t a, fp_t b) {
     return __adddf3(a, fromRep(toRep(b) ^ signBit));
 }
 
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI fp_t __aeabi_dsub(fp_t a, fp_t b) {
+  return __subdf3(a, b);
+}
+#else
+AEABI_RTABI fp_t __aeabi_dsub(fp_t a, fp_t b) COMPILER_RT_ALIAS(__subdf3);
+#endif
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/subsf3.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/subsf3.c:1.1.1.3 src/sys/external/bsd/compiler_rt/dist/lib/builtins/subsf3.c:1.1.1.3.22.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/subsf3.c:1.1.1.3	Sat Feb 27 18:59:30 2016
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/subsf3.c	Sun Aug  8 10:11:39 2021
@@ -15,11 +15,18 @@
 #define SINGLE_PRECISION
 #include "fp_lib.h"
 
-ARM_EABI_FNALIAS(fsub, subsf3)
-
 // Subtraction; flip the sign bit of b and add.
 COMPILER_RT_ABI fp_t
 __subsf3(fp_t a, fp_t b) {
     return __addsf3(a, fromRep(toRep(b) ^ signBit));
 }
 
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI fp_t __aeabi_fsub(fp_t a, fp_t b) {
+  return __subsf3(a, b);
+}
+#else
+AEABI_RTABI fp_t __aeabi_fsub(fp_t a, fp_t b) COMPILER_RT_ALIAS(__subsf3);
+#endif
+#endif

Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixsfdi.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixsfdi.c:1.1.1.2 src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixsfdi.c:1.1.1.2.22.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixsfdi.c:1.1.1.2	Sat Feb 27 18:59:29 2016
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixsfdi.c	Sun Aug  8 10:11:39 2021
@@ -11,8 +11,6 @@
 #define SINGLE_PRECISION
 #include "fp_lib.h"
 
-ARM_EABI_FNALIAS(f2lz, fixsfdi)
-
 #ifndef __SOFT_FP__
 /* Support for systems that have hardware floating-point; can set the invalid
  * flag as a side-effect of computation.
@@ -45,3 +43,13 @@ __fixsfdi(fp_t a) {
 }
 
 #endif
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI di_int __aeabi_f2lz(fp_t a) {
+  return __fixsfdi(a);
+}
+#else
+AEABI_RTABI di_int __aeabi_f2lz(fp_t a) COMPILER_RT_ALIAS(__fixsfdi);
+#endif
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixsfsi.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixsfsi.c:1.1.1.2 src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixsfsi.c:1.1.1.2.22.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixsfsi.c:1.1.1.2	Sat Feb 27 18:59:29 2016
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixsfsi.c	Sun Aug  8 10:11:39 2021
@@ -14,9 +14,17 @@ typedef si_int fixint_t;
 typedef su_int fixuint_t;
 #include "fp_fixint_impl.inc"
 
-ARM_EABI_FNALIAS(f2iz, fixsfsi)
-
 COMPILER_RT_ABI si_int
 __fixsfsi(fp_t a) {
     return __fixint(a);
 }
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI si_int __aeabi_f2iz(fp_t a) {
+  return __fixsfsi(a);
+}
+#else
+AEABI_RTABI si_int __aeabi_f2iz(fp_t a) COMPILER_RT_ALIAS(__fixsfsi);
+#endif
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsdfdi.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsdfdi.c:1.1.1.2 src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsdfdi.c:1.1.1.2.22.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsdfdi.c:1.1.1.2	Sat Feb 27 18:59:30 2016
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsdfdi.c	Sun Aug  8 10:11:39 2021
@@ -11,8 +11,6 @@
 #define DOUBLE_PRECISION
 #include "fp_lib.h"
 
-ARM_EABI_FNALIAS(d2ulz, fixunsdfdi)
-
 #ifndef __SOFT_FP__
 /* Support for systems that have hardware floating-point; can set the invalid
  * flag as a side-effect of computation.
@@ -42,3 +40,13 @@ __fixunsdfdi(fp_t a) {
 }
 
 #endif
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI du_int __aeabi_d2ulz(fp_t a) {
+  return __fixunsdfdi(a);
+}
+#else
+AEABI_RTABI du_int __aeabi_d2ulz(fp_t a) COMPILER_RT_ALIAS(__fixunsdfdi);
+#endif
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsdfsi.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsdfsi.c:1.1.1.2 src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsdfsi.c:1.1.1.2.22.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsdfsi.c:1.1.1.2	Sat Feb 27 18:59:30 2016
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunsdfsi.c	Sun Aug  8 10:11:39 2021
@@ -13,9 +13,17 @@
 typedef su_int fixuint_t;
 #include "fp_fixuint_impl.inc"
 
-ARM_EABI_FNALIAS(d2uiz, fixunsdfsi)
-
 COMPILER_RT_ABI su_int
 __fixunsdfsi(fp_t a) {
     return __fixuint(a);
 }
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI su_int __aeabi_d2uiz(fp_t a) {
+  return __fixunsdfsi(a);
+}
+#else
+AEABI_RTABI su_int __aeabi_d2uiz(fp_t a) COMPILER_RT_ALIAS(__fixunsdfsi);
+#endif
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunssfdi.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunssfdi.c:1.1.1.2 src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunssfdi.c:1.1.1.2.22.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunssfdi.c:1.1.1.2	Sat Feb 27 18:59:30 2016
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunssfdi.c	Sun Aug  8 10:11:39 2021
@@ -11,8 +11,6 @@
 #define SINGLE_PRECISION
 #include "fp_lib.h"
 
-ARM_EABI_FNALIAS(f2ulz, fixunssfdi)
-
 #ifndef __SOFT_FP__
 /* Support for systems that have hardware floating-point; can set the invalid
  * flag as a side-effect of computation.
@@ -43,3 +41,13 @@ __fixunssfdi(fp_t a) {
 }
 
 #endif
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI du_int __aeabi_f2ulz(fp_t a) {
+  return __fixunssfdi(a);
+}
+#else
+AEABI_RTABI du_int __aeabi_f2ulz(fp_t a) COMPILER_RT_ALIAS(__fixunssfdi);
+#endif
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunssfsi.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunssfsi.c:1.1.1.2 src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunssfsi.c:1.1.1.2.22.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunssfsi.c:1.1.1.2	Sat Feb 27 18:59:30 2016
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixunssfsi.c	Sun Aug  8 10:11:39 2021
@@ -17,9 +17,17 @@
 typedef su_int fixuint_t;
 #include "fp_fixuint_impl.inc"
 
-ARM_EABI_FNALIAS(f2uiz, fixunssfsi)
-
 COMPILER_RT_ABI su_int
 __fixunssfsi(fp_t a) {
     return __fixuint(a);
 }
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI su_int __aeabi_f2uiz(fp_t a) {
+  return __fixunssfsi(a);
+}
+#else
+AEABI_RTABI su_int __aeabi_f2uiz(fp_t a) COMPILER_RT_ALIAS(__fixunssfsi);
+#endif
+#endif

Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatdidf.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatdidf.c:1.2 src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatdidf.c:1.2.22.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatdidf.c:1.2	Sat Mar 26 07:21:11 2016
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatdidf.c	Sun Aug  8 10:11:39 2021
@@ -22,8 +22,6 @@
 
 /* seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm */
 
-ARM_EABI_FNALIAS(l2d, floatdidf)
-
 #ifndef __SOFT_FP__
 /* Support for systems that have hardware floating-point; we'll set the inexact flag
  * as a side-effect of this computation.
@@ -105,3 +103,13 @@ __floatdidf(di_int a)
     return fb.f;
 }
 #endif
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI double __aeabi_l2d(di_int a) {
+  return __floatdidf(a);
+}
+#else
+AEABI_RTABI double __aeabi_l2d(di_int a) COMPILER_RT_ALIAS(__floatdidf);
+#endif
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatundidf.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatundidf.c:1.2 src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatundidf.c:1.2.22.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatundidf.c:1.2	Sat Mar 26 07:21:11 2016
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/floatundidf.c	Sun Aug  8 10:11:39 2021
@@ -22,8 +22,6 @@
 
 #include "int_lib.h"
 
-ARM_EABI_FNALIAS(ul2d, floatundidf)
-
 #ifndef __SOFT_FP__
 /* Support for systems that have hardware floating-point; we'll set the inexact flag
  * as a side-effect of this computation.
@@ -104,3 +102,13 @@ __floatundidf(du_int a)
     return fb.f;
 }
 #endif
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI double __aeabi_ul2d(du_int a) {
+  return __floatundidf(a);
+}
+#else
+AEABI_RTABI double __aeabi_ul2d(du_int a) COMPILER_RT_ALIAS(__floatundidf);
+#endif
+#endif

Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/muldf3.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/muldf3.c:1.1.1.2 src/sys/external/bsd/compiler_rt/dist/lib/builtins/muldf3.c:1.1.1.2.34.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/muldf3.c:1.1.1.2	Sun Aug 10 10:14:04 2014
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/muldf3.c	Sun Aug  8 10:11:39 2021
@@ -15,8 +15,16 @@
 #define DOUBLE_PRECISION
 #include "fp_mul_impl.inc"
 
-ARM_EABI_FNALIAS(dmul, muldf3)
-
 COMPILER_RT_ABI fp_t __muldf3(fp_t a, fp_t b) {
     return __mulXf3__(a, b);
 }
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI fp_t __aeabi_dmul(fp_t a, fp_t b) {
+  return __muldf3(a, b);
+}
+#else
+AEABI_RTABI fp_t __aeabi_dmul(fp_t a, fp_t b) COMPILER_RT_ALIAS(__muldf3);
+#endif
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/mulsf3.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/mulsf3.c:1.1.1.2 src/sys/external/bsd/compiler_rt/dist/lib/builtins/mulsf3.c:1.1.1.2.34.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/mulsf3.c:1.1.1.2	Sun Aug 10 10:14:04 2014
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/mulsf3.c	Sun Aug  8 10:11:39 2021
@@ -15,8 +15,16 @@
 #define SINGLE_PRECISION
 #include "fp_mul_impl.inc"
 
-ARM_EABI_FNALIAS(fmul, mulsf3)
-
 COMPILER_RT_ABI fp_t __mulsf3(fp_t a, fp_t b) {
     return __mulXf3__(a, b);
 }
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI fp_t __aeabi_fmul(fp_t a, fp_t b) {
+  return __mulsf3(a, b);
+}
+#else
+AEABI_RTABI fp_t __aeabi_fmul(fp_t a, fp_t b) COMPILER_RT_ALIAS(__mulsf3);
+#endif
+#endif
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/truncdfsf2.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/truncdfsf2.c:1.1.1.2 src/sys/external/bsd/compiler_rt/dist/lib/builtins/truncdfsf2.c:1.1.1.2.34.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/truncdfsf2.c:1.1.1.2	Sun Aug 10 10:14:04 2014
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/truncdfsf2.c	Sun Aug  8 10:11:39 2021
@@ -11,8 +11,16 @@
 #define DST_SINGLE
 #include "fp_trunc_impl.inc"
 
-ARM_EABI_FNALIAS(d2f, truncdfsf2)
-
 COMPILER_RT_ABI float __truncdfsf2(double a) {
     return __truncXfYf2__(a);
 }
+
+#if defined(__ARM_EABI__)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI float __aeabi_d2f(double a) {
+  return __truncdfsf2(a);
+}
+#else
+AEABI_RTABI float __aeabi_d2f(double a) COMPILER_RT_ALIAS(__truncdfsf2);
+#endif
+#endif

Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cdcmpeq_check_nan.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cdcmpeq_check_nan.c:1.1.1.1 src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cdcmpeq_check_nan.c:1.1.1.1.26.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cdcmpeq_check_nan.c:1.1.1.1	Sat Feb 27 18:59:31 2016
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cdcmpeq_check_nan.c	Sun Aug  8 10:11:39 2021
@@ -9,8 +9,7 @@
 
 #include <stdint.h>
 
-__attribute__((pcs("aapcs")))
-__attribute__((visibility("hidden")))
+AEABI_RTABI __attribute__((visibility("hidden")))
 int __aeabi_cdcmpeq_check_nan(double a, double b) {
     return __builtin_isnan(a) || __builtin_isnan(b);
 }
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cfcmpeq_check_nan.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cfcmpeq_check_nan.c:1.1.1.1 src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cfcmpeq_check_nan.c:1.1.1.1.26.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cfcmpeq_check_nan.c:1.1.1.1	Sat Feb 27 18:59:31 2016
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cfcmpeq_check_nan.c	Sun Aug  8 10:11:39 2021
@@ -9,8 +9,7 @@
 
 #include <stdint.h>
 
-__attribute__((pcs("aapcs")))
-__attribute__((visibility("hidden")))
+AEABI_RTABI __attribute__((visibility("hidden")))
 int __aeabi_cfcmpeq_check_nan(float a, float b) {
     return __builtin_isnan(a) || __builtin_isnan(b);
 }
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_div0.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_div0.c:1.1.1.1 src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_div0.c:1.1.1.1.26.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_div0.c:1.1.1.1	Sat Feb 27 18:59:31 2016
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_div0.c	Sun Aug  8 10:11:39 2021
@@ -30,12 +30,12 @@
 extern unsigned char declaration;
 
 #if defined(__ARM_EABI__)
-int __attribute__((weak)) __attribute__((visibility("hidden")))
+AEABI_RTABI int __attribute__((weak)) __attribute__((visibility("hidden")))
 __aeabi_idiv0(int return_value) {
   return return_value;
 }
 
-long long __attribute__((weak)) __attribute__((visibility("hidden")))
+AEABI_RTABI long long __attribute__((weak)) __attribute__((visibility("hidden")))
 __aeabi_ldiv0(long long return_value) {
   return return_value;
 }
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_drsub.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_drsub.c:1.1.1.1 src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_drsub.c:1.1.1.1.26.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_drsub.c:1.1.1.1	Sat Feb 27 18:59:31 2016
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_drsub.c	Sun Aug  8 10:11:39 2021
@@ -10,10 +10,10 @@
 #define DOUBLE_PRECISION
 #include "../fp_lib.h"
 
-COMPILER_RT_ABI fp_t
+AEABI_RTABI fp_t
 __aeabi_dsub(fp_t, fp_t);
 
-COMPILER_RT_ABI fp_t
+AEABI_RTABI fp_t
 __aeabi_drsub(fp_t a, fp_t b) {
     return __aeabi_dsub(b, a);
 }
Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_frsub.c
diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_frsub.c:1.1.1.1 src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_frsub.c:1.1.1.1.26.1
--- src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_frsub.c:1.1.1.1	Sat Feb 27 18:59:31 2016
+++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_frsub.c	Sun Aug  8 10:11:39 2021
@@ -10,10 +10,10 @@
 #define SINGLE_PRECISION
 #include "../fp_lib.h"
 
-COMPILER_RT_ABI fp_t
+AEABI_RTABI fp_t
 __aeabi_fsub(fp_t, fp_t);
 
-COMPILER_RT_ABI fp_t
+AEABI_RTABI fp_t
 __aeabi_frsub(fp_t a, fp_t b) {
     return __aeabi_fsub(b, a);
 }

Index: src/sys/lib/libkern/Makefile.compiler-rt
diff -u src/sys/lib/libkern/Makefile.compiler-rt:1.9 src/sys/lib/libkern/Makefile.compiler-rt:1.9.4.1
--- src/sys/lib/libkern/Makefile.compiler-rt:1.9	Fri Apr  5 14:00:16 2019
+++ src/sys/lib/libkern/Makefile.compiler-rt	Sun Aug  8 10:11:39 2021
@@ -1,6 +1,7 @@
-# $NetBSD: Makefile.compiler-rt,v 1.9 2019/04/05 14:00:16 thorpej Exp $
+# $NetBSD: Makefile.compiler-rt,v 1.9.4.1 2021/08/08 10:11:39 martin Exp $
 
-COMPILER_RT_SRCDIR=	${NETBSDSRCDIR}/sys/external/bsd/compiler_rt/dist
+COMPILER_RT_DIR=	${NETBSDSRCDIR}/sys/external/bsd/compiler_rt
+COMPILER_RT_SRCDIR=	${COMPILER_RT_DIR}/dist
 
 .if ${MACHINE_ARCH} == "powerpc"
 COMPILER_RT_CPU_DIR=	${COMPILER_RT_SRCDIR}/lib/builtins/ppc
@@ -133,3 +134,6 @@ CPPFLAGS.int_util.c+=	-DKERNEL_USE
 COPTS.udivmoddi4.c+=	-fnon-call-exceptions
 . endif
 .endif
+
+# XXX This makes no binary changes at the moment.
+.include "${COMPILER_RT_DIR}/abi.mk"

Added files:

Index: src/sys/external/bsd/compiler_rt/abi.mk
diff -u /dev/null src/sys/external/bsd/compiler_rt/abi.mk:1.1.8.2
--- /dev/null	Sun Aug  8 10:11:40 2021
+++ src/sys/external/bsd/compiler_rt/abi.mk	Sun Aug  8 10:11:39 2021
@@ -0,0 +1,5 @@
+# $NetBSD: abi.mk,v 1.1.8.2 2021/08/08 10:11:39 martin Exp $
+
+.if !empty(MACHINE_ARCH:Mearm*hf*)
+CPPFLAGS+=	-DCOMPILER_RT_ARMHF_TARGET
+.endif

Reply via email to