The following reply was made to PR port-arm/55897; it has been noted by GNATS.
From: Rin Okuyama <rokuyama.rk%gmail.com@localhost>
To: "gnats-bugs%NetBSD.org@localhost" <gnats-bugs%NetBSD.org@localhost>
Cc:
Subject: Re: port-arm/55897: A mess with complex arithmetics in earmv7hf
Date: Fri, 11 Jun 2021 10:43:04 +0900
This problem, i.e., ABI mismatch for floating-point runtime routines for
hard-float arm, has been fixed by upstream by,
(1) providing floating-point runtime routines with correct calling
conventions, as well as,
(2) providing EABI runtime routines as is, at the same time.
The patch provided by submitter (adding -U__ARM_EABI__) only does (1).
So, the correct fix should be importing upstream fixes.
Although LLVM project itself has moved to MIT license, compiler_rt is
provided by dual licenses of BSD and MIT:
https://github.com/llvm/llvm-project/blob/main/compiler-rt/LICENSE.TXT
Therefore, there's no problem to merge upstream fixes into
sys/external/bsd.
The patches below are for sys/external/bsd/compiler_rt/dist, for (1) and
(2) above, and necessary style fixes:
http://www.netbsd.org/~rin/port-arm_55897/compiler_rt.patch0
http://www.netbsd.org/~rin/port-arm_55897/compiler_rt.patch1
http://www.netbsd.org/~rin/port-arm_55897/compiler_rt.patch2
http://www.netbsd.org/~rin/port-arm_55897/compiler_rt.patch3
http://www.netbsd.org/~rin/port-arm_55897/compiler_rt.patch4
http://www.netbsd.org/~rin/port-arm_55897/compiler_rt.patch5
Also, this patch is glue for our tree:
http://www.netbsd.org/~rin/port-arm_55897/our_tree.patch
I've confirmed that
(a) test case provided by submitter no longer fails,
(b) no regression for ATF, and
(c) no binary changes for kernels
both for GCC9 and LLVM.
I will commit these changes within few days if there's no objection.