public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Adrian Bunk <bunk@fs.tum.de>
To: Lars Marowsky-Bree <lmb@suse.de>
Cc: Andreas Gruenbacher <agruen@suse.de>,
	Andreas Dilger <adilger@clusterfs.com>,
	linux-kernel@vger.kernel.org
Subject: Re: RFC: Testing for kernel features in external modules
Date: Sun, 27 Jun 2004 01:48:35 +0200	[thread overview]
Message-ID: <20040626234835.GP18303@fs.tum.de> (raw)
In-Reply-To: <20040625090413.GM3956@marowsky-bree.de>

On Fri, Jun 25, 2004 at 11:04:13AM +0200, Lars Marowsky-Bree wrote:
> On 2004-06-25T10:32:22,
>    Andreas Gruenbacher <agruen@suse.de> said:
> 
> > I disagree. I don't think we want to clutter the code with feature
> > definitions that have no known users. That doesn't age/scale very
> > well. It's easy enough to test for features in the external module.
> 
> True enough, but how do you propose to do that? I do understand the pain
> of the external module builds who have to try and support the vanilla
> kernel plus several vendor trees.
> 
> Yes, of course, we could end up with a autoconf like approach for
> building them, but ... you know ... that's sort of ugly.
> 
> Having a list of defines to document the version of a specific API in
> the kernel, and a set of defines pre-fixed with <vendor>_ to document
> vendor tree extensions may not be the worst thing:
>...
> Now the granularity of the API versioning is interesting - per .h is too
> coarse, and per-call would be too fine. But I'm sure someone could come
> up with a sane proposal here.

What's an API for modules?
- whether a .h file is present under include/
- every EXPORT_SYMBOL{,_GPL}'ed function
- every inlined function under include/
- every struct defined under include/
- perhaps more things I'm currently forgetting

Every change to something mentioned above during a development kernel 
needs to be cover by an appropriate API versioning.

And then consider as an example cases like a function returning 
irqreturn_t in 2.6:
- in 2.6, this function returns irqreturn_t (typedef'd to int)
- in 2.4, this function might return irqreturn_t (typedef'd to void)
- in 2.4, this function might return void

I'm sure there is a correct solution for such cases - but it's extra
work and easy to get things wrong.

Why do you dislike autoconf? I do not pretend autoconf where perfect -
but it works. Looking at the external ALSA, autoconf seems to be a good 
solution to probe for exact the things a module needs without a big 
overhead in kernel development.

> Sincerely,
>     Lars Marowsky-Brée <lmb@suse.de>

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


      reply	other threads:[~2004-06-26 23:48 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-06-24 20:30 RFC: Testing for kernel features in external modules Sam Ravnborg
2004-06-24 20:24 ` Patrick McFarland
2004-06-24 20:49   ` Sam Ravnborg
2004-06-24 20:35 ` Andreas Dilger
2004-06-24 21:07   ` Gerd Knorr
2004-06-24 21:23   ` Sam Ravnborg
2004-06-25  8:32   ` Andreas Gruenbacher
2004-06-25  9:04     ` Lars Marowsky-Bree
2004-06-26 23:48       ` Adrian Bunk [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20040626234835.GP18303@fs.tum.de \
    --to=bunk@fs.tum.de \
    --cc=adilger@clusterfs.com \
    --cc=agruen@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lmb@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox