summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2022-01-24 23:18:08 +0000
committerSam James <sam@gentoo.org>2022-01-24 23:18:25 +0000
commit067256ef4a116f738c502fd21a560445acbfd2a6 (patch)
tree199dfdca6bb592696a0aacf2863121fdad21c81d /sys-fs/btrfs-progs
parentdev-python/lazy-object-proxy: Remove old (diff)
downloadgentoo-067256ef4a116f738c502fd21a560445acbfd2a6.tar.gz
gentoo-067256ef4a116f738c502fd21a560445acbfd2a6.tar.bz2
gentoo-067256ef4a116f738c502fd21a560445acbfd2a6.zip
sys-fs/btrfs-progs: allow older linux-headers too w/ upstream patch
Bug: https://bugs.gentoo.org/831817 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'sys-fs/btrfs-progs')
-rw-r--r--sys-fs/btrfs-progs/btrfs-progs-5.16.ebuild6
-rw-r--r--sys-fs/btrfs-progs/files/5.16-linux-headers-before-5.11.patch40
2 files changed, 45 insertions, 1 deletions
diff --git a/sys-fs/btrfs-progs/btrfs-progs-5.16.ebuild b/sys-fs/btrfs-progs/btrfs-progs-5.16.ebuild
index bfedcff31bd3..015b81367170 100644
--- a/sys-fs/btrfs-progs/btrfs-progs-5.16.ebuild
+++ b/sys-fs/btrfs-progs/btrfs-progs-5.16.ebuild
@@ -45,7 +45,7 @@ RDEPEND="
zstd? ( app-arch/zstd:0= )
"
DEPEND="${RDEPEND}
- >=sys-kernel/linux-headers-5.11
+ >=sys-kernel/linux-headers-5.10
convert? ( sys-apps/acl )
python? (
$(python_gen_cond_dep '
@@ -79,6 +79,10 @@ fi
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+PATCHES=(
+ "${FILESDIR}"/5.16-linux-headers-before-5.11.patch
+)
+
pkg_setup() {
use python && python-single-r1_pkg_setup
}
diff --git a/sys-fs/btrfs-progs/files/5.16-linux-headers-before-5.11.patch b/sys-fs/btrfs-progs/files/5.16-linux-headers-before-5.11.patch
new file mode 100644
index 000000000000..184656d96d22
--- /dev/null
+++ b/sys-fs/btrfs-progs/files/5.16-linux-headers-before-5.11.patch
@@ -0,0 +1,40 @@
+https://github.com/kdave/btrfs-progs/commit/b0cfe12c4d4b8b4ef335cdf4ddefcbdcd1b70d58.patch
+https://bugs.gentoo.org/831817
+
+From b0cfe12c4d4b8b4ef335cdf4ddefcbdcd1b70d58 Mon Sep 17 00:00:00 2001
+From: David Sterba <dsterba@suse.com>
+Date: Thu, 13 Jan 2022 14:47:08 +0100
+Subject: [PATCH] btrfs-progs: kerncompat: add local definition for alignment
+ macros
+
+There's still problem left with compilation on musl and kernel < 5.11,
+because __ALIGN_KERNEL is not defined anymore:
+
+../bin/ld: kernel-shared/volumes.o: in function `create_chunk':
+volumes.c:(.text+0x17f8): undefined reference to `__ALIGN_KERNEL'
+
+Due to the entangled includes and unconditional definition of
+__ALIGN_KERNEL, we can't use #ifdef in kerncompat.h to define it
+eventually (as kerncompat.h is the first include). Instead add local
+definitions of the macros and rename them to avoid name clashes.
+
+Pull-request: #433
+Signed-off-by: David Sterba <dsterba@suse.com>
+--- a/kerncompat.h
++++ b/kerncompat.h
+@@ -359,7 +359,14 @@ do { \
+
+ /* Alignment check */
+ #define IS_ALIGNED(x, a) (((x) & ((typeof(x))(a) - 1)) == 0)
+-#define ALIGN(x, a) __ALIGN_KERNEL((x), (a))
++
++/*
++ * Alignment, copied and renamed from /usr/include/linux/const.h to work around
++ * issues caused by moving the definition in 5.12
++ */
++#define __ALIGN_KERNEL__(x, a) __ALIGN_KERNEL_MASK__(x, (typeof(x))(a) - 1)
++#define __ALIGN_KERNEL_MASK__(x, mask) (((x) + (mask)) & ~(mask))
++#define ALIGN(x, a) __ALIGN_KERNEL__((x), (a))
+
+ static inline int is_power_of_2(unsigned long n)
+ {