Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 May 2003 14:34:38 +0300 (EEST)
From:      Narvi <narvi@haldjas.folklore.ee>
To:        Marcin Dalecki <mdcki@gmx.net>
Cc:        freebsd-current@freebsd.org
Subject:   Re: policy on GPL'd drivers?
Message-ID:  <20030529142915.G40030-100000@haldjas.folklore.ee>
In-Reply-To: <3ED489A1.6090609@gmx.net>

next in thread | previous in thread | raw e-mail | index | archive | help

On Wed, 28 May 2003, Marcin Dalecki wrote:

> Harti Brandt wrote:
>
> > MD>NO no and again no. This would repeat the same design mistake
> > MD>that is already in Linux. On API level you DO NOT WANT versioning.
> > MD>What you really want is: type signature cheking. Like for example
> > MD>done through C++ symbol mangling rules. If you can't do it like that
> > MD>then better leave it off as it is. Versioning in itself
> >
> > Type signature checking doesn't help you if the semantics of an API change
> > without type changes. APIs should be semantically and syntactically stable
> > in -STABLE. In -CURRENT they are expected to change. Managing a 3rd party
> > driver for current is a nightmare, but may no be necessary once we have a
> > -STABLE based on FreeBSD5.
>
> Sure sure. Perhaps I wasn't clear enough. Versioning doesn't help you
> *anything* at all, but it is introducing new problems instead. Tons of them in
> fact, if one looks at the Linux pain in this area. I suggested type signature
> cheking in C++ style just to show how fundamentally flawed the idea of
> version cheking is, but I can perfectly life with the situation as it is.
>

Uhh... it is not true that versioning does not help anything at all.
i'm not sure what type signatures would help you with - knowing that
	foo(int, void *)
still has teh same siganture doesn't tell you anything about what must be
passed in as values what assumptions about call order with bar(void *)
exist or anything else.

> Symbol versioning is good to implement "multi-flavoured" single binary
> objects (glibc uses it this way) and *not* for interface cheking.
> Again my main point is versioning on the symbol level simply makes no sense and
> worsens the situation. It's the fundamentally wrong approach to the actual
> problem.  The fact that Linux does something like this is only showing that Alan
> Cox and Keith Owens didn't get it either and one shouldn't repeat the mistake.
>

uhhh... symbol versioning != library versioning and really, in case of
glibc is pretty useless, very few if any glibc 2.2 progarms woiuld
actually run on a 2.1 system, making it all pretty pointless

> No more no less.
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030529142915.G40030-100000>