On 01-12-19 22:57, Peter Bergin via Lists.Yoctoproject.Org wrote:
> Hi,
> 
> I'm currently working in a project using Yocto 2.6 (thud) release. It has 
> default kernel v4.18 and also linux-libc-headers from kernel v4.18. In my 
> project we will use kernel v4.1. I would like advice how to handle the 
> linux-libc-headers package for my project, should I use the v4.18 headers or 
> should I use the v4.1 header files which matches the running kernel?
> 
>  From https://www.kernel.org/doc/html/latest/kbuild/headers_install.html:
> "Kernel headers are backwards compatible, but not forwards compatible. This 
> means that a program built against a C library using older kernel headers 
> should run on a newer kernel (although it may not have access to new 
> features), but a program built against newer kernel headers may not work on 
> an 
> older kernel."
> 
> With the information from the quote above I would directly use v4.1 headers 
> as 
> my linux-libc-headers. But then reading the information in the file 
> meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc makes me think 
> another round. It states:
> 
> "
> # 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.
> ...
> # 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.
> "
> 
> The first part states that I should not change linux-libc-headers. But when I 
> read the last part I'm not sure about the interpretation and it could be for 
> my case. Just a matter of definition if v4.1 is extremely old compared to 
> v4.18.
> 
> Then another thing comes in to the equation; the LIBC ABI. When I look into 
> the configuration of the glibc package it uses the configure switch 
> "--enable-kernel=3.2" which means it shall be compatible with all kernel 
> newer 
> than v3.2. Then probably glibc is fine if it is compiled with v4.18 and run 
> on 
> v4.1?
> 
> If building all applications against v4.18 headers but run on v4.1 kernel. I 
> have a feeling that there potentially can be problems here.
> 
> Please help me with some information about this and share your opinions? Are 
> there any risks at all to use v4.1 as linux-libc-headers in my Yocto build? 
> The only drawback I see is that it will be a new configuration not well 
> tested 
> by the community. Are there other risks or drawbacks using your own version 
> of 
> linux-libc-headers?


It is not broken, so please don't fix it.

OpenPLi has been using kernels way older than 4.1 with the kernel-headers 
generated by OE/yocto and did not experience any problems with that. There's 
about 50+ machines in there that have pre-built binary drivers that only work 
with a particular kernel config and hence the old stuff.

There are some corner-cases with exotic kernels and exotic exports and exotic 
boot executables that use the kernel compiler, but I doubt that you're in 
there...

If you have a kernel that exports something that's not in the regular headers, 
it's way better to solve that using a syscall than trying to poke in low level 
libc stuff.

So again, if you don't experience problems, please don't try to fix it...

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#47483): https://lists.yoctoproject.org/g/yocto/message/47483
Mute This Topic: https://lists.yoctoproject.org/mt/64460477/21656
Group Owner: yocto+ow...@lists.yoctoproject.org
Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub  
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to