* [PATCH 1/1] linux-libc-headers: fix MIPS klibc build error
2013-12-10 15:16 [PATCH 0/1] linux-yocto: static -dev SRCREVs and -headers for klibc Bruce Ashfield
@ 2013-12-10 15:16 ` Bruce Ashfield
2013-12-10 15:19 ` [PATCH 0/1] linux-yocto: static -dev SRCREVs and -headers for klibc Bruce Ashfield
1 sibling, 0 replies; 3+ messages in thread
From: Bruce Ashfield @ 2013-12-10 15:16 UTC (permalink / raw)
To: richard.purdie; +Cc: openembedded-core
As reported by Andrea Adami, klibc fails to build for MIPS with the 3.10 libc-headers
commit ca044f9a [UAPI: fix endianness conditionals in linux/raid/md_p.h] is the root
cause of the breakage.
This is fixed in the kernel source itself, but we must also carry the
change in the linux-libc-headers recipe, until we update past the
3.13 kernel.
With this change, we can again build klibc for mips, with no impact
on the rest of the system.
cc: Andrea Adami <andrea.adami@gmail.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
---
...lude-asm-byteorder.h-in-linux-raid-md_p.h.patch | 34 ++++++++++++++++++++++
| 3 ++
2 files changed, 37 insertions(+)
create mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers/UAPI-include-asm-byteorder.h-in-linux-raid-md_p.h.patch
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/UAPI-include-asm-byteorder.h-in-linux-raid-md_p.h.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/UAPI-include-asm-byteorder.h-in-linux-raid-md_p.h.patch
new file mode 100644
index 000000000000..1bf0e7ec85f0
--- /dev/null
+++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/UAPI-include-asm-byteorder.h-in-linux-raid-md_p.h.patch
@@ -0,0 +1,34 @@
+From c0f8bd146a8b3e630798561c605f5669823107af Mon Sep 17 00:00:00 2001
+From: Aurelien Jarno <aurelien@aurel32.net>
+Date: Thu, 14 Nov 2013 15:16:19 +1100
+Subject: [PATCH] UAPI: include <asm/byteorder.h> in linux/raid/md_p.h
+
+linux/raid/md_p.h is using conditionals depending on endianess and fails
+with an error if neither of __BIG_ENDIAN, __LITTLE_ENDIAN or
+__BYTE_ORDER are defined, but it doesn't include any header which can
+define these constants. This make this header unusable alone.
+
+This patch adds a #include <asm/byteorder.h> at the beginning of this
+header to make it usable alone. This is needed to compile klibc on MIPS.
+
+Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
+Signed-off-by: NeilBrown <neilb@suse.de>
+---
+ include/uapi/linux/raid/md_p.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/include/uapi/linux/raid/md_p.h b/include/uapi/linux/raid/md_p.h
+index fe1a540..f7cf7f3 100644
+--- a/include/uapi/linux/raid/md_p.h
++++ b/include/uapi/linux/raid/md_p.h
+@@ -16,6 +16,7 @@
+ #define _MD_P_H
+
+ #include <linux/types.h>
++#include <asm/byteorder.h>
+
+ /*
+ * RAID superblock.
+--
+1.8.1.2
+
--git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_3.10.bb b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_3.10.bb
index 65df230c4b0c..a78d4ba59a62 100644
--- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_3.10.bb
+++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_3.10.bb
@@ -3,6 +3,9 @@ require linux-libc-headers.inc
SRC_URI += "file://0001-ptrace.h-remove-ptrace_peeksiginfo_args.patch"
SRC_URI += "file://scripts-Makefile.headersinst-install-headers-from-sc.patch"
+# fixes klibc build for MIPS, drop when libc-headers > 3.13
+SRC_URI += "file://UAPI-include-asm-byteorder.h-in-linux-raid-md_p.h.patch"
+
SRC_URI[md5sum] = "72d0a9b3e60cd86fabcd3f24b1708944"
SRC_URI[sha256sum] = "46c9e55e1fddf40813b8d697d5645037a8e2af5c1a8dff52b3fe82b5021582b8"
--
1.8.1.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 0/1] linux-yocto: static -dev SRCREVs and -headers for klibc
2013-12-10 15:16 [PATCH 0/1] linux-yocto: static -dev SRCREVs and -headers for klibc Bruce Ashfield
2013-12-10 15:16 ` [PATCH 1/1] linux-libc-headers: fix MIPS klibc build error Bruce Ashfield
@ 2013-12-10 15:19 ` Bruce Ashfield
1 sibling, 0 replies; 3+ messages in thread
From: Bruce Ashfield @ 2013-12-10 15:19 UTC (permalink / raw)
To: Richard Purdie; +Cc: Patches and discussions about the oe-core layer
[-- Attachment #1: Type: text/plain, Size: 2204 bytes --]
On Tue, Dec 10, 2013 at 10:16 AM, Bruce Ashfield
<bruce.ashfield@windriver.com> wrote:
> Richard/Saul,
>
> Here are a couple of changes that I've been testing locally for a week now,
> with nothing (obvious) breaking.
>
> The linux-yocto-dev kernel change is to allow integration into master under
> test, so our dev kernels can be exercised directly before they become the
> kernel for a release. With this change, a layer can now create an optional
> include file, set a couple of variables and have a set of static REVs used
> rather than the default of AUTOREV.
I then proceeded to NOT include this patch in my rr directory, so it didn't
get sent.
I've attached it here and it is on the branch I referenced, but let me know
if you'd rather I do a complete resend.
Cheers,
Bruce
>
> The linux-libc-headers change fixes a klibc mips build failure issue found
> by Andrea Adami. This is fixed in the latest kernels, so we'll backport
> the change to the 3.10 based headers and drop it when I next uprev the
> kernel and headers.
>
> Cheers,
>
> Bruce
>
> cc: Andrea Adami <andrea.adami@gmail.com>
>
>
> The following changes since commit fc1bbe3654a3d456dfeb904f4c9752a03e3c48d6:
>
> linux-yocto-dev: allow static SRCREVs via include (2013-12-10 10:06:09 -0500)
>
> are available in the git repository at:
>
> git://git.pokylinux.org/poky-contrib zedd/kernel
> http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=zedd/kernel
>
> Bruce Ashfield (1):
> linux-libc-headers: fix MIPS klibc build error
>
> ...lude-asm-byteorder.h-in-linux-raid-md_p.h.patch | 34 ++++++++++++++++++++++
> .../linux-libc-headers/linux-libc-headers_3.10.bb | 3 ++
> 2 files changed, 37 insertions(+)
> create mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers/UAPI-include-asm-byteorder.h-in-linux-raid-md_p.h.patch
>
> --
> 1.8.1.2
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
--
"Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end"
[-- Attachment #2: 0001-linux-yocto-dev-allow-static-SRCREVs-via-include.patch --]
[-- Type: text/x-patch, Size: 3375 bytes --]
From fc1bbe3654a3d456dfeb904f4c9752a03e3c48d6 Mon Sep 17 00:00:00 2001
From: Bruce Ashfield <bruce.ashfield@windriver.com>
Date: Thu, 5 Dec 2013 14:31:55 -0500
Subject: [PATCH] linux-yocto-dev: allow static SRCREVs via include
The linux-yocto dev recipe is intended to track the latest revisions of the
kernel tree by default. To control revision churn, and integrate into a
regular build schedule having the ability to specify a set of SRCREVs without
modifying the recipe itself is desired.
So we introduce an optional include file, and variables that control whether
or not the static SRCREVs are used: USE_MACHINE_AUTOREV and USE_META_AUTOREV,
to add this flexibility.
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
---
meta/recipes-kernel/linux/linux-yocto-dev.bb | 25 ++++++++++++++++++-------
1 file changed, 18 insertions(+), 7 deletions(-)
diff --git a/meta/recipes-kernel/linux/linux-yocto-dev.bb b/meta/recipes-kernel/linux/linux-yocto-dev.bb
index e7b8d8b2a7a1..e8d14b966d84 100644
--- a/meta/recipes-kernel/linux/linux-yocto-dev.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-dev.bb
@@ -11,6 +11,12 @@
inherit kernel
require recipes-kernel/linux/linux-yocto.inc
+USE_MACHINE_AUTOREV ?= "1"
+USE_META_AUTOREV ?= "1"
+
+# provide this .inc to set specific revisions
+include recipes-kernel/linux/linux-yocto-dev-revisions.inc
+
KBRANCH = "standard/base"
KBRANCH_DEFAULT = "${KBRANCH}"
KMETA = "meta"
@@ -22,15 +28,19 @@ SRC_URI = "git://git.pokylinux.org/linux-yocto-dev.git;nocheckout=1;branch=${KBR
# linux-yocto-dev is the preferred provider, they will be overridden to
# AUTOREV in following anonymous python routine and resolved when the
# variables are finalized.
-SRCREV_machine="29594404d7fe73cd80eaa4ee8c43dcc53970c60e"
-SRCREV_meta="29594404d7fe73cd80eaa4ee8c43dcc53970c60e"
+SRCREV_machine ?= "29594404d7fe73cd80eaa4ee8c43dcc53970c60e"
+SRCREV_meta ?= "29594404d7fe73cd80eaa4ee8c43dcc53970c60e"
python () {
if d.getVar("PREFERRED_PROVIDER_virtual/kernel", True) != "linux-yocto-dev":
raise bb.parse.SkipPackage("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-dev to enable it")
else:
- d.setVar("SRCREV_machine", "${AUTOREV}")
- d.setVar("SRCREV_meta", "${AUTOREV}")
+ # if the revisions have been changed from the defaults above we leave them
+ # alone. But if the defaults are left, we change to AUTOREV.
+ if d.getVar("USE_MACHINE_AUTOREV", True) == "1":
+ d.setVar("SRCREV_machine", "${AUTOREV}")
+ if d.getVar("USE_META_AUTOREV", True) == "1":
+ d.setVar("SRCREV_meta", "${AUTOREV}")
}
LINUX_VERSION ?= "3.10+"
@@ -40,8 +50,9 @@ PV = "${LINUX_VERSION}+git${SRCPV}"
COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemumips64|qemux86-64)"
# Functionality flags
-KERNEL_FEATURES_append = " features/netfilter/netfilter.scc"
-KERNEL_FEATURES_append_qemux86=" cfg/sound.scc"
+KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
+KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
+KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc"
-KERNEL_FEATURES_append_qemux86=" cfg/paravirt_kvm.scc"
KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "" ,d)}"
+
--
1.8.1.2
^ permalink raw reply related [flat|nested] 3+ messages in thread