Complete Yocto mirror with license table for TQMa6UL (2038-compliance)
- 264 license table entries with exact download URLs (224/264 resolved) - Complete sources/ directory with all BitBake recipes - Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl) - Full traceability for Softwarefreigabeantrag - GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4 - License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
SUMMARY = "Sanitized set of kernel headers for the C library's use"
|
||||
HOMEPAGE = "https://www.kernel.org/"
|
||||
DESCRIPTION = "Designed to maintain an Application Programming Interface (API) stable version of the Linux headers"
|
||||
SECTION = "devel"
|
||||
LICENSE = "GPL-2.0-only"
|
||||
|
||||
#########################################################################
|
||||
#### PLEASE READ
|
||||
#########################################################################
|
||||
#
|
||||
# You're probably looking here thinking you need to create some new copy
|
||||
# of linux-libc-headers since you have your own custom kernel. To put
|
||||
# this simply, you DO NOT.
|
||||
#
|
||||
# Why? These headers are used to build the libc. If you customise the
|
||||
# headers you are customising the libc and the libc becomes machine
|
||||
# specific. Most people do not add custom libc extensions to the kernel
|
||||
# and have a machine specific libc.
|
||||
#
|
||||
# But you have some kernel headers you need for some driver? That is fine
|
||||
# but get them from STAGING_KERNEL_BUILDDIR where the kernel installs itself.
|
||||
# This will make the package using them machine specific but this is much
|
||||
# better than having a machine specific C library. This does mean your
|
||||
# recipe needs a
|
||||
# do_configure[depends] += "virtual/kernel:do_shared_workdir"
|
||||
# but again, that is fine and makes total sense.
|
||||
#
|
||||
# There can also be a case where your kernel extremely old and you want
|
||||
# an older libc ABI for that old kernel. The headers installed by this
|
||||
# recipe should still be a standard mainline kernel, not your own custom
|
||||
# one.
|
||||
#
|
||||
# -- RP
|
||||
|
||||
LIC_FILES_CHKSUM ?= "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
|
||||
|
||||
RECIPE_NO_UPDATE_REASON = "Recipe is updated through a separate process"
|
||||
|
||||
python __anonymous () {
|
||||
major = d.getVar("PV").split('.')[0]
|
||||
if major == "3":
|
||||
d.setVar("HEADER_FETCH_VER", "3.0")
|
||||
elif major == "4":
|
||||
d.setVar("HEADER_FETCH_VER", "4.x")
|
||||
elif major == "5":
|
||||
d.setVar("HEADER_FETCH_VER", "5.x")
|
||||
elif major == "6":
|
||||
d.setVar("HEADER_FETCH_VER", "6.x")
|
||||
else:
|
||||
d.setVar("HEADER_FETCH_VER", "2.6")
|
||||
}
|
||||
|
||||
MAJ_VER = "${@oe.utils.trim_version("${PV}", 2).split('.')[0]}"
|
||||
MIN_VER = "${@oe.utils.trim_version("${PV}", 2).split('.')[1]}"
|
||||
|
||||
inherit kernel-arch pkgconfig multilib_header
|
||||
|
||||
KORG_ARCHIVE_COMPRESSION ?= "xz"
|
||||
|
||||
SRC_URI = "${KERNELORG_MIRROR}/linux/kernel/v${HEADER_FETCH_VER}/linux-${PV}.tar.${KORG_ARCHIVE_COMPRESSION}"
|
||||
UPSTREAM_CHECK_URI = "https://www.kernel.org/"
|
||||
|
||||
S = "${WORKDIR}/linux-${PV}"
|
||||
|
||||
EXTRA_OEMAKE = " HOSTCC="${BUILD_CC}" HOSTCPP="${BUILD_CPP}""
|
||||
|
||||
do_configure[noexec] = "1"
|
||||
|
||||
do_compile[noexec] = "1"
|
||||
|
||||
do_install() {
|
||||
oe_runmake headers_install INSTALL_HDR_PATH=${D}${exec_prefix}
|
||||
# Kernel should not be exporting this header
|
||||
rm -f ${D}${exec_prefix}/include/scsi/scsi.h
|
||||
|
||||
# The ..install.cmd conflicts between various configure runs
|
||||
find ${D}${includedir} -name ..install.cmd | xargs rm -f
|
||||
}
|
||||
|
||||
do_install:append:aarch64 () {
|
||||
do_install_armmultilib
|
||||
}
|
||||
|
||||
do_install:append:arm () {
|
||||
do_install_armmultilib
|
||||
}
|
||||
|
||||
do_install:append:armeb () {
|
||||
do_install_armmultilib
|
||||
}
|
||||
|
||||
do_install_armmultilib () {
|
||||
if [ ${MAJ_VER} -gt 5 ]; then
|
||||
ARM_KVM_HEADER=""
|
||||
else
|
||||
if [ ${MAJ_VER} -eq 5 ] && [ ${MIN_VER} -ge 8 ]; then
|
||||
ARM_KVM_HEADER=""
|
||||
else
|
||||
ARM_KVM_HEADER="asm/kvm.h"
|
||||
fi
|
||||
fi
|
||||
oe_multilib_header asm/auxvec.h asm/bitsperlong.h asm/byteorder.h asm/fcntl.h asm/hwcap.h asm/ioctls.h $ARM_KVM_HEADER asm/kvm_para.h asm/mman.h asm/param.h asm/perf_regs.h asm/bpf_perf_event.h
|
||||
oe_multilib_header asm/posix_types.h asm/ptrace.h asm/setup.h asm/sigcontext.h asm/siginfo.h asm/signal.h asm/stat.h asm/statfs.h asm/swab.h asm/types.h asm/unistd.h
|
||||
}
|
||||
|
||||
BBCLASSEXTEND = "nativesdk"
|
||||
|
||||
DEV_PKG_DEPENDENCY = ""
|
||||
RRECOMMENDS:${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
|
||||
|
||||
INHIBIT_DEFAULT_DEPS = "1"
|
||||
DEPENDS += "unifdef-native bison-native rsync-native"
|
||||
@@ -0,0 +1,40 @@
|
||||
From 06e785aeb9ea8a43d0a3967c1ba6e69d758e82d4 Mon Sep 17 00:00:00 2001
|
||||
From: Matt Jan <zoo868e@gmail.com>
|
||||
Date: Tue, 14 May 2024 12:10:46 +0800
|
||||
Subject: [PATCH] connector: Fix invalid conversion in cn_proc.h
|
||||
|
||||
The implicit conversion from unsigned int to enum
|
||||
proc_cn_event is invalid, so explicitly cast it
|
||||
for compilation in a C++ compiler.
|
||||
/usr/include/linux/cn_proc.h: In function 'proc_cn_event valid_event(proc_cn_event)':
|
||||
/usr/include/linux/cn_proc.h:72:17: error: invalid conversion from 'unsigned int' to 'proc_cn_event' [-fpermissive]
|
||||
72 | ev_type &= PROC_EVENT_ALL;
|
||||
| ^
|
||||
| |
|
||||
| unsigned int
|
||||
|
||||
Signed-off-by: Matt Jan <zoo868e@gmail.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
Upstream-Status: Backport [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=9258d795978f398ecf2d222a8388cff81d37d34d]
|
||||
---
|
||||
include/uapi/linux/cn_proc.h | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/include/uapi/linux/cn_proc.h b/include/uapi/linux/cn_proc.h
|
||||
index f2afb7cc4926..18e3745b86cd 100644
|
||||
--- a/include/uapi/linux/cn_proc.h
|
||||
+++ b/include/uapi/linux/cn_proc.h
|
||||
@@ -69,8 +69,7 @@ struct proc_input {
|
||||
|
||||
static inline enum proc_cn_event valid_event(enum proc_cn_event ev_type)
|
||||
{
|
||||
- ev_type &= PROC_EVENT_ALL;
|
||||
- return ev_type;
|
||||
+ return (enum proc_cn_event)(ev_type & PROC_EVENT_ALL);
|
||||
}
|
||||
|
||||
/*
|
||||
--
|
||||
2.50.1
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
From 9ca6c6a510bda90954aa2532711200b89dd1df89 Mon Sep 17 00:00:00 2001
|
||||
From: Dave Martin <Dave.Martin@arm.com>
|
||||
Date: Tue, 11 Dec 2018 19:26:45 +0000
|
||||
Subject: [PATCH 1/3] kbuild: install_headers.sh: Strip _UAPI from
|
||||
#if-defined() guards
|
||||
|
||||
install_headers.sh knows how to strip the _UAPI prefix from #ifdef/
|
||||
ifndef and #define directives used to guard headers against multiple
|
||||
or inappropriate inclusion. Currently this does not work for guards
|
||||
in the "#if defined()" style, which may be needed for non-trivial
|
||||
cases.
|
||||
|
||||
This patch adds similar logic so that the _UAPI prefix is also
|
||||
stripped from guard directives written using "#if defined()" etc.
|
||||
|
||||
This is not completely foolproof, but will work for simple cases of
|
||||
using #if defined() to guard against inappropriate header inclusion.
|
||||
|
||||
Signed-off-by: Dave Martin <Dave.Martin@arm.com>
|
||||
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
|
||||
|
||||
Upstream-Status: Submitted [https://www.spinics.net/lists/arm-kernel/msg694800.html]
|
||||
---
|
||||
scripts/headers_install.sh | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
Index: linux-5.4/scripts/headers_install.sh
|
||||
===================================================================
|
||||
--- linux-5.4.orig/scripts/headers_install.sh
|
||||
+++ linux-5.4/scripts/headers_install.sh
|
||||
@@ -36,6 +36,7 @@
|
||||
s/(^|[^a-zA-Z0-9])__packed([^a-zA-Z0-9_]|$)/\1__attribute__((packed))\2/g
|
||||
s/(^|[[:space:](])(inline|asm|volatile)([[:space:](]|$)/\1__\2__\3/g
|
||||
s@#(ifndef|define|endif[[:space:]]*/[*])[[:space:]]*_UAPI@#\1 @
|
||||
+ :1;s/(#(if|elif)(.*[^A-Za-z0-9_])defined\([[:space:]]*)_UAPI/\1/;t1
|
||||
' $INFILE > $TMPFILE || exit 1
|
||||
|
||||
scripts/unifdef -U__KERNEL__ -D__EXPORTED_HEADERS__ $TMPFILE > $OUTFILE
|
||||
@@ -0,0 +1,90 @@
|
||||
From 2872f5d8bcef84e62b15b37ba4ffeccfb6402dad Mon Sep 17 00:00:00 2001
|
||||
From: rofl0r <retnyg@gmx.net>
|
||||
Date: Wed, 22 Jan 2014 00:48:28 +0100
|
||||
Subject: [PATCH 1/3] libc-compat.h: fix some issues arising from in6.h
|
||||
|
||||
namely redefinition of some structs provided by netinet/in.h.
|
||||
---
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Upstream-Status: Submitted
|
||||
|
||||
include/uapi/linux/libc-compat.h | 25 ++++++++-----------------
|
||||
1 file changed, 8 insertions(+), 17 deletions(-)
|
||||
|
||||
Index: linux-4.15/include/uapi/linux/libc-compat.h
|
||||
===================================================================
|
||||
--- linux-4.15.orig/include/uapi/linux/libc-compat.h 2018-02-05 17:37:44.724314379 -0500
|
||||
+++ linux-4.15/include/uapi/linux/libc-compat.h 2018-02-05 17:38:02.148913820 -0500
|
||||
@@ -49,13 +49,12 @@
|
||||
#ifndef _UAPI_LIBC_COMPAT_H
|
||||
#define _UAPI_LIBC_COMPAT_H
|
||||
|
||||
-/* We have included glibc headers... */
|
||||
-#if defined(__GLIBC__)
|
||||
+#ifndef __KERNEL__ /* we're used from userspace */
|
||||
|
||||
-/* Coordinate with glibc net/if.h header. */
|
||||
-#if defined(_NET_IF_H) && defined(__USE_MISC)
|
||||
+/* Coordinate with libc net/if.h header. */
|
||||
+#if defined(_NET_IF_H)
|
||||
|
||||
-/* GLIBC headers included first so don't define anything
|
||||
+/* LIBC headers included first so don't define anything
|
||||
* that would already be defined. */
|
||||
|
||||
#define __UAPI_DEF_IF_IFCONF 0
|
||||
@@ -99,15 +98,7 @@
|
||||
#define __UAPI_DEF_IN_CLASS 0
|
||||
|
||||
#define __UAPI_DEF_IN6_ADDR 0
|
||||
-/* The exception is the in6_addr macros which must be defined
|
||||
- * if the glibc code didn't define them. This guard matches
|
||||
- * the guard in glibc/inet/netinet/in.h which defines the
|
||||
- * additional in6_addr macros e.g. s6_addr16, and s6_addr32. */
|
||||
-#if defined(__USE_MISC) || defined (__USE_GNU)
|
||||
#define __UAPI_DEF_IN6_ADDR_ALT 0
|
||||
-#else
|
||||
-#define __UAPI_DEF_IN6_ADDR_ALT 1
|
||||
-#endif
|
||||
#define __UAPI_DEF_SOCKADDR_IN6 0
|
||||
#define __UAPI_DEF_IPV6_MREQ 0
|
||||
#define __UAPI_DEF_IPPROTO_V6 0
|
||||
@@ -115,10 +106,10 @@
|
||||
#define __UAPI_DEF_IN6_PKTINFO 0
|
||||
#define __UAPI_DEF_IP6_MTUINFO 0
|
||||
|
||||
-#else
|
||||
+#else /* defined(_NETINET_IN_H) */
|
||||
|
||||
/* Linux headers included first, and we must define everything
|
||||
- * we need. The expectation is that glibc will check the
|
||||
+ * we need. The expectation is that libc will check the
|
||||
* __UAPI_DEF_* defines and adjust appropriately. */
|
||||
#define __UAPI_DEF_IN_ADDR 1
|
||||
#define __UAPI_DEF_IN_IPPROTO 1
|
||||
@@ -128,7 +119,7 @@
|
||||
#define __UAPI_DEF_IN_CLASS 1
|
||||
|
||||
#define __UAPI_DEF_IN6_ADDR 1
|
||||
-/* We unconditionally define the in6_addr macros and glibc must
|
||||
+/* We unconditionally define the in6_addr macros and libc must
|
||||
* coordinate. */
|
||||
#define __UAPI_DEF_IN6_ADDR_ALT 1
|
||||
#define __UAPI_DEF_SOCKADDR_IN6 1
|
||||
@@ -170,7 +161,7 @@
|
||||
* or we are being included in the kernel, then define everything
|
||||
* that we need. Check for previous __UAPI_* definitions to give
|
||||
* unsupported C libraries a way to opt out of any kernel definition. */
|
||||
-#else /* !defined(__GLIBC__) */
|
||||
+#else /* __KERNEL__ */
|
||||
|
||||
/* Definitions for if.h */
|
||||
#ifndef __UAPI_DEF_IF_IFCONF
|
||||
@@ -262,6 +253,6 @@
|
||||
#define __UAPI_DEF_XATTR 1
|
||||
#endif
|
||||
|
||||
-#endif /* __GLIBC__ */
|
||||
+#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* _UAPI_LIBC_COMPAT_H */
|
||||
@@ -0,0 +1,46 @@
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Subject: [v2,2/3] uapi glibc compat: fix build if libc defines IFF_ECHO
|
||||
From: Hauke Mehrtens <hauke@hauke-m.de>
|
||||
X-Patchwork-Id: 9686293
|
||||
Message-Id: <20170418210036.26039-3-hauke@hauke-m.de>
|
||||
To: davem@davemloft.net, netdev@vger.kernel.org
|
||||
Cc: linux-kernel@vger.kernel.org, jarod@redhat.com, jogo@openwrt.org,
|
||||
david.heidelberger@ixit.cz, maillist-linux@barfooze.de,
|
||||
mikko.rapeli@iki.fi, dwmw2@infradead.org, Hauke Mehrtens <hauke@hauke-m.de>
|
||||
Date: Tue, 18 Apr 2017 23:00:35 +0200
|
||||
|
||||
musl 1.1.15 defines IFF_ECHO and the other net_device_flags options.
|
||||
When a user application includes linux/if.h and net/if.h the compile
|
||||
will fail.
|
||||
|
||||
Activate __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO only when
|
||||
it is needed. This should also make this work in case glibc will add
|
||||
these defines.
|
||||
|
||||
Acked-by: Mikko Rapeli <mikko.rapeli@iki.fi>
|
||||
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
|
||||
---
|
||||
Upstream-Status: Submitted [https://patchwork.kernel.org/patch/9686293/]
|
||||
Signed-off-by: André Draszik <adraszik@tycoint.com>
|
||||
Acked-by: Stephane Ayotte <sayotte@tycoint.com>
|
||||
include/uapi/linux/libc-compat.h | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/include/uapi/linux/libc-compat.h b/include/uapi/linux/libc-compat.h
|
||||
index 43a81136ea6e..ce2fa8a4ced6 100644
|
||||
--- a/include/uapi/linux/libc-compat.h
|
||||
+++ b/include/uapi/linux/libc-compat.h
|
||||
@@ -64,9 +64,11 @@
|
||||
/* Everything up to IFF_DYNAMIC, matches net/if.h until glibc 2.23 */
|
||||
#define __UAPI_DEF_IF_NET_DEVICE_FLAGS 0
|
||||
/* For the future if glibc adds IFF_LOWER_UP, IFF_DORMANT and IFF_ECHO */
|
||||
+#ifndef IFF_ECHO
|
||||
#ifndef __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO
|
||||
#define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 1
|
||||
#endif /* __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO */
|
||||
+#endif /* IFF_ECHO */
|
||||
|
||||
#else /* _NET_IF_H */
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
From 8e69b663d6ddef132041a1186f081fdd74d4a31d Mon Sep 17 00:00:00 2001
|
||||
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.
|
||||
---
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Upstream-Status: Submitted
|
||||
|
||||
include/uapi/linux/kernel.h | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
Index: linux-5.12.11/include/uapi/linux/kernel.h
|
||||
===================================================================
|
||||
--- linux-5.12.11.orig/include/uapi/linux/kernel.h
|
||||
+++ linux-5.12.11/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 */
|
||||
@@ -0,0 +1,18 @@
|
||||
require linux-libc-headers.inc
|
||||
|
||||
SRC_URI:append:libc-musl = "\
|
||||
file://0001-libc-compat.h-fix-some-issues-arising-from-in6.h.patch \
|
||||
file://0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch \
|
||||
file://0001-libc-compat.h-musl-_does_-define-IFF_LOWER_UP-DORMAN.patch \
|
||||
"
|
||||
|
||||
SRC_URI += "\
|
||||
file://0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch \
|
||||
file://0001-connector-Fix-invalid-conversion-in-cn_proc.h.patch \
|
||||
"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
|
||||
|
||||
SRC_URI[sha256sum] = "d926a06c63dd8ac7df3f86ee1ffc2ce2a3b81a2d168484e76b5b389aba8e56d0"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user