On Tue, Jan 3, 2023, at 17:19, Mark Rutland wrote: > On Tue, Jan 03, 2023 at 02:03:37PM +0000, Mark Rutland wrote: >> On Tue, Jan 03, 2023 at 01:25:35PM +0000, Mark Rutland wrote: >> > On Tue, Dec 20, 2022 at 12:08:16PM +0100, Peter Zijlstra wrote: >> ... makes GCC much happier: > >> ... I'll go check whether clang is happy with that, and how far back that can >> go, otherwise we'll need to blat the high half with a separate constaint that >> (ideally) doesn't end up allocating a pointless address register. > > Hmm... from the commit history it looks like GCC prior to 5.1 might not be > happy with that, but that *might* just be if we actually do arithmetic on the > value, and we might be ok just using it for memroy effects. I can't currently > get such an old GCC to run on my machines so I haven't been able to check. gcc-5.1 is the oldest (barely) supported compiler, the minimum was last raised from gcc-4.9 in linux-5.15. If only gcc-4.9 and older are affected, we're good on mainline but may still want a fix for stable kernels. I checked that the cross-compiler binaries from [1] still work, but I noticed that this version is missing the native aarch64-to-aarch64 compiler (x86 to aarch64 and vice versa are there), and you need to install libmpfr4 [2] as a dependency. The newer compilers (6.5.0 and up) don't have these problems. Arnd [1] https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/arm64/5.5.0/ [2] http://ftp.uk.debian.org/debian/pool/main/m/mpfr4/libmpfr4_3.1.5-1_arm64.deb