package/systemd: fix compiling with headers < 4.14
In commit360a7cd738("package/systemd: bump linux-headers dependency to 4.14"), the headers requirements were bumped to 4.14 because of new build failures due to LOOP_SET_BLOCK_SIZE. Even though systemd does not recommend using it with headers < 4.15 (see [1]), it is still possible to build it and use some of its features (after fixing the build failure). Note that this was build-tested with 4.4 headers only, and not all the way back to 3.15 (which is the version requirement that was used before360a7cd738). [1]: https://github.com/systemd/systemd/blob/main/README Signed-off-by: Raphaël Mélotte <raphael.melotte@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
committed by
Thomas Petazzoni
parent
60c8807c69
commit
63b4cbacb1
@@ -0,0 +1,38 @@
|
||||
From e358793a796f8c742af4ea3f4fe398731ca46649 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Rapha=C3=ABl=20M=C3=A9lotte?= <raphael.melotte@mind.be>
|
||||
Date: Fri, 14 Jun 2024 14:37:29 +0200
|
||||
Subject: [PATCH] src/basic/missing_loop.h: fix missing LOOP_SET_BLOCK_SIZE
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Builds with kernels headers < 4.14 fail with:
|
||||
|
||||
../src/shared/loop-util.c: In function ‘loop_configure_fallback’:
|
||||
../src/shared/loop-util.c:237:31: error: ‘LOOP_SET_BLOCK_SIZE’ undeclared (first use in this function); did you mean ‘LOOP_SET_DIRECT_IO’?
|
||||
if (ioctl(fd, LOOP_SET_BLOCK_SIZE, (unsigned long) c->block_size) < 0)
|
||||
^~~~~~~~~~~~~~~~~~~
|
||||
LOOP_SET_DIRECT_IO
|
||||
|
||||
Fixes: https://github.com/systemd/systemd/issues/33341
|
||||
Upstream: https://github.com/systemd/systemd/commit/56ab1c54497d9fac74380ff9e11aaf931a917d2b
|
||||
Signed-off-by: Raphaël Mélotte <raphael.melotte@mind.be>
|
||||
---
|
||||
src/basic/missing_loop.h | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/src/basic/missing_loop.h b/src/basic/missing_loop.h
|
||||
index 7141544b64..b1505f678b 100644
|
||||
--- a/src/basic/missing_loop.h
|
||||
+++ b/src/basic/missing_loop.h
|
||||
@@ -22,3 +22,7 @@ struct loop_config {
|
||||
#ifndef LOOP_SET_STATUS_SETTABLE_FLAGS
|
||||
#define LOOP_SET_STATUS_SETTABLE_FLAGS (LO_FLAGS_AUTOCLEAR | LO_FLAGS_PARTSCAN | LO_FLAGS_DIRECT_IO)
|
||||
#endif
|
||||
+
|
||||
+#ifndef LOOP_SET_BLOCK_SIZE
|
||||
+# define LOOP_SET_BLOCK_SIZE 0x4C09
|
||||
+#endif
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -22,7 +22,7 @@ menuconfig BR2_PACKAGE_SYSTEMD
|
||||
depends on !BR2_STATIC_LIBS # kmod
|
||||
depends on BR2_TOOLCHAIN_USES_GLIBC
|
||||
depends on BR2_TOOLCHAIN_HAS_SSP
|
||||
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14 # LOOP_SET_BLOCK_SIZE
|
||||
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15
|
||||
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5
|
||||
depends on BR2_HOST_GCC_AT_LEAST_5 # host-systemd
|
||||
select BR2_PACKAGE_HAS_UDEV
|
||||
@@ -239,6 +239,7 @@ config BR2_PACKAGE_SYSTEMD_HOMED
|
||||
depends on BR2_USE_MMU # cryptsetup -> lvm2
|
||||
depends on !BR2_STATIC_LIBS # cryptsetup -> lvm2
|
||||
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # cryptsetup -> json-c
|
||||
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12 # fscrypt_key
|
||||
select BR2_PACKAGE_CRYPTSETUP
|
||||
select BR2_PACKAGE_OPENSSL
|
||||
select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL
|
||||
@@ -249,11 +250,11 @@ config BR2_PACKAGE_SYSTEMD_HOMED
|
||||
|
||||
https://www.freedesktop.org/software/systemd/man/systemd-homed.service.html
|
||||
|
||||
comment "homed support needs a toolchain w/ threads, dynamic library"
|
||||
comment "homed support needs a toolchain w/ threads, dynamic library, kernel headers >= 4.12"
|
||||
depends on BR2_USE_MMU
|
||||
depends on BR2_TOOLCHAIN_HAS_SYNC_4
|
||||
depends on !BR2_TOOLCHAIN_HAS_THREADS || \
|
||||
BR2_STATIC_LIBS
|
||||
BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12
|
||||
|
||||
config BR2_PACKAGE_SYSTEMD_HOSTNAMED
|
||||
bool "enable hostname daemon"
|
||||
|
||||
@@ -125,19 +125,19 @@ config BR2_INIT_SYSTEMD
|
||||
depends on BR2_TOOLCHAIN_USES_GLIBC
|
||||
depends on BR2_TOOLCHAIN_HAS_SSP
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14
|
||||
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15
|
||||
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5
|
||||
depends on BR2_HOST_GCC_AT_LEAST_5
|
||||
select BR2_ROOTFS_MERGED_USR
|
||||
select BR2_PACKAGE_SYSTEMD
|
||||
select BR2_PACKAGE_SKELETON_INIT_SYSTEMD if BR2_ROOTFS_SKELETON_DEFAULT
|
||||
|
||||
comment "systemd needs a glibc toolchain w/ SSP, headers >= 4.14, host and target gcc >= 5"
|
||||
comment "systemd needs a glibc toolchain w/ SSP, headers >= 3.15, host and target gcc >= 5"
|
||||
depends on BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS
|
||||
depends on BR2_USE_MMU
|
||||
depends on !BR2_TOOLCHAIN_USES_GLIBC || \
|
||||
!BR2_TOOLCHAIN_HAS_SSP || \
|
||||
!BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14 || \
|
||||
!BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15 || \
|
||||
!BR2_TOOLCHAIN_GCC_AT_LEAST_5 || \
|
||||
!BR2_HOST_GCC_AT_LEAST_5
|
||||
|
||||
|
||||
Reference in New Issue
Block a user