NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

port-arm/58103: bpfjit.kmod is not built on aarch64



>Number:         58103
>Category:       port-arm
>Synopsis:       bpfjit.kmod is not built on aarch64
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-arm-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Apr 02 15:25:00 +0000 2024
>Originator:     Taylor R Campbell
>Release:        current, 10
>Organization:
The NetBPF Foundation
>Environment:
>Description:
In 2019, alnsn wired up sljit.kmod and bpfjit.kmod to the aarch64 build:

commit 1ca74251406d70324ad4ffe60bc292c3ea056eb1
Author: alnsn <alnsn%NetBSD.org@localhost>
Date:   Mon Jan 21 00:21:48 2019 +0000

    Build bpfjit and sljit modules on aarch64.

diff --git a/sys/modules/Makefile b/sys/modules/Makefile
index 3378ce99ecf4..f896b2e689dc 100644
--- a/sys/modules/Makefile
+++ b/sys/modules/Makefile
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.214 2018/12/19 13:57:52 maxv Exp $
+#	$NetBSD: Makefile,v 1.215 2019/01/21 00:21:48 alnsn Exp $
 
 .include <bsd.own.mk>
 
@@ -212,10 +212,11 @@ SUBDIR+=	ubsec		# Builds on architectures with PCI bus
 .endif
 
 .if ${MKSLJIT} != "no"
-# No modules for arm, mips and powerpc yet.
-.if ${MACHINE_ARCH} == "i386" || \
-    ${MACHINE_ARCH} == "x86_64" || \
-    ${MACHINE_ARCH} == "sparc"
+# No modules for 32-bit arm, mips and powerpc yet.
+.if ${MACHINE_ARCH} == "aarch64" || \
+    ${MACHINE_ARCH} == "i386"    || \
+    ${MACHINE_ARCH} == "sparc"   || \
+    ${MACHINE_ARCH} == "x86_64"
 SUBDIR+=	bpfjit
 SUBDIR+=	sljit
 .endif


Unfortunately, this didn't do anything by default, because by default, MKSLJIT=no on aarch64 -- we only set MKSLJIT=yes by default on i386, amd64, and sparc (not even sparc64):

   1343 #
   1344 # MK* options which default to "no".
   1345 # Note that MKZFS has a different default for some platforms, see above.
   1346 # Please keep alphabetically sorted with one entry per line.
   1347 #
   1348 _MKVARS.no= \
...
   1378 	MKSLJIT \
...
   1390 .for var in ${_MKVARS.no}
   1391 ${var}?=	${${var}.${MACHINE_ARCH}:U${${var}.${MACHINE}:Uno}}
   1392 .endfor
   1393 
   1394 .if ${MACHINE_ARCH} == "i386" || \
   1395     ${MACHINE_ARCH} == "x86_64" || \
   1396     ${MACHINE_ARCH} == "sparc"
   1397 MKSLJIT=	yes
   1398 .endif

https://nxr.netbsd.org/xref/src/share/mk/bsd.own.mk?r=1.1364#1343
>How-To-Repeat:
- try using npf on an aarch64 system
- notice that it complains about missing bpfjit
- add bpfjit.kmod to /etc/modules.conf on an aarch64 system
- reboot
- observe that modload failed because bpfjit.kmod doesn't exist
>Fix:
Yes, please!



Home | Main Index | Thread Index | Old Index