git: df63a94a3d5f - main - filesystems/lkl: add support for powerpc64*
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 11 Sep 2026 12:50:00 UTC
The branch main has been updated by pkubaj:
URL: https://cgit.FreeBSD.org/ports/commit/?id=df63a94a3d5fd3d3a4a8b8331da369d872127a3b
commit df63a94a3d5fd3d3a4a8b8331da369d872127a3b
Author: Piotr Kubaj <pkubaj@FreeBSD.org>
AuthorDate: 2026-08-31 11:52:30 +0000
Commit: Piotr Kubaj <pkubaj@FreeBSD.org>
CommitDate: 2026-09-11 12:49:04 +0000
filesystems/lkl: add support for powerpc64*
---
filesystems/lkl/Makefile | 5 +++--
filesystems/lkl/files/patch-arch_lkl_Kconfig | 23 +++++++++++++++++++++
filesystems/lkl/files/patch-arch_lkl_Makefile | 11 ++++++++++
.../patch-arch_lkl_include_uapi_asm_host__ops.h | 11 ++++++++++
.../{patch-Makefile => patch-tools_lkl_Makefile} | 6 +++---
.../lkl/files/patch-tools_lkl_Makefile.autoconf | 24 ++++++++++++++++++++++
.../{patch-Targets => patch-tools_lkl_Targets} | 6 +++---
.../lkl/files/patch-tools_lkl_lib_virtio__blk.c | 20 ++++++++++++++++++
8 files changed, 98 insertions(+), 8 deletions(-)
diff --git a/filesystems/lkl/Makefile b/filesystems/lkl/Makefile
index c56be9005f7e..aa1e7dedfaa2 100644
--- a/filesystems/lkl/Makefile
+++ b/filesystems/lkl/Makefile
@@ -1,6 +1,6 @@
PORTNAME= lkl
DISTVERSION= 4.16.g20180628
-PORTREVISION= 4
+PORTREVISION= 5
CATEGORIES= filesystems
PKGNAMEPREFIX= fusefs-
@@ -24,10 +24,11 @@ USE_GITHUB= yes
GH_PROJECT= linux
GH_TAGNAME= 86dd3afb590eccc1903611bdaa8bac87757eb80d
-ONLY_FOR_ARCHS= amd64
+ONLY_FOR_ARCHS= amd64 powerpc64 powerpc64le
ONLY_FOR_ARCHS_REASON=ld formats not available for other architectures
WRKSRC_SUBDIR= tools/lkl
+PATCH_WRKSRC= ${WRKSRC:H:H}
MAKE_JOBS_UNSAFE=yes
MAKE_ARGS+= V=1
# Need ports versions of 'bc', 'ld' to build!
diff --git a/filesystems/lkl/files/patch-arch_lkl_Kconfig b/filesystems/lkl/files/patch-arch_lkl_Kconfig
new file mode 100644
index 000000000000..82b6b549ca2f
--- /dev/null
+++ b/filesystems/lkl/files/patch-arch_lkl_Kconfig
@@ -0,0 +1,23 @@
+--- arch/lkl/Kconfig.orig 2018-06-28 05:58:16 UTC
++++ arch/lkl/Kconfig
+@@ -20,6 +20,8 @@ config LKL
+ select HAVE_UNDERSCORE_SYMBOL_PREFIX if OUTPUT_FORMAT = "pe-i386"
+ select 64BIT if OUTPUT_FORMAT = "elf64-x86-64-freebsd"
+ select 64BIT if OUTPUT_FORMAT = "elf64-littleaarch64"
++ select 64BIT if OUTPUT_FORMAT = "elf64-powerpc-freebsd"
++ select 64BIT if OUTPUT_FORMAT = "elf64-powerpcle-freebsd"
+ select NET
+ select MULTIUSER
+ select INET
+@@ -56,7 +58,10 @@ config BIG_ENDIAN
+ def_bool n
+
+ config BIG_ENDIAN
+- def_bool n
++ def_bool y if OUTPUT_FORMAT = "elf64-powerpc-freebsd"
++
++config CPU_BIG_ENDIAN
++ def_bool BIG_ENDIAN
+
+ config GENERIC_CSUM
+ def_bool y
diff --git a/filesystems/lkl/files/patch-arch_lkl_Makefile b/filesystems/lkl/files/patch-arch_lkl_Makefile
new file mode 100644
index 000000000000..311a85f7244f
--- /dev/null
+++ b/filesystems/lkl/files/patch-arch_lkl_Makefile
@@ -0,0 +1,11 @@
+--- arch/lkl/Makefile.orig 2018-06-28 05:58:16 UTC
++++ arch/lkl/Makefile
+@@ -2,7 +2,7 @@ KBUILD_CFLAGS += -fno-builtin
+
+ KBUILD_CFLAGS += -fno-builtin
+
+-ifneq (,$(filter $(OUTPUT_FORMAT),elf64-x86-64 elf64-x86-64-freebsd elf32-littlearm elf64-littleaarch64))
++ifneq (,$(filter $(OUTPUT_FORMAT),elf64-x86-64 elf64-x86-64-freebsd elf32-littlearm elf64-littleaarch64 elf64-powerpc-freebsd elf64-powerpcle-freebsd))
+ KBUILD_CFLAGS += -fPIC
+ else ifneq (,$(filter $(OUTPUT_FORMAT),pe-i386 pe-x86-64 ))
+ ifneq ($(OUTPUT_FORMAT),pe-x86-64)
diff --git a/filesystems/lkl/files/patch-arch_lkl_include_uapi_asm_host__ops.h b/filesystems/lkl/files/patch-arch_lkl_include_uapi_asm_host__ops.h
new file mode 100644
index 000000000000..a53b0a46ac97
--- /dev/null
+++ b/filesystems/lkl/files/patch-arch_lkl_include_uapi_asm_host__ops.h
@@ -0,0 +1,11 @@
+--- arch/lkl/include/uapi/asm/host_ops.h.orig 2018-06-28 05:58:16 UTC
++++ arch/lkl/include/uapi/asm/host_ops.h
+@@ -7,7 +7,7 @@ struct lkl_jmp_buf {
+ struct lkl_tls_key;
+ typedef unsigned long lkl_thread_t;
+ struct lkl_jmp_buf {
+- unsigned long buf[32];
++ unsigned long buf[128];
+ };
+
+ /**
diff --git a/filesystems/lkl/files/patch-Makefile b/filesystems/lkl/files/patch-tools_lkl_Makefile
similarity index 79%
rename from filesystems/lkl/files/patch-Makefile
rename to filesystems/lkl/files/patch-tools_lkl_Makefile
index 09b164e2c5f6..1a41f1afa466 100644
--- a/filesystems/lkl/files/patch-Makefile
+++ b/filesystems/lkl/files/patch-tools_lkl_Makefile
@@ -1,6 +1,6 @@
---- Makefile.orig 2018-06-12 22:43:19 UTC
-+++ Makefile
-@@ -61,10 +61,10 @@ endif
+--- tools/lkl/Makefile.orig 2018-06-28 05:58:16 UTC
++++ tools/lkl/Makefile
+@@ -62,10 +62,10 @@ $(OUTPUT)lib/lkl.o: bin/stat
# rule to build lkl.o
$(OUTPUT)lib/lkl.o: bin/stat
diff --git a/filesystems/lkl/files/patch-tools_lkl_Makefile.autoconf b/filesystems/lkl/files/patch-tools_lkl_Makefile.autoconf
new file mode 100644
index 000000000000..d6d2174bd1d6
--- /dev/null
+++ b/filesystems/lkl/files/patch-tools_lkl_Makefile.autoconf
@@ -0,0 +1,24 @@
+--- tools/lkl/Makefile.autoconf.orig 2018-06-28 05:58:16 UTC
++++ tools/lkl/Makefile.autoconf
+@@ -1,4 +1,4 @@
+-POSIX_HOSTS=elf64-x86-64 elf32-i386 elf64-x86-64-freebsd elf32-littlearm elf64-littleaarch64
++POSIX_HOSTS=elf64-x86-64 elf32-i386 elf64-x86-64-freebsd elf32-littlearm elf64-littleaarch64 elf64-powerpc-freebsd elf64-powerpcle-freebsd
+ NT_HOSTS=pe-i386 pe-x86-64
+
+ define set_autoconf_var
+@@ -51,13 +51,13 @@ define posix_host
+ CFLAGS += -fPIC -pthread
+ SOSUF := .so
+ $(if $(call is_defined,__ANDROID__),$(call android_host),LDLIBS += -lrt -lpthread)
+- $(if $(filter $(1),elf64-x86-64-freebsd),$(call bsd_host))
++ $(if $(filter $(1),elf64-x86-64-freebsd elf64-powerpc-freebsd elf64-powerpcle-freebsd),$(call bsd_host))
+ $(if $(filter yes,$(dpdk)),$(call virtio_net_dpdk))
+ $(if $(filter yes,$(vde)),$(call virtio_net_vde))
+ $(if $(strip $(call find_include,fuse.h)),$(call set_autoconf_var,FUSE,y))
+ $(if $(strip $(call find_include,archive.h)),$(call set_autoconf_var,ARCHIVE,y))
+ $(if $(strip $(call find_include,linux/if_tun.h)),$(call set_autoconf_var,VIRTIO_NET_MACVTAP,y))
+- $(if $(filter $(1),elf64-x86-64-freebsd),$(call set_autoconf_var,NEEDS_LARGP,y))
++ $(if $(filter $(1),elf64-x86-64-freebsd elf64-powerpc-freebsd elf64-powerpcle-freebsd),$(call set_autoconf_var,NEEDS_LARGP,y))
+ endef
+
+ define nt64_host
diff --git a/filesystems/lkl/files/patch-Targets b/filesystems/lkl/files/patch-tools_lkl_Targets
similarity index 76%
rename from filesystems/lkl/files/patch-Targets
rename to filesystems/lkl/files/patch-tools_lkl_Targets
index e1fe24075c09..c50ca4e32ac6 100644
--- a/filesystems/lkl/files/patch-Targets
+++ b/filesystems/lkl/files/patch-tools_lkl_Targets
@@ -1,6 +1,6 @@
---- Targets.orig 2018-06-12 22:43:19 UTC
-+++ Targets
-@@ -10,15 +10,6 @@ LDLIBS_lib/hijack/liblkl-hijack-$(LKL_HOST_CONFIG_ANDR
+--- tools/lkl/Targets.orig 2018-06-28 05:58:16 UTC
++++ tools/lkl/Targets
+@@ -10,15 +10,6 @@ LDLIBS_lklfuse-y := -lfuse
progs-$(LKL_HOST_CONFIG_FUSE) += lklfuse
LDLIBS_lklfuse-y := -lfuse
diff --git a/filesystems/lkl/files/patch-tools_lkl_lib_virtio__blk.c b/filesystems/lkl/files/patch-tools_lkl_lib_virtio__blk.c
new file mode 100644
index 000000000000..4a5ab34f43bb
--- /dev/null
+++ b/filesystems/lkl/files/patch-tools_lkl_lib_virtio__blk.c
@@ -0,0 +1,20 @@
+--- tools/lkl/lib/virtio_blk.c.orig 2018-06-28 05:58:16 UTC
++++ tools/lkl/lib/virtio_blk.c
+@@ -51,7 +51,7 @@ static int blk_enqueue(struct virtio_dev *dev, int q,
+
+ lkl_req.type = le32toh(h->type);
+ lkl_req.prio = le32toh(h->ioprio);
+- lkl_req.sector = le32toh(h->sector);
++ lkl_req.sector = le64toh(h->sector);
+ lkl_req.buf = &req->buf[1];
+ lkl_req.count = req->buf_count - 2;
+
+@@ -98,7 +98,7 @@ int lkl_disk_add(struct lkl_disk *disk)
+ ret = -LKL_ENOMEM;
+ goto out_free;
+ }
+- dev->config.capacity = capacity / 512;
++ dev->config.capacity = htole64(capacity / 512);
+
+ ret = virtio_dev_setup(&dev->dev, 1, 32);
+ if (ret)