git: 41c730459831 - stable/13 - arm64: Disable outling atomics

From: Andrew Turner <andrew_at_FreeBSD.org>
Date: Mon, 15 Jul 2024 12:38:31 UTC
The branch stable/13 has been updated by andrew:

URL: https://cgit.FreeBSD.org/src/commit/?id=41c730459831e31e0233097bab8ae68580a68f3e

commit 41c730459831e31e0233097bab8ae68580a68f3e
Author:     Andrew Turner <andrew@FreeBSD.org>
AuthorDate: 2024-06-04 12:45:00 +0000
Commit:     Andrew Turner <andrew@FreeBSD.org>
CommitDate: 2024-07-15 12:34:54 +0000

    arm64: Disable outling atomics
    
    We don't have the symbols for this. The virtio randon number driver
    uses a C11 atomic operation. With inline atomics this is translated to
    an Armv8.0 atomic operation, with outling atomics this becomes a
    function call to a handler. As we don't have the needed function the
    kernel fails to link.
    
    Fix by disabling outline atomics for now.
    
    Reviewed by:    brooks, imp
    Sponsored by:   Arm Ltd
    Differential Revision:  https://reviews.freebsd.org/D45301
    
    (cherry picked from commit 361da40536d7f6fc6c06d54b261c299d170ccf2f)
---
 sys/conf/kern.mk | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/sys/conf/kern.mk b/sys/conf/kern.mk
index b4ae8b17e90e..7a2cc4bfa7ff 100644
--- a/sys/conf/kern.mk
+++ b/sys/conf/kern.mk
@@ -152,6 +152,8 @@ INLINE_LIMIT?=	8000
 CFLAGS += -mgeneral-regs-only
 # Reserve x18 for pcpu data
 CFLAGS += -ffixed-x18
+# TODO: support outline atomics
+CFLAGS += -mno-outline-atomics
 INLINE_LIMIT?=	8000
 .endif