On Wednesday, July 17, 2019 at 7:47:45 AM UTC+2, Henning Schild wrote:
Am Thu, 11 Jul 2019 23:46:53 +0900
schrieb Masahiro Yamada <yamada....@socionext.com>:

> On Tue, Jul 9, 2019 at 4:44 PM Cedric Hombourger
> <Cedric_H...@mentor.com> wrote:
> >
> > Debian-based distributions place libc header files in a machine
> > specific directory (/usr/include/<libc-machine>) instead of
> > /usr/include/asm to support installation of the linux-libc-dev
> > package from multiple architectures. Move headers installed by
> > "make headers_install" accordingly using Debian's tuple from
> > dpkg-architecture (stored in debian/arch).
> >
> > Signed-off-by: Cedric Hombourger <Cedric_H...@mentor.com>
> > ---
> >  scripts/package/builddeb | 5 +++++
> >  scripts/package/mkdebian | 1 +
> >  2 files changed, 6 insertions(+)
> >
> > diff --git a/scripts/package/builddeb b/scripts/package/builddeb
> > index b03dd56a4782..d5d33bcba1fb 100755
> > --- a/scripts/package/builddeb
> > +++ b/scripts/package/builddeb
> > @@ -132,6 +132,11 @@ fi
> >  if [ "$ARCH" != "um" ]; then
> >         $MAKE -f $srctree/Makefile headers_check
> >         $MAKE -f $srctree/Makefile headers_install
> > INSTALL_HDR_PATH="$libc_headers_dir/usr"
> > +       # move asm headers to /usr/include/<libc-machine>/asm to
> > match the structure
> > +       # used by Debian-based distros (to support multi-arch)
> > +       host_arch=$(dpkg-architecture -a$(cat debian/arch)
> > -qDEB_HOST_MULTIARCH)
> > +       mkdir $libc_headers_dir/usr/include/$host_arch
> > +       mv $libc_headers_dir/usr/include/asm
> > $libc_headers_dir/usr/include/$host_arch/ fi  
>
>
> I just wondered whether there is something better than $(cat
> debian/arch), but maybe not.
>
> OK, I am ready to pick it up for 5.3-rc1.
>
> With Ben's Ack, I would be able to proceed with more confident.

going Isar-only

That looks like it will go in. Now would be the time to prepare putting
it into Isar-core. I think the patch should be in filesdir of the custom
kernel code and should be applied if PV < 5.2.
The actual patch should of cause be the one that goes mainline, and the
actual PV will depend on when it does. And we might have to carry
backports of the patch, should it not apply all the way back to say 4.4

I assume the Isar-patch could hold a surprise or two, so starting it
early could speed things up. Just keeping the magic in a layer and
leaving Isar-core without the fix would not be ideal.


Here's what the patch may look like (started some test builds)
I had to adjust the upstream patch twice to support kernels >= 4.0 (and < 5.3)

The upstream patch should land in 5.3 (it was part of the kbuild pull request #2 that was sent to Linus)

Before submitting this as a formal Patch Review, please let me know if the proposed approach makes sense?

diff --git a/meta/recipes-kernel/linux/linux-custom.inc b/meta/recipes-kernel/linux/linux-custom.inc
index ee5f20c..06b4b93 100644
--- a/meta/recipes-kernel/linux/linux-custom.inc
+++ b/meta/recipes-kernel/linux/linux-custom.inc
@@ -16,6 +16,16 @@ python() {
     kernel_name = d.getVar("KERNEL_NAME_PROVIDED", True)
     d.setVar('PROVIDES', 'linux-image-' + kernel_name + ' ' + \
                          'linux-headers-' + kernel_name)
+    cmp_4_0  = bb.utils.vercmp_string(d.getVar('PV', True), '4.0')
+    cmp_4_17 = bb.utils.vercmp_string(d.getVar('PV', True), '4.17')
+    cmp_5_1  = bb.utils.vercmp_string(d.getVar('PV', True), '5.1')
+    cmp_5_3  = bb.utils.vercmp_string(d.getVar('PV', True), '5.3')
+    if cmp_5_1 >= 0 and cmp_5_3 < 0:
+        d.appendVar('SRC_URI', " file://builddeb-libc-multi-arch-5.1-5.2.patch")
+    elif cmp_4_17 >= 0 and cmp_5_1 < 0:
+        d.appendVar('SRC_URI', " file://builddeb-libc-multi-arch-4.17-5.0.patch")
+    elif cmp_4_0 >= 0 and cmp_4_17 < 0:
+        d.appendVar('SRC_URI', " file://builddeb-libc-multi-arch-4.0-4.16.patch")
 }
 
 inherit dpkg-base
 
Henning

>
>
>
>
> >  # Install the maintainer scripts
> > diff --git a/scripts/package/mkdebian b/scripts/package/mkdebian
> > index 8351584cb24e..e0750b70453f 100755
> > --- a/scripts/package/mkdebian
> > +++ b/scripts/package/mkdebian
> > @@ -197,6 +197,7 @@ Architecture: $debarch
> >  Description: Linux support headers for userspace development
> >   This package provides userspaces headers from the Linux kernel.
> > These headers are used by the installed headers for GNU glibc and
> > other system libraries. +Multi-Arch: same
> >
> >  Package: $dbg_packagename
> >  Section: debug
> > --
> > 2.11.0
> >  
>
>