This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Fix linux/stddef.h coordination with glibc (Bug 20215)
- From: Mikko Rapeli <mikko dot rapeli at iki dot fi>
- To: Carlos O'Donell <carlos at redhat dot com>
- Cc: GNU C Library <libc-alpha at sourceware dot org>, Denys Vlasenko <dvlasenk at redhat dot com>, Josh Boyer <jwboyer at fedoraproject dot org>
- Date: Tue, 7 Jun 2016 18:29:48 +0300
- Subject: Re: [PATCH] Fix linux/stddef.h coordination with glibc (Bug 20215)
- Authentication-results: sourceware.org; auth=none
- References: <575699F9 dot 6080903 at redhat dot com> <20160607101440 dot GG26774 at lakka dot kapsi dot fi>
On Tue, Jun 07, 2016 at 01:14:40PM +0300, Mikko Rapeli wrote:
> On Tue, Jun 07, 2016 at 05:55:05AM -0400, Carlos O'Donell wrote:
> > Denys,
> >
> > In recent linux 4.6.0 headers we have this:
> >
> > git blame include/uapi/linux/stddef.h
> > ~~~
> > 607ca46e (David Howells 2012-10-13 10:46:48 +0100 1) #include <linux/compiler.h>
> > 283d7573 (Denys Vlasenko 2016-03-30 00:14:57 +0200 2)
> > 283d7573 (Denys Vlasenko 2016-03-30 00:14:57 +0200 3) #ifndef __always_inline
> > 283d7573 (Denys Vlasenko 2016-03-30 00:14:57 +0200 4) #define __always_inline inline
> > 283d7573 (Denys Vlasenko 2016-03-30 00:14:57 +0200 5) #endif
> > ~~~
> >
> > The definition of __always_inline breaks certain header include
> > ordering between glibc and linux headers.
> >
> > Mikko,
> >
> > I'm curious if your header include fuzzing script caught this failure?
>
> I've seen this, but by default it is only a warning. I have not dared to
> run my kernel headers tests with warnings-as-errors since there are so many of
> them, and there are plenty of simple errors to fix first.
Here is a sample Linux kernel headers compile test log
https://mcfrisk.kapsi.fi/temp/log_headers_test_v05.txt.gz
from my header fix branch
https://github.com/mcfrisk/linux/tree/headers_test_v05
Command executed in kernel source tree is:
~/src/linux-2.6$ make headers_install && cd usr/include && \
../../scripts/headers_compile_test.sh -l -k
Error summary is:
Kernel header compile test statistics:
0 files failed the kernel header compile test.
774 files passed the kernel header compile test.
libc and kernel header compatibility test statistics:
113 files failed the libc compatibility test.
661 files passed the libc compatibility test.
39 files failed libc before kernel include test.
735 files passed libc before kernel include test.
112 files failed kernel before libc include test.
662 files passed kernel before libc include test.
-Mikko