From f363bc2958812539cf248f6cf44fe519445adf7a Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 10 Jan 2022 23:52:00 +0100 Subject: [PATCH] package/btrfs-progs: fix musl build Fix the following musl build failure raised since bump to version 5.15.1 in commit 20181c3f1b7191d2b6a1b78bfbe32c1f58e87359: In file included from /usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-0/output-1/host/i586-buildroot-linux-musl/sysroot/usr/include/linux/kernel.h:4, from ./kerncompat.h:31, from common/utils.c:42: /usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-0/output-1/host/i586-buildroot-linux-musl/sysroot/usr/include/linux/sysinfo.h:7:8: error: redefinition of 'struct sysinfo' 7 | struct sysinfo { | ^~~~~~~ In file included from common/utils.c:27: /usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-0/output-1/host/i586-buildroot-linux-musl/sysroot/usr/include/sys/sysinfo.h:10:8: note: originally defined here 10 | struct sysinfo { | ^~~~~~~ Fixes: - http://autobuild.buildroot.org/results/16f44fb9dea72a7079e8e5517e760dd79d2724cc Signed-off-by: Fabrice Fontaine Signed-off-by: Thomas Petazzoni --- ...nst-h-to-fix-build-with-5-12-headers.patch | 43 ++++++++++++++++ ...-sys-sysinfo-h-conditionally-on-musl.patch | 49 +++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 package/btrfs-progs/0001-btrfs-progs-include-linux-const-h-to-fix-build-with-5-12-headers.patch create mode 100644 package/btrfs-progs/0002-btrfs-progs-include-sys-sysinfo-h-conditionally-on-musl.patch diff --git a/package/btrfs-progs/0001-btrfs-progs-include-linux-const-h-to-fix-build-with-5-12-headers.patch b/package/btrfs-progs/0001-btrfs-progs-include-linux-const-h-to-fix-build-with-5-12-headers.patch new file mode 100644 index 0000000000..b6c1a42456 --- /dev/null +++ b/package/btrfs-progs/0001-btrfs-progs-include-linux-const-h-to-fix-build-with-5-12-headers.patch @@ -0,0 +1,43 @@ +From b28f7bd9bba6f65258da48955154794f466b4104 Mon Sep 17 00:00:00 2001 +From: Bruce Ashfield +Date: Thu, 30 Dec 2021 15:23:59 +0200 +Subject: [PATCH] btrfs-progs: include linux/const.h to fix build with 5.12+ + headers + +btrfs-tools compile fails with mips, musl and 5.12+ headers. + +The definition of __ALIGN_KERNEL has moved in 5.12+ kernels, so we +add an explicit include of const.h to pickup the macro: + + | make: *** [Makefile:595: mkfs.btrfs] Error 1 + | make: *** Waiting for unfinished jobs.... + | libbtrfs.a(volumes.o): in function `dev_extent_search_start': + | /usr/src/debug/btrfs-tools/5.12.1-r0/git/kernel-shared/volumes.c:464: undefined reference to `__ALIGN_KERNEL' + | collect2: error: ld returned 1 exit status + +This is safe for older kernel's as well, since the header still +exists, and is valid to include. + +Signed-off-by: Bruce Ashfield +[remove invalid OE Upstream-status] +Signed-off-by: Stijn Tintel +Signed-off-by: David Sterba +[Retrieved from: +https://github.com/kdave/btrfs-progs/commit/b28f7bd9bba6f65258da48955154794f466b4104] +Signed-off-by: Fabrice Fontaine +--- + kerncompat.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/kerncompat.h b/kerncompat.h +index df167fe6c..2503d1afa 100644 +--- a/kerncompat.h ++++ b/kerncompat.h +@@ -29,6 +29,7 @@ + #include + #include + #include ++#include + #include + + #include diff --git a/package/btrfs-progs/0002-btrfs-progs-include-sys-sysinfo-h-conditionally-on-musl.patch b/package/btrfs-progs/0002-btrfs-progs-include-sys-sysinfo-h-conditionally-on-musl.patch new file mode 100644 index 0000000000..7473fe67cb --- /dev/null +++ b/package/btrfs-progs/0002-btrfs-progs-include-sys-sysinfo-h-conditionally-on-musl.patch @@ -0,0 +1,49 @@ +From a2511aaa85c8d95d12805dfdcbb5667fa3e30ba5 Mon Sep 17 00:00:00 2001 +From: Fabrice Fontaine +Date: Sat, 8 Jan 2022 22:44:44 +0100 +Subject: [PATCH] btrfs-progs: include sys/sysinfo.h conditionally on musl + +Make inclusion of sys/sysinfo.h conditional to avoid the following build +failure on musl: + +In file included from .../i586-buildroot-linux-musl/sysroot/usr/include/linux/kernel.h:4, + from ./kerncompat.h:31, + from common/utils.c:42: +.../i586-buildroot-linux-musl/sysroot/usr/include/linux/sysinfo.h:7:8: error: redefinition of 'struct sysinfo' + 7 | struct sysinfo { + | ^~~~~~~ +In file included from common/utils.c:27: +.../i586-buildroot-linux-musl/sysroot/usr/include/sys/sysinfo.h:10:8: note: originally defined here + 10 | struct sysinfo { + | ^~~~~~~ + +Fixes: + - http://autobuild.buildroot.org/results/16f44fb9dea72a7079e8e5517e760dd79d2724cc + +The 'struct sysinfo' is defined in linux/sysinfo.h and sys/sysinfo.h, +while both must not be included at the same time. Stop including +linux/kernel.h that sometimes unconditionally includes sys/sysinfo.h and +causes the double definition for some reason. As we now include +linux/const.h directly, there's no other effective change. + +Pull-request: #433 +Signed-off-by: Fabrice Fontaine +Signed-off-by: David Sterba +[Retrieved from: +https://github.com/kdave/btrfs-progs/commit/a2511aaa85c8d95d12805dfdcbb5667fa3e30ba5] +--- + kerncompat.h | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/kerncompat.h b/kerncompat.h +index 2503d1afa..6ca1526e2 100644 +--- a/kerncompat.h ++++ b/kerncompat.h +@@ -28,7 +28,6 @@ + #include + #include + #include +-#include + #include + #include +