[oe] [meta-oe][PATCH] efivar: nvme header was renamed in linux 4.4

Alexandru But alexandru.but at ni.com
Wed Feb 3 12:00:19 UTC 2016


On Wed, Feb 03, 2016 at 10:37:48AM +0800, Robert Yang wrote:
> 
> 
> On 02/03/2016 01:40 AM, Alexandru But wrote:
> >nvme.h was renamed to nvme_ioctl.h in linux uapi headers since 4.4. Patch
> >taken from the gentoo repository.
> >
> >Signed-off-by: Alexandru But <alexandru.but at ni.com>
> >---
> >  .../efivar/efivar/0.21-nvme_ioctl.h.patch          | 30 ++++++++++++++++++++++
> >  meta-oe/recipes-extended/efivar/efivar_0.21.bb     |  3 ++-
> >  2 files changed, 32 insertions(+), 1 deletion(-)
> >  create mode 100644 meta-oe/recipes-extended/efivar/efivar/0.21-nvme_ioctl.h.patch
> >
> >diff --git a/meta-oe/recipes-extended/efivar/efivar/0.21-nvme_ioctl.h.patch b/meta-oe/recipes-extended/efivar/efivar/0.21-nvme_ioctl.h.patch
> >new file mode 100644
> >index 0000000..221ec5a
> >--- /dev/null
> >+++ b/meta-oe/recipes-extended/efivar/efivar/0.21-nvme_ioctl.h.patch
> >@@ -0,0 +1,30 @@
> >+From ae0869b71a90bc14e67f3c917bd9c96db25c99a6 Mon Sep 17 00:00:00 2001
> >+From: Mike Gilbert <floppym at gentoo.org>
> >+Date: Thu, 14 Jan 2016 17:02:31 -0500
> >+Subject: [PATCH] Workaround rename of linux/nvme.h
> >+
> >+Bug: https://bugs.gentoo.org/571548
> >+---
> >+ src/linux.c | 5 +++++
> >+ 1 file changed, 5 insertions(+)
> >+
> >+diff --git a/src/linux.c b/src/linux.c
> >+index 5ebc151..e551377 100644
> >+--- a/src/linux.c
> >++++ b/src/linux.c
> >+@@ -22,7 +22,12 @@
> >+ #include <inttypes.h>
> >+ #include <limits.h>
> >+ #include <linux/ethtool.h>
> >++#include <linux/version.h>
> >++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0)
> >++#include <linux/nvme_ioctl.h>
> >++#else
> >+ #include <linux/nvme.h>
> >++#endif
> >+ #include <linux/sockios.h>
> >+ #include <net/if.h>
> >+ #include <scsi/scsi.h>
> >+--
> >+2.7.0
> >+
> >diff --git a/meta-oe/recipes-extended/efivar/efivar_0.21.bb b/meta-oe/recipes-extended/efivar/efivar_0.21.bb
> >index 1684a10..3c34a7b 100644
> >--- a/meta-oe/recipes-extended/efivar/efivar_0.21.bb
> >+++ b/meta-oe/recipes-extended/efivar/efivar_0.21.bb
> >@@ -9,7 +9,8 @@ DEPENDS_class-target = "popt efivar-native"
> >
> >  SRCREV = "aab6c2a64d90b6e5a63661fb5bd6be8d878b0784"
> >  SRC_URI = "git://github.com/rhinstaller/efivar.git \
> >-           file://0001-Sometimes-the-compiler-doesn-t-like-0-as-an-initiali.patch"
> >+           file://0001-Sometimes-the-compiler-doesn-t-like-0-as-an-initiali.patch \
> >+           file://0.21-nvme_ioctl.h.patch"
> 
> This path is based on your previous, so it can't be applied.
> 
> And I got errors after fix conflicts:
> 
> | linux.c:27:30: fatal error: linux/nvme_ioctl.h: No such file or directory
> | compilation terminated.
> 
> My kernel is 4.1.
> 
> 
> // Robert

It is weird that the patch is generating this error with 4.1 kernel. Is the
linux-libc-headers version also 4.1? The headers responsible for the
KERNEL_VERSION are installed in the sysroot with that recipe.

I should of added more context to the patch and not rush to send this change
before the fix goes in the oe-core layer. Associated discussions:
http://patches.openembedded.org/patch/114409/
http://lists.openembedded.org/pipermail/openembedded-devel/2016-February/105790.html

I will come back with the patch created on top of the master branch after the
headers backport is done in oe-core.

Regards,
Alex But

> 
> >  SRC_URI_append_class-target = " file://0001-efivar-fix-for-cross-compile.patch"
> >  SRC_URI_append_class-native = " file://efivar-drop-options-not-supported-by-lower-version-gcc.patch"
> >
> >
> -- 
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel



More information about the Openembedded-devel mailing list