zfs: Add a patch to fix aarch64 build with gcc13

Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Khem Raj 2023-05-23 09:43:59 -07:00
parent cf298e28e9
commit fe103d4322
2 changed files with 55 additions and 0 deletions

View File

@ -0,0 +1,54 @@
From aaf28a4630af60496c9d33db1d06a7d7d8983422 Mon Sep 17 00:00:00 2001
From: Sebastian Gottschall <s.gottschall@dd-wrt.com>
Date: Tue, 23 May 2023 13:50:24 +0600
Subject: [PATCH] fixes broken aarch64 inline assembly for gcc 13.1
fixes the following error
/mnt/b/yoe/master/build/tmp/work/imx8qm_var_som-yoe-linux/zfs/2.1.9-r0/build/../zfs-2.1.9/module/zfs/vdev_raidz_math_aarch64_neon_common.h:549:24: error: the register specified for 'w7' is not general enough to be used as a register variable
549 | register unsigned char w7 asm("v7") __attribute__((vector_size(16)));
| ^~
/mnt/b/yoe/master/build/tmp/work/imx8qm_var_som-yoe-linux/zfs/2.1.9-r0/build/../zfs-2.1.9/module/zfs/vdev_raidz_math_aarch64_neonx2.c:193:9: note: in expansion of macro 'GEN_X_DEFINE_6_7'
193 | GEN_X_DEFINE_6_7() \
| ^~~~~~~~~~~~~~~~
/mnt/b/yoe/master/build/tmp/work/imx8qm_var_som-yoe-linux/zfs/2.1.9-r0/build/../zfs-2.1.9/module/zfs/vdev_raidz_math_impl.h:1360:9: note: in expansion of macro 'REC_PQR_DEFINE'
1360 | REC_PQR_DEFINE();
| ^~~~~~~~~~~~~~
/mnt/b/yoe/master/build/tmp/work/imx8qm_var_som-yoe-linux/zfs/2.1.9-r0/build/../zfs-2.1.9/module/zfs/vdev_raidz_math_aarch64_neon_common.h:551:24: error: the register specified for 'w8' is not general enough to be used as a register variable
551 | register unsigned char w8 asm("v8") __attribute__((vector_size(16))); \
| ^~
/mnt/b/yoe/master/build/tmp/work/imx8qm_var_som-yoe-linux/zfs/2.1.9-r0/build/../zfs-2.1.9/module/zfs/vdev_raidz_math_aarch64_neonx2.c:194:9: note: in expansion of macro 'GEN_X_DEFINE_8_9'
194 | GEN_X_DEFINE_8_9() \
| ^~~~~~~~~~~~~~~~
/mnt/b/yoe/master/build/tmp/work/imx8qm_var_som-yoe-linux/zfs/2.1.9-r0/build/../zfs-2.1.9/module/zfs/vdev_raidz_math_impl.h:1360:9: note: in expansion of macro 'REC_PQR_DEFINE'
1360 | REC_PQR_DEFINE();
| ^~~~~~~~~~~~~~
/mnt/b/yoe/master/build/tmp/work/imx8qm_var_som-yoe-linux/zfs/2.1.9-r0/build/../zfs-2.1.9/module/zfs/vdev_raidz_math_aarch64_neon_common.h:552:24: error: the register specified for 'w9' is not general enough to be used as a register variable
552 | register unsigned char w9 asm("v9") __attribute__((vector_size(16)));
| ^~
/mnt/b/yoe/master/build/tmp/work/imx8qm_var_som-yoe-linux/zfs/2.1.9-r0/build/../zfs-2.1.9/module/zfs/vdev_raidz_math_aarch64_neonx2.c:194:9: note: in expansion of macro 'GEN_X_DEFINE_8_9'
194 | GEN_X_DEFINE_8_9() \
| ^~~~~~~~~~~~~~~~
/mnt/b/yoe/master/build/tmp/work/imx8qm_var_som-yoe-linux/zfs/2.1.9-r0/build/../zfs-2.1.9/module/zfs/vdev_raidz_math_impl.h:1360:9: note: in expansion of macro 'REC_PQR_DEFINE'
1360 | REC_PQR_DEFINE();
Signed-off-by: Sebastian Gottschall <s.gottschall@dd-wrt.com>
---
Source: https://github.com/BrainSlayer/zfs/commit/aaf28a4630af60496c9d33db1d06a7d7d8983422
module/Kbuild.in | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
--- a/module/Kbuild.in
+++ b/module/Kbuild.in
@@ -44,4 +44,10 @@ endif
subdir-asflags-y := $(ZFS_MODULE_CFLAGS) $(ZFS_MODULE_CPPFLAGS)
subdir-ccflags-y := $(ZFS_MODULE_CFLAGS) $(ZFS_MODULE_CPPFLAGS)
+ifeq ($(CONFIG_ARM64),y)
+CFLAGS_REMOVE_zfs_fletcher_aarch64_neon.o = -mgeneral-regs-only
+CFLAGS_REMOVE_vdev_raidz_math_aarch64_neon.o = -mgeneral-regs-only
+CFLAGS_REMOVE_vdev_raidz_math_aarch64_neonx2.o = -mgeneral-regs-only
+endif
+
endif

View File

@ -6,6 +6,7 @@ HOMEPAGE ="https://github.com/openzfs/zfs"
SRC_URI = "https://github.com/openzfs/zfs/releases/download/${BPN}-${PV}/${BPN}-${PV}.tar.gz \
file://0001-Define-strndupa-if-it-does-not-exist.patch \
file://aaf28a4630af60496c9d33db1d06a7d7d8983422.patch \
"
SRC_URI[sha256sum] = "6b172cdf2eb54e17fcd68f900fab33c1430c5c59848fa46fab83614922fe50f6"