Re: [PATCH] headers_check: special case seqbuf_dump()

From: Takashi Iwai
Date: Thu Jan 16 2014 - 06:53:33 EST


At Wed, 15 Jan 2014 11:48:19 +0100,
Paul Bolle wrote:
>
> "make headers_check" warns about soundcard.h for (at least) five years
> now:
> [...]/usr/include/linux/soundcard.h:1054: userspace cannot reference function or variable defined in the kernel
>
> We're apparently stuck with providing OSSlib-3.8 compatibility, so let's
> special case this declaration just to silence it.
>
> Signed-off-by: Paul Bolle <pebolle@xxxxxxxxxx>
> ---
> 0) Support for OSSlib post 3.8 was already removed in commit 43a990765a
> ("sound: Remove OSSlib stuff from linux/soundcard.h"). Five years have
> passed since that commit: do people still care about OSSlib-3.8? If not,
> quite a bit of code could be remove from soundcard.h (and probably
> ultrasound.h).

Such a thing is always hard to know, just like to find a Bigfoot :)

> 2) By the way, what is actually meant by:
> It is no longer possible to actually link against OSSlib with this
> header, but we still provide these macros for programs using them.
>
> Doesn't that mean compatibility to OSSlib isn't even useful?

Well, it's not about the compatibility to osslib. The OSS seq
user-space codes are written with these macros no matter whether to
use osslib or not. osslib was newer than these macros and it was
designed to be compatible with them.


thanks,

Takashi


> 3) Anyhow, a previous discussion soundcard.h, which led to that commit,
> starts at https://lkml.org/lkml/2009/1/20/349 .
>
> 4) And, yes, I sneaked in a whitespace fix.
>
> scripts/headers_check.pl | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/headers_check.pl b/scripts/headers_check.pl
> index 64ac238..62320f9 100644
> --- a/scripts/headers_check.pl
> +++ b/scripts/headers_check.pl
> @@ -65,7 +65,11 @@ sub check_include
>
> sub check_declarations
> {
> - if ($line =~m/^(\s*extern|unsigned|char|short|int|long|void)\b/) {
> + # soundcard.h is what it is
> + if ($line =~ m/^void seqbuf_dump\(void\);/) {
> + return;
> + }
> + if ($line =~ m/^(\s*extern|unsigned|char|short|int|long|void)\b/) {
> printf STDERR "$filename:$lineno: " .
> "userspace cannot reference function or " .
> "variable defined in the kernel\n";
> --
> 1.8.4.2
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/