Re: usr/include/linux/soundcard.h warnings for 'make headers_check'

Takashi Iwai
2009-02-09T23:06:45Z

At Wed, 4 Feb 2009 15:02:07 +0100,
Arnd Bergmann wrote:
>
> On Wednesday 04 February 2009, Jaswinder Singh Rajput wrote:
> > > +#define _SEQ_EXTERN extern
> > > +#define SEQ_USE_EXTBUF() \
> > > +             _SEQ_EXTERN unsigned char _seqbuf[]; \
> > > +             _SEQ_EXTERN int _seqbuflen;_SEQ_EXTERN int _seqbufptr
> >
> > hmm, you rename snake as rope, but actually snake is still there ;-)
>
> Yes, that's true.
>
> The alternative would be to remove all those macros entirely, breaking
> also the applications from number 2 in my list.
>
> I see this header as another example of the byteorder.h type where
> a kernel header provides functionality that is used by existing
> applications. While it should have been part of a library to start
> with, we cannot change it any more now without breaking stuff.
>
> Maybe a comment should be added to clarify this.

Yes, that should help understanding, at least.

I applied your previous patch with this change now no sound git tree,
and will include it in the next pull request.

Thanks!

Takashi

>
> Arnd <><
>
> --- a/include/linux/soundcard.h
> +++ b/include/linux/soundcard.h
> @@ -1050,7 +1050,17 @@ typedef struct mixer_vol_table {
> * Some convenience macros to simplify programming of the
> * /dev/sequencer interface
> *
> - * These macros define the API which should be used when possible.
> + * This is a legacy interface for applications written against
> + * the OSSlib-3.8 style interface. It is no longer possible
> + * to actually link against OSSlib with this header, but we
> + * still provide these macros for programs using them.
> + *
> + * If you want to use OSSlib, it is recommended that you get
> + * the GPL version of OSS-4.x and build against that version
> + * of the header.
> + *
> + * We redefine the extern keyword so that make headers_check
> + * does not complain about SEQ_USE_EXTBUF.
> */
> #define SEQ_DECLAREBUF() SEQ_USE_EXTBUF()
>
>