sys-kernel/linux-headers: fix 5.10 for musl (sysinfo.h)

Notably fixes btrfs-progs build.

Closes: https://bugs.gentoo.org/828726
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Sam James
2021-12-30 09:39:10 +00:00
parent 1ef3659212
commit e1bd866997
2 changed files with 76 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
Earlier version: https://git.alpinelinux.org/aports/tree/main/linux-headers/0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch
https://bugs.gentoo.org/828726
From: rofl0r <retnyg@gmx.net>
Date: Mon, 20 Jan 2014 21:31:34 +0100
Subject: [PATCH 3/3] remove inclusion of sysinfo.h in kernel.h
the declaration of struct sysinfo clashes with userspace.
it's not quite clear why that header was included from kernel.h,
as none of its functionality is needed.
--- a/include/uapi/linux/kernel.h
+++ b/include/uapi/linux/kernel.h
@@ -2,7 +2,9 @@
#ifndef _UAPI_LINUX_KERNEL_H
#define _UAPI_LINUX_KERNEL_H
+#ifdef __GLIBC__
#include <linux/sysinfo.h>
#include <linux/const.h>
+#endif
#endif /* _UAPI_LINUX_KERNEL_H */

View File

@@ -0,0 +1,52 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
ETYPE="headers"
H_SUPPORTEDARCH="alpha amd64 arc arm arm64 avr32 cris frv hexagon hppa ia64 m68k metag microblaze mips mn10300 nios2 openrisc ppc ppc64 riscv s390 score sh sparc x86 xtensa"
inherit kernel-2 toolchain-funcs
detect_version
PATCH_PV=${PV} # to ease testing new versions against not existing patches
PATCH_VER="1"
PATCH_DEV="sam"
SRC_URI="${KERNEL_URI}
${PATCH_VER:+https://dev.gentoo.org/~${PATCH_DEV}/distfiles/sys-kernel/linux-headers/gentoo-headers-${PATCH_PV}-${PATCH_VER}.tar.xz}"
S="${WORKDIR}/linux-${PV}"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
BDEPEND="app-arch/xz-utils
dev-lang/perl"
# bug #816762
RESTRICT="test"
[[ -n ${PATCH_VER} ]] && PATCHES=( "${WORKDIR}"/${PATCH_PV} )
src_unpack() {
# avoid kernel-2_src_unpack
default
}
src_prepare() {
if use elibc_musl ; then
# TODO: May need forward porting to newer versions
eapply "${FILESDIR}"/${PN}-5.10-Use-stddefs.h-instead-of-compiler.h.patch
eapply "${FILESDIR}"/${PN}-5.15-remove-inclusion-sysinfo.h.patch
fi
# avoid kernel-2_src_prepare
default
}
src_test() {
emake headers_check ${xmakeopts}
}
src_install() {
kernel-2_src_install
find "${ED}" \( -name '.install' -o -name '*.cmd' \) -delete || die
}