Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 1 Aug 2023 20:04:16 GMT
From:      Mark Johnston <markj@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: e3e6fc371322 - releng/13.2 - Work around VNET and DPCPU related panics on aarch64
Message-ID:  <202308012004.371K4Gge013019@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch releng/13.2 has been updated by markj:

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

commit e3e6fc3713229e5075473b9e0e9a66699e8a322b
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2023-07-23 13:48:36 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2023-08-01 19:50:47 +0000

    Work around VNET and DPCPU related panics on aarch64
    
    lld >= 14 and recent GNU ld can relax adrp+add and adrp+ldr
    instructions, which breaks VNET and DPCPU when used in modules.
    
    Until VNET and DPCPU can be fixed to deal with these relaxed
    instructions, disable linker relaxation for now.
    
    PR:             264094
    Reviewed by:    markj
    MFC after:      3 days
    Differential Revision: https://reviews.freebsd.org/D41156
    
    (cherry picked from commit 80e4ac2964a11edef456a15b77e43aadeaf273a2)
    (cherry picked from commit f1f27dfa4ad9da53fcdfc6aae644fab83bda4e76)
    
    Approved by:    so
    Security:       FreeBSD-EN-23:08.vnet
---
 sys/conf/kmod.mk | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/sys/conf/kmod.mk b/sys/conf/kmod.mk
index 2a2ab1d02277..b616be508ce4 100644
--- a/sys/conf/kmod.mk
+++ b/sys/conf/kmod.mk
@@ -168,6 +168,13 @@ CFLAGS+=	-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer
 CFLAGS+=	-fPIC
 .endif
 
+.if ${MACHINE_CPUARCH} == "aarch64"
+# https://bugs.freebsd.org/264094
+# lld >= 14 and recent GNU ld can relax adrp+add and adrp+ldr instructions,
+# which breaks VNET.
+LDFLAGS+=	--no-relax
+.endif
+
 # Temporary workaround for PR 196407, which contains the fascinating details.
 # Don't allow clang to use fpu instructions or registers in kernel modules.
 .if ${MACHINE_CPUARCH} == arm



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202308012004.371K4Gge013019>