Aarch64 kernel with 32bit userspace question

Arnd Bergmann
2017-02-10T12:39:37Z

On Thursday, February 9, 2017 9:38:41 PM CET Marek Vasut wrote:
> >
> > The default kernel headers_install will want to place the headers into
> > <includepath>/asm along side <includepath>/asm-generic and
> > <includepath>/linux which is not what modern ARM distros want.
>
> Thanks for all the help, it at least helped me get a better picture how
> the multilib stuff works on arm/aarch64 .
>
> It turns out that OE is not yet able to generate multilib sdk, while it
> is able to generate multilib system image. Therefore, while I had two
> different compilers, only one sysroot was installed (aarch64 one) and
> both were pointing into it. The 32bit compiler used the wrong headers,
> so I ran into this issue. I'll have to drill into the OE further to
> figure out the proper solution.

It seems the support for biarch headers was removed from the kernel
a few years before arm64 got merged: https://lkml.org/lkml/2008/6/30/467

You could still use "make headers_install_all" in place of
"make headers_install" in
http://git.yoctoproject.org/cgit.cgi/poky/plain/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
but you still have to figure out how to find the right headers,
either by moving the two asm directories to /usr/{arm,aarch64}-linux-gnu/include/asm
or by doing the same trick that we had before the 2008 patch.

Arnd