From 4bc834b03b9438dcfd45780f31a02994c24608ba Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Fri, 13 Jan 2023 05:48:01 +0000 Subject: gentoo auto-resync : 13:01:2023 - 05:48:01 --- sys-fs/Manifest.gz | Bin 22521 -> 22525 bytes sys-fs/zfs-kmod/Manifest | 3 +- .../files/2.1.7-ppc64-ieee128-compat.patch | 217 +++++++++++++++++++++ sys-fs/zfs-kmod/zfs-kmod-2.1.7.ebuild | 7 +- sys-fs/zfs/Manifest | 3 +- sys-fs/zfs/files/2.1.7-ppc64-ieee128-compat.patch | 217 +++++++++++++++++++++ sys-fs/zfs/zfs-2.1.7-r1.ebuild | 7 +- 7 files changed, 448 insertions(+), 6 deletions(-) create mode 100644 sys-fs/zfs-kmod/files/2.1.7-ppc64-ieee128-compat.patch create mode 100644 sys-fs/zfs/files/2.1.7-ppc64-ieee128-compat.patch (limited to 'sys-fs') diff --git a/sys-fs/Manifest.gz b/sys-fs/Manifest.gz index 41081f92f1f9..84f64dec5971 100644 Binary files a/sys-fs/Manifest.gz and b/sys-fs/Manifest.gz differ diff --git a/sys-fs/zfs-kmod/Manifest b/sys-fs/zfs-kmod/Manifest index 0d6afaece07e..4028fdd34d7e 100644 --- a/sys-fs/zfs-kmod/Manifest +++ b/sys-fs/zfs-kmod/Manifest @@ -1,9 +1,10 @@ +AUX 2.1.7-ppc64-ieee128-compat.patch 6889 BLAKE2B 9214915ed5b1d149927d46f749903fbb9b4d243d993041b8c6db039dcb7a3968a315f211e010ef9373b721336d45daef264d951e7ea1e0aed01818ebccae9d02 SHA512 4e3edbe396d0c1fdb7b286417b2bf7fe114b392e09158b3f5d3e3d1c4844bf0d59263309883363175dacd63194fd0d6a120ace35c83989d0546dae825bbb91bd AUX zfs-kmod-2.1.6-fgrep.patch 2183 BLAKE2B b8c9b58cc6d94e9ddeacbe3c5eca9d040f1c6fba84b814c8c553d5c1e15334765d3190286a4ad2298762bc54f66a8b89ef69d115cfbd5a25d928170a1d46a770 SHA512 f65e7ffa8cfd00da7ad6d1fcbf5d61172c52e55ea2630f719b49750692c1c046e8baed0e04cadc841adbd804cf861ec712b0d07dbbcae7c1c3b475326045ae8c DIST zfs-2.1.6.tar.gz 34951282 BLAKE2B 615fe7a2128af77c6c855ea52b6503a78f0c992ea845b02875ac19aa9dd155c5d4110b668da91c463f96a54767ab92e67e5303572337352484c055c0a0ff9e46 SHA512 75639e4cecb281fe73a6e6bd116693f6609ace9b358385450297d175087b10938c2f489a08c657cf0a64250a8db995cbd19abc808a8523cb4c5344b3f76668d6 DIST zfs-2.1.6.tar.gz.asc 836 BLAKE2B d85a79f8824a92c4d0a9682646f79c14871ebe27764289dc87cd9b0a773b7295538780401e70c492a9e4e7097ff2b3e459f7e0a7fdce2e2a59d3f467c41d88b3 SHA512 a83fcc00a8b35f1a1f9b94097d453019333a5351a3d78656dbd9ef732655ee817ccc88068c5ba11b5ff4a285e02250aee4169cc1450025edf547a2329fca7e15 DIST zfs-2.1.7.tar.gz 35092436 BLAKE2B 9c85c3eb72f3bb39bc4fd44aaa80338ca197a4e8183436fee73cd56705abfdaecfaf1b6fbe8dd508ccce707c8259c7ab6e1733b60b17757f0a7ff92d4e52bbad SHA512 6a31eb8fbee90ad1abcfedb9000991761aff7591b11362eb5ec6e0bb4b785a7004a251439409d7bd3f51fc995c859614da6313655337952f70bae07ac8ee0140 DIST zfs-2.1.7.tar.gz.asc 836 BLAKE2B 648fb818860a1cecc2ec42f23102e0466c038bfe48f5feca1ab58afb9cb439a0fe51cb89941f63a05c14d3b6f95c64dd3910c9a06b9cac14c467b963c65c2948 SHA512 4d4fef707bdfc37a82eb79aa0a21c71e30779bcf2ac54fe2df45a03e3302e2a45cb9f4e4ff0122b892b1e608a9f09e86d1334e0c7d9bf681780505f6e1439f9f EBUILD zfs-kmod-2.1.6.ebuild 5486 BLAKE2B 32e4582834c915881847938f42591797e4ba7dff695b3093681de90ed20ebe36d4df78fe8a869a3cc3b285dd65eab15b43a125d2a5cb68379fe22bb5475bb35a SHA512 0eb5ab0d272cb20f0072a442dd6fcedbfc01391ae8ef30c80418495af6116dc82916500f0474f4139ea54e4934d4d1db8a0d45c9bf284c644869f46753dc2b7f -EBUILD zfs-kmod-2.1.7.ebuild 5487 BLAKE2B 5bee54fefdc88bcc6580070be8ec8695830adf5a10da3e83d9ce99ffdbd0b97b30eebb9696e8c67ea848e28897af839ce18f2369a76d464199b1bd89e8ffeebb SHA512 17dca83c2b22f199d1e62a5ea71af6e26d9f56419a422107795bd896c4ff8b59320c2c12ed9b6e149ac0e1ef95ee4bcf955ec9bc504c8577bb173b508533ab97 +EBUILD zfs-kmod-2.1.7.ebuild 5582 BLAKE2B 48b67e37786fe08ceff7701156d1982ccc602ad4881fc0ca9629f55dac1063db909b747fc2a75b46c545e0abf662f54036e056e4e296749228868b57d343c047 SHA512 c0a54af01573bf4801acfb289332293c3d7c4fcd55f45423e50673f0a27632ce315e6182e5645486baf5102e3d40ae8a65e32011d185b2d6984240488c668c93 EBUILD zfs-kmod-9999.ebuild 6569 BLAKE2B e058687c1724cae0c0fb33826320a7ae05220efc5156268b3189841c70075d36bbd98d7273c73b68893a6a2577790012b9f7aec324ca0f00f07f7d58d5a90347 SHA512 cc1c71c7141c6ef9ccb522c8f8599d648975e9d066ab58ced971e48155e3c9caf4a597c13166db8c10ed0cd73c8255772b461f2b0f6b32beb6b708c1339755b9 MISC metadata.xml 651 BLAKE2B 477c5d768a2eddab7bc0c14d0845801e25bfd9298fe229a132d7ff11a8560988d0230ec5d4b1447df32f58b9754df0cbe989f2a5600cd3fa99124ea4edc45cdd SHA512 d9bf0598c87bcdaab7d81dd5502caf1400f3c8d3834a6770630d85ed365cd4ebb3beeebae72d2d4d49bcdd0aa6cd709aa57cb2af4195dfc04a9c0cef89cfd724 diff --git a/sys-fs/zfs-kmod/files/2.1.7-ppc64-ieee128-compat.patch b/sys-fs/zfs-kmod/files/2.1.7-ppc64-ieee128-compat.patch new file mode 100644 index 000000000000..5613cb8ca9d1 --- /dev/null +++ b/sys-fs/zfs-kmod/files/2.1.7-ppc64-ieee128-compat.patch @@ -0,0 +1,217 @@ +From 8324d738fdb3096bd97336476bb399e6c312289a Mon Sep 17 00:00:00 2001 +From: Richard Yao +Date: Thu, 12 Jan 2023 11:06:57 -0500 +Subject: [PATCH] Linux ppc64le ieee128 compat: Do not redefine __asm on + external headers + +There is an external assembly declaration extension in GNU C that glibc +uses when building with ieee128 floating point support on ppc64le. +Marking that as volatile makes no sense, so the build breaks. + +It does not make sense to only mark this as volatile on Linux, since if +do not want the compiler reordering things on Linux, we do not want the +compiler reordering things on any other platform, so we stop treating +Linux specially and just manually inline the CPP macro so that we can +eliminate it. This should fix the build on ppc64le. + +Closes openzfs/zfs#14308 +Signed-off-by: Richard Yao +--- + .../vdev_raidz_math_powerpc_altivec_common.h | 44 +++++++++---------- + 1 file changed, 20 insertions(+), 24 deletions(-) + +diff --git a/module/zfs/vdev_raidz_math_powerpc_altivec_common.h b/module/zfs/vdev_raidz_math_powerpc_altivec_common.h +index 46d42c5e241..f76eb47a9c6 100644 +--- a/module/zfs/vdev_raidz_math_powerpc_altivec_common.h ++++ b/module/zfs/vdev_raidz_math_powerpc_altivec_common.h +@@ -26,10 +26,6 @@ + #include + #include + +-#ifdef __linux__ +-#define __asm __asm__ __volatile__ +-#endif +- + #define _REG_CNT(_0, _1, _2, _3, _4, _5, _6, _7, N, ...) N + #define REG_CNT(r...) _REG_CNT(r, 8, 7, 6, 5, 4, 3, 2, 1) + +@@ -142,7 +138,7 @@ typedef struct v { + { \ + switch (REG_CNT(r)) { \ + case 8: \ +- __asm( \ ++ __asm__ __volatile__( \ + "lvx 21,0,%[SRC0]\n" \ + "lvx 20,0,%[SRC1]\n" \ + "lvx 19,0,%[SRC2]\n" \ +@@ -172,7 +168,7 @@ typedef struct v { + : "v18", "v19", "v20", "v21"); \ + break; \ + case 4: \ +- __asm( \ ++ __asm__ __volatile__( \ + "lvx 21,0,%[SRC0]\n" \ + "lvx 20,0,%[SRC1]\n" \ + "lvx 19,0,%[SRC2]\n" \ +@@ -189,7 +185,7 @@ typedef struct v { + : "v18", "v19", "v20", "v21"); \ + break; \ + case 2: \ +- __asm( \ ++ __asm__ __volatile__( \ + "lvx 21,0,%[SRC0]\n" \ + "lvx 20,0,%[SRC1]\n" \ + "vxor " VR0(r) "," VR0(r) ",21\n" \ +@@ -208,7 +204,7 @@ typedef struct v { + { \ + switch (REG_CNT(r)) { \ + case 8: \ +- __asm( \ ++ __asm__ __volatile__( \ + "vxor " VR4(r) "," VR4(r) "," VR0(r) "\n" \ + "vxor " VR5(r) "," VR5(r) "," VR1(r) "\n" \ + "vxor " VR6(r) "," VR6(r) "," VR2(r) "\n" \ +@@ -217,7 +213,7 @@ typedef struct v { + : RVR0(r), RVR1(r), RVR2(r), RVR3(r)); \ + break; \ + case 4: \ +- __asm( \ ++ __asm__ __volatile__( \ + "vxor " VR2(r) "," VR2(r) "," VR0(r) "\n" \ + "vxor " VR3(r) "," VR3(r) "," VR1(r) "\n" \ + : UVR2(r), UVR3(r) \ +@@ -232,7 +228,7 @@ typedef struct v { + { \ + switch (REG_CNT(r)) { \ + case 8: \ +- __asm( \ ++ __asm__ __volatile__( \ + "vxor " VR0(r) "," VR0(r) "," VR0(r) "\n" \ + "vxor " VR1(r) "," VR1(r) "," VR1(r) "\n" \ + "vxor " VR2(r) "," VR2(r) "," VR2(r) "\n" \ +@@ -245,7 +241,7 @@ typedef struct v { + WVR4(r), WVR5(r), WVR6(r), WVR7(r)); \ + break; \ + case 4: \ +- __asm( \ ++ __asm__ __volatile__( \ + "vxor " VR0(r) "," VR0(r) "," VR0(r) "\n" \ + "vxor " VR1(r) "," VR1(r) "," VR1(r) "\n" \ + "vxor " VR2(r) "," VR2(r) "," VR2(r) "\n" \ +@@ -253,7 +249,7 @@ typedef struct v { + : WVR0(r), WVR1(r), WVR2(r), WVR3(r)); \ + break; \ + case 2: \ +- __asm( \ ++ __asm__ __volatile__( \ + "vxor " VR0(r) "," VR0(r) "," VR0(r) "\n" \ + "vxor " VR1(r) "," VR1(r) "," VR1(r) "\n" \ + : WVR0(r), WVR1(r)); \ +@@ -267,7 +263,7 @@ typedef struct v { + { \ + switch (REG_CNT(r)) { \ + case 8: \ +- __asm( \ ++ __asm__ __volatile__( \ + "vor " VR4(r) "," VR0(r) "," VR0(r) "\n" \ + "vor " VR5(r) "," VR1(r) "," VR1(r) "\n" \ + "vor " VR6(r) "," VR2(r) "," VR2(r) "\n" \ +@@ -276,7 +272,7 @@ typedef struct v { + : RVR0(r), RVR1(r), RVR2(r), RVR3(r)); \ + break; \ + case 4: \ +- __asm( \ ++ __asm__ __volatile__( \ + "vor " VR2(r) "," VR0(r) "," VR0(r) "\n" \ + "vor " VR3(r) "," VR1(r) "," VR1(r) "\n" \ + : WVR2(r), WVR3(r) \ +@@ -291,7 +287,7 @@ typedef struct v { + { \ + switch (REG_CNT(r)) { \ + case 8: \ +- __asm( \ ++ __asm__ __volatile__( \ + "lvx " VR0(r) " ,0,%[SRC0]\n" \ + "lvx " VR1(r) " ,0,%[SRC1]\n" \ + "lvx " VR2(r) " ,0,%[SRC2]\n" \ +@@ -312,7 +308,7 @@ typedef struct v { + [SRC7] "r" ((OFFSET(src, 112)))); \ + break; \ + case 4: \ +- __asm( \ ++ __asm__ __volatile__( \ + "lvx " VR0(r) " ,0,%[SRC0]\n" \ + "lvx " VR1(r) " ,0,%[SRC1]\n" \ + "lvx " VR2(r) " ,0,%[SRC2]\n" \ +@@ -324,7 +320,7 @@ typedef struct v { + [SRC3] "r" ((OFFSET(src, 48)))); \ + break; \ + case 2: \ +- __asm( \ ++ __asm__ __volatile__( \ + "lvx " VR0(r) " ,0,%[SRC0]\n" \ + "lvx " VR1(r) " ,0,%[SRC1]\n" \ + : WVR0(r), WVR1(r) \ +@@ -340,7 +336,7 @@ typedef struct v { + { \ + switch (REG_CNT(r)) { \ + case 8: \ +- __asm( \ ++ __asm__ __volatile__( \ + "stvx " VR0(r) " ,0,%[DST0]\n" \ + "stvx " VR1(r) " ,0,%[DST1]\n" \ + "stvx " VR2(r) " ,0,%[DST2]\n" \ +@@ -362,7 +358,7 @@ typedef struct v { + : "memory"); \ + break; \ + case 4: \ +- __asm( \ ++ __asm__ __volatile__( \ + "stvx " VR0(r) " ,0,%[DST0]\n" \ + "stvx " VR1(r) " ,0,%[DST1]\n" \ + "stvx " VR2(r) " ,0,%[DST2]\n" \ +@@ -375,7 +371,7 @@ typedef struct v { + : "memory"); \ + break; \ + case 2: \ +- __asm( \ ++ __asm__ __volatile__( \ + "stvx " VR0(r) " ,0,%[DST0]\n" \ + "stvx " VR1(r) " ,0,%[DST1]\n" \ + : : [DST0] "r" ((OFFSET(dst, 0))), \ +@@ -400,7 +396,7 @@ typedef struct v { + + #define MUL2_SETUP() \ + { \ +- __asm( \ ++ __asm__ __volatile__( \ + "vspltisb " VR(16) ",14\n" \ + "vspltisb " VR(17) ",15\n" \ + "vaddubm " VR(16) "," VR(17) "," VR(16) "\n" \ +@@ -412,7 +408,7 @@ typedef struct v { + { \ + switch (REG_CNT(r)) { \ + case 4: \ +- __asm( \ ++ __asm__ __volatile__( \ + "vcmpgtsb 19," VR(17) "," VR0(r) "\n" \ + "vcmpgtsb 18," VR(17) "," VR1(r) "\n" \ + "vcmpgtsb 21," VR(17) "," VR2(r) "\n" \ +@@ -434,7 +430,7 @@ typedef struct v { + : "v18", "v19", "v20", "v21"); \ + break; \ + case 2: \ +- __asm( \ ++ __asm__ __volatile__( \ + "vcmpgtsb 19," VR(17) "," VR0(r) "\n" \ + "vcmpgtsb 18," VR(17) "," VR1(r) "\n" \ + "vand 19,19," VR(16) "\n" \ +@@ -478,7 +474,7 @@ typedef struct v { + { \ + switch (REG_CNT(r)) { \ + case 2: \ +- __asm( \ ++ __asm__ __volatile__( \ + /* lts for upper part */ \ + "vspltisb 15,15\n" \ + "lvx 10,0,%[lt0]\n" \ diff --git a/sys-fs/zfs-kmod/zfs-kmod-2.1.7.ebuild b/sys-fs/zfs-kmod/zfs-kmod-2.1.7.ebuild index d12dfd611acc..b996ea790d4b 100644 --- a/sys-fs/zfs-kmod/zfs-kmod-2.1.7.ebuild +++ b/sys-fs/zfs-kmod/zfs-kmod-2.1.7.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -26,7 +26,7 @@ else ZFS_KERNEL_DEP="${ZFS_KERNEL_DEP%%.*}.$(( ${ZFS_KERNEL_DEP##*.} + 1))" if [[ ${PV} != *_rc* ]]; then - KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~sparc" + KEYWORDS="~amd64 ~arm64 ppc64 ~riscv ~sparc" fi fi @@ -62,6 +62,9 @@ DOCS=( AUTHORS COPYRIGHT META README.md ) PATCHES=( "${FILESDIR}"/${PN}-2.1.6-fgrep.patch + + # https://github.com/openzfs/zfs/issues/14308 + "${FILESDIR}"/2.1.7-ppc64-ieee128-compat.patch ) pkg_pretend() { diff --git a/sys-fs/zfs/Manifest b/sys-fs/zfs/Manifest index 46945ef2b306..9159e0968924 100644 --- a/sys-fs/zfs/Manifest +++ b/sys-fs/zfs/Manifest @@ -3,13 +3,14 @@ AUX 2.1.5-dracut-zfs-missing.patch 309 BLAKE2B e66e700757aa6498b71d714c13e29e671 AUX 2.1.5-r2-dracut-non-root.patch 1823 BLAKE2B b6954c1648742cb19b1cea5709bdba78477731232bfd6a180f2b2aa179ba2e10ac968af6658fc9fd9a7a03127098c7e4401f3ad803e603d4e114d995b370da3d SHA512 33b3244de91f3d51ef2c2eff2ea4515890b7fa9b39a077b4034f770772077e75e6c5db187c76aa19dd2fb60dac91de35d70fbd84be3704bb950bbf8d4656c29a AUX 2.1.6-fgrep.patch 2183 BLAKE2B b8c9b58cc6d94e9ddeacbe3c5eca9d040f1c6fba84b814c8c553d5c1e15334765d3190286a4ad2298762bc54f66a8b89ef69d115cfbd5a25d928170a1d46a770 SHA512 f65e7ffa8cfd00da7ad6d1fcbf5d61172c52e55ea2630f719b49750692c1c046e8baed0e04cadc841adbd804cf861ec712b0d07dbbcae7c1c3b475326045ae8c AUX 2.1.7-dracut-include-systemd-overrides.patch 1749 BLAKE2B e88570b8f29d882f43a114837f94572a91fc317008ebb02f9d5df9e5a8ba21b5b18a2f48099e7bb1e42c40a9b25af991070b77c11a07d0c194e31dcdf003e9c4 SHA512 0df9068d59cddfa5c7dafb2fcb0f25c700ef48a4e461c07ed6edca57c5d26443d3904bb61131a7b731fd88f2d85eb091c9397daf3198addcc16e478acf4f85dc +AUX 2.1.7-ppc64-ieee128-compat.patch 6889 BLAKE2B 9214915ed5b1d149927d46f749903fbb9b4d243d993041b8c6db039dcb7a3968a315f211e010ef9373b721336d45daef264d951e7ea1e0aed01818ebccae9d02 SHA512 4e3edbe396d0c1fdb7b286417b2bf7fe114b392e09158b3f5d3e3d1c4844bf0d59263309883363175dacd63194fd0d6a120ace35c83989d0546dae825bbb91bd AUX 2.1.7-systemd-zed-restart-always.patch 919 BLAKE2B db72605abfeac766c297fdb617b4dc5e89de949770d407cd206da8e46b6abab6c64b35967bc94c5b35df819dbace12b5e425cb38fc93b4daddef32fceec395b3 SHA512 9070ee16494362e3b7aa8dfe5b47661efbb5cf65ea32e625bd3a7aa5cc0634fb3751e2e9859b7380e0975bbde3294fb2b718444f60309f7cb8c10afabcce3483 DIST zfs-2.1.6.tar.gz 34951282 BLAKE2B 615fe7a2128af77c6c855ea52b6503a78f0c992ea845b02875ac19aa9dd155c5d4110b668da91c463f96a54767ab92e67e5303572337352484c055c0a0ff9e46 SHA512 75639e4cecb281fe73a6e6bd116693f6609ace9b358385450297d175087b10938c2f489a08c657cf0a64250a8db995cbd19abc808a8523cb4c5344b3f76668d6 DIST zfs-2.1.6.tar.gz.asc 836 BLAKE2B d85a79f8824a92c4d0a9682646f79c14871ebe27764289dc87cd9b0a773b7295538780401e70c492a9e4e7097ff2b3e459f7e0a7fdce2e2a59d3f467c41d88b3 SHA512 a83fcc00a8b35f1a1f9b94097d453019333a5351a3d78656dbd9ef732655ee817ccc88068c5ba11b5ff4a285e02250aee4169cc1450025edf547a2329fca7e15 DIST zfs-2.1.7.tar.gz 35092436 BLAKE2B 9c85c3eb72f3bb39bc4fd44aaa80338ca197a4e8183436fee73cd56705abfdaecfaf1b6fbe8dd508ccce707c8259c7ab6e1733b60b17757f0a7ff92d4e52bbad SHA512 6a31eb8fbee90ad1abcfedb9000991761aff7591b11362eb5ec6e0bb4b785a7004a251439409d7bd3f51fc995c859614da6313655337952f70bae07ac8ee0140 DIST zfs-2.1.7.tar.gz.asc 836 BLAKE2B 648fb818860a1cecc2ec42f23102e0466c038bfe48f5feca1ab58afb9cb439a0fe51cb89941f63a05c14d3b6f95c64dd3910c9a06b9cac14c467b963c65c2948 SHA512 4d4fef707bdfc37a82eb79aa0a21c71e30779bcf2ac54fe2df45a03e3302e2a45cb9f4e4ff0122b892b1e608a9f09e86d1334e0c7d9bf681780505f6e1439f9f EBUILD zfs-2.1.6.ebuild 9268 BLAKE2B 34c2071a754fccc4bb6f5e3fbf4b08c232c439dc0185f46adb8ffbdd202a749db4a5432cc8d0ee0e8d25866b594bd2c56f50911886d406cf7fd9a27e511aa6dd SHA512 46d39812ac6b53f7b18592c969bcea0a484f2a81cdcaab165be980c65669c9fae04db6b3c5e7fd341ee6dedd61a789e1faebf31d146bfb6e11e25f9426a845e1 -EBUILD zfs-2.1.7-r1.ebuild 9403 BLAKE2B a28e60b915ba7b1573b56cf8d3fe7350d20c2888c051e6372c96889e73775ec86bc4f2f2fd2a757619099a1e47c57089fb04a598ca40d23ce32a08a4be7f8921 SHA512 a03f38c35ceae601c6ea1347d6ea38b0c0436369112aab81224c270660800a3a110f16f5758d09a364d64714a1b0365cd92b414bb97109063406afc8524bbec0 +EBUILD zfs-2.1.7-r1.ebuild 9498 BLAKE2B 04f215c957ce197dc203446757c4cc29f0580dfea04b839a46416b1dda26afccf31f8e53e03c776a03eecacbfb0d4f91073262ed85ec70dfe9620b2224ff5b63 SHA512 e27589d8d3b2f6ec805ee8d8033d3c1c3db7760f75bea8bbed81a8f3c81828513f9ae1ceb73f7569600b8807a5c62e82f98790d1f470cb1f181531aebe45302f EBUILD zfs-2.1.7.ebuild 9271 BLAKE2B aa605c85b5f99bf557fbbdaaf3c0326d17ba27dae43b9c244afa24a86d95a23e67ac59e0a378c40cb642a2bab76fd0b7cae29c50d3d8c715fa840b55f1d164d6 SHA512 0d99aacb7b4a4acbcc29a93667ddece0c06d1373d084530df11d126bce6f3c992a93d523ce1b142ae9574c392523aeb26fe51acdc505985ac187ffaa4c3db5c2 EBUILD zfs-9999.ebuild 8930 BLAKE2B e6afef604bc8797943eb9c8c01c2f5b621acb2ff682a58eb19773bb66b5f10941321203ed3368dbaa6941396c566da7de4df30368df0042a9b68f72b0136d72c SHA512 8696b3b6d389b39b8d6273daad62e3f2d46abf25872e4e050d3f7c5155cb4f790f0f55ff6b341d0f174e6f46dd3dd5a7d9547844cf3ee5e3b23cd29a2e9a71bf MISC metadata.xml 2205 BLAKE2B 82e20a6f5906b8cbbc6eb6e9520cf4e4213ce9cba2b056df5d5db0d4deaa4a20822a88e26286446d105326a8f61c807047a0e1e64494faac48d8ed5708807c02 SHA512 222981f945e98ddef646c593cbc8889f3526af4901c28ab5775ba760ca7d3aff3129b2699e8b7337b59fd33cbba388915cb5b2dc09674432c606f41ff27dbd9b diff --git a/sys-fs/zfs/files/2.1.7-ppc64-ieee128-compat.patch b/sys-fs/zfs/files/2.1.7-ppc64-ieee128-compat.patch new file mode 100644 index 000000000000..5613cb8ca9d1 --- /dev/null +++ b/sys-fs/zfs/files/2.1.7-ppc64-ieee128-compat.patch @@ -0,0 +1,217 @@ +From 8324d738fdb3096bd97336476bb399e6c312289a Mon Sep 17 00:00:00 2001 +From: Richard Yao +Date: Thu, 12 Jan 2023 11:06:57 -0500 +Subject: [PATCH] Linux ppc64le ieee128 compat: Do not redefine __asm on + external headers + +There is an external assembly declaration extension in GNU C that glibc +uses when building with ieee128 floating point support on ppc64le. +Marking that as volatile makes no sense, so the build breaks. + +It does not make sense to only mark this as volatile on Linux, since if +do not want the compiler reordering things on Linux, we do not want the +compiler reordering things on any other platform, so we stop treating +Linux specially and just manually inline the CPP macro so that we can +eliminate it. This should fix the build on ppc64le. + +Closes openzfs/zfs#14308 +Signed-off-by: Richard Yao +--- + .../vdev_raidz_math_powerpc_altivec_common.h | 44 +++++++++---------- + 1 file changed, 20 insertions(+), 24 deletions(-) + +diff --git a/module/zfs/vdev_raidz_math_powerpc_altivec_common.h b/module/zfs/vdev_raidz_math_powerpc_altivec_common.h +index 46d42c5e241..f76eb47a9c6 100644 +--- a/module/zfs/vdev_raidz_math_powerpc_altivec_common.h ++++ b/module/zfs/vdev_raidz_math_powerpc_altivec_common.h +@@ -26,10 +26,6 @@ + #include + #include + +-#ifdef __linux__ +-#define __asm __asm__ __volatile__ +-#endif +- + #define _REG_CNT(_0, _1, _2, _3, _4, _5, _6, _7, N, ...) N + #define REG_CNT(r...) _REG_CNT(r, 8, 7, 6, 5, 4, 3, 2, 1) + +@@ -142,7 +138,7 @@ typedef struct v { + { \ + switch (REG_CNT(r)) { \ + case 8: \ +- __asm( \ ++ __asm__ __volatile__( \ + "lvx 21,0,%[SRC0]\n" \ + "lvx 20,0,%[SRC1]\n" \ + "lvx 19,0,%[SRC2]\n" \ +@@ -172,7 +168,7 @@ typedef struct v { + : "v18", "v19", "v20", "v21"); \ + break; \ + case 4: \ +- __asm( \ ++ __asm__ __volatile__( \ + "lvx 21,0,%[SRC0]\n" \ + "lvx 20,0,%[SRC1]\n" \ + "lvx 19,0,%[SRC2]\n" \ +@@ -189,7 +185,7 @@ typedef struct v { + : "v18", "v19", "v20", "v21"); \ + break; \ + case 2: \ +- __asm( \ ++ __asm__ __volatile__( \ + "lvx 21,0,%[SRC0]\n" \ + "lvx 20,0,%[SRC1]\n" \ + "vxor " VR0(r) "," VR0(r) ",21\n" \ +@@ -208,7 +204,7 @@ typedef struct v { + { \ + switch (REG_CNT(r)) { \ + case 8: \ +- __asm( \ ++ __asm__ __volatile__( \ + "vxor " VR4(r) "," VR4(r) "," VR0(r) "\n" \ + "vxor " VR5(r) "," VR5(r) "," VR1(r) "\n" \ + "vxor " VR6(r) "," VR6(r) "," VR2(r) "\n" \ +@@ -217,7 +213,7 @@ typedef struct v { + : RVR0(r), RVR1(r), RVR2(r), RVR3(r)); \ + break; \ + case 4: \ +- __asm( \ ++ __asm__ __volatile__( \ + "vxor " VR2(r) "," VR2(r) "," VR0(r) "\n" \ + "vxor " VR3(r) "," VR3(r) "," VR1(r) "\n" \ + : UVR2(r), UVR3(r) \ +@@ -232,7 +228,7 @@ typedef struct v { + { \ + switch (REG_CNT(r)) { \ + case 8: \ +- __asm( \ ++ __asm__ __volatile__( \ + "vxor " VR0(r) "," VR0(r) "," VR0(r) "\n" \ + "vxor " VR1(r) "," VR1(r) "," VR1(r) "\n" \ + "vxor " VR2(r) "," VR2(r) "," VR2(r) "\n" \ +@@ -245,7 +241,7 @@ typedef struct v { + WVR4(r), WVR5(r), WVR6(r), WVR7(r)); \ + break; \ + case 4: \ +- __asm( \ ++ __asm__ __volatile__( \ + "vxor " VR0(r) "," VR0(r) "," VR0(r) "\n" \ + "vxor " VR1(r) "," VR1(r) "," VR1(r) "\n" \ + "vxor " VR2(r) "," VR2(r) "," VR2(r) "\n" \ +@@ -253,7 +249,7 @@ typedef struct v { + : WVR0(r), WVR1(r), WVR2(r), WVR3(r)); \ + break; \ + case 2: \ +- __asm( \ ++ __asm__ __volatile__( \ + "vxor " VR0(r) "," VR0(r) "," VR0(r) "\n" \ + "vxor " VR1(r) "," VR1(r) "," VR1(r) "\n" \ + : WVR0(r), WVR1(r)); \ +@@ -267,7 +263,7 @@ typedef struct v { + { \ + switch (REG_CNT(r)) { \ + case 8: \ +- __asm( \ ++ __asm__ __volatile__( \ + "vor " VR4(r) "," VR0(r) "," VR0(r) "\n" \ + "vor " VR5(r) "," VR1(r) "," VR1(r) "\n" \ + "vor " VR6(r) "," VR2(r) "," VR2(r) "\n" \ +@@ -276,7 +272,7 @@ typedef struct v { + : RVR0(r), RVR1(r), RVR2(r), RVR3(r)); \ + break; \ + case 4: \ +- __asm( \ ++ __asm__ __volatile__( \ + "vor " VR2(r) "," VR0(r) "," VR0(r) "\n" \ + "vor " VR3(r) "," VR1(r) "," VR1(r) "\n" \ + : WVR2(r), WVR3(r) \ +@@ -291,7 +287,7 @@ typedef struct v { + { \ + switch (REG_CNT(r)) { \ + case 8: \ +- __asm( \ ++ __asm__ __volatile__( \ + "lvx " VR0(r) " ,0,%[SRC0]\n" \ + "lvx " VR1(r) " ,0,%[SRC1]\n" \ + "lvx " VR2(r) " ,0,%[SRC2]\n" \ +@@ -312,7 +308,7 @@ typedef struct v { + [SRC7] "r" ((OFFSET(src, 112)))); \ + break; \ + case 4: \ +- __asm( \ ++ __asm__ __volatile__( \ + "lvx " VR0(r) " ,0,%[SRC0]\n" \ + "lvx " VR1(r) " ,0,%[SRC1]\n" \ + "lvx " VR2(r) " ,0,%[SRC2]\n" \ +@@ -324,7 +320,7 @@ typedef struct v { + [SRC3] "r" ((OFFSET(src, 48)))); \ + break; \ + case 2: \ +- __asm( \ ++ __asm__ __volatile__( \ + "lvx " VR0(r) " ,0,%[SRC0]\n" \ + "lvx " VR1(r) " ,0,%[SRC1]\n" \ + : WVR0(r), WVR1(r) \ +@@ -340,7 +336,7 @@ typedef struct v { + { \ + switch (REG_CNT(r)) { \ + case 8: \ +- __asm( \ ++ __asm__ __volatile__( \ + "stvx " VR0(r) " ,0,%[DST0]\n" \ + "stvx " VR1(r) " ,0,%[DST1]\n" \ + "stvx " VR2(r) " ,0,%[DST2]\n" \ +@@ -362,7 +358,7 @@ typedef struct v { + : "memory"); \ + break; \ + case 4: \ +- __asm( \ ++ __asm__ __volatile__( \ + "stvx " VR0(r) " ,0,%[DST0]\n" \ + "stvx " VR1(r) " ,0,%[DST1]\n" \ + "stvx " VR2(r) " ,0,%[DST2]\n" \ +@@ -375,7 +371,7 @@ typedef struct v { + : "memory"); \ + break; \ + case 2: \ +- __asm( \ ++ __asm__ __volatile__( \ + "stvx " VR0(r) " ,0,%[DST0]\n" \ + "stvx " VR1(r) " ,0,%[DST1]\n" \ + : : [DST0] "r" ((OFFSET(dst, 0))), \ +@@ -400,7 +396,7 @@ typedef struct v { + + #define MUL2_SETUP() \ + { \ +- __asm( \ ++ __asm__ __volatile__( \ + "vspltisb " VR(16) ",14\n" \ + "vspltisb " VR(17) ",15\n" \ + "vaddubm " VR(16) "," VR(17) "," VR(16) "\n" \ +@@ -412,7 +408,7 @@ typedef struct v { + { \ + switch (REG_CNT(r)) { \ + case 4: \ +- __asm( \ ++ __asm__ __volatile__( \ + "vcmpgtsb 19," VR(17) "," VR0(r) "\n" \ + "vcmpgtsb 18," VR(17) "," VR1(r) "\n" \ + "vcmpgtsb 21," VR(17) "," VR2(r) "\n" \ +@@ -434,7 +430,7 @@ typedef struct v { + : "v18", "v19", "v20", "v21"); \ + break; \ + case 2: \ +- __asm( \ ++ __asm__ __volatile__( \ + "vcmpgtsb 19," VR(17) "," VR0(r) "\n" \ + "vcmpgtsb 18," VR(17) "," VR1(r) "\n" \ + "vand 19,19," VR(16) "\n" \ +@@ -478,7 +474,7 @@ typedef struct v { + { \ + switch (REG_CNT(r)) { \ + case 2: \ +- __asm( \ ++ __asm__ __volatile__( \ + /* lts for upper part */ \ + "vspltisb 15,15\n" \ + "lvx 10,0,%[lt0]\n" \ diff --git a/sys-fs/zfs/zfs-2.1.7-r1.ebuild b/sys-fs/zfs/zfs-2.1.7-r1.ebuild index 219f1c6e1d88..c17785b32c14 100644 --- a/sys-fs/zfs/zfs-2.1.7-r1.ebuild +++ b/sys-fs/zfs/zfs-2.1.7-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -24,7 +24,7 @@ else S="${WORKDIR}/${P%_rc?}" if [[ ${PV} != *_rc* ]]; then - KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~sparc" + KEYWORDS="~amd64 ~arm64 ppc64 ~riscv ~sparc" fi fi @@ -113,6 +113,9 @@ PATCHES=( # systemd fixups "${FILESDIR}"/2.1.7-dracut-include-systemd-overrides.patch "${FILESDIR}"/2.1.7-systemd-zed-restart-always.patch + + # https://github.com/openzfs/zfs/issues/14308 + "${FILESDIR}"/2.1.7-ppc64-ieee128-compat.patch ) pkg_pretend() { -- cgit v1.2.3