Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Jan 1998 11:24:08 +1000
From:      Stephen McKay <syssgm@dtir.qld.gov.au>
To:        dg@root.com
Cc:        freebsd-current@FreeBSD.ORG, syssgm@dtir.qld.gov.au
Subject:   Re: PATCH: if_de.c #ifdef based version encoding 
Message-ID:  <199801280124.LAA06212@ogre.dtir.qld.gov.au>
In-Reply-To: <34CE4438.15FB7483@whistle.com> from Julian Elischer at "Tue, 27 Jan 1998 20:31:52 %2B0000"
References:  <199801271101.DAA25275@implode.root.com> <34CE4438.15FB7483@whistle.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday, 27th January 1998, Julian Elischer wrote:

>David Greenman wrote:
>> 
>> >This means that if I build a v3 kernel using a v2 system's tools, the
>> >"#if __FreeBSD__ >= 3" and "#if defined(__FreeBSD__) && __FreeBSD__ >= 3"
>> >will not test true, even though that is, in fact, what I am building.
>> >
>> >Version information should not be encoded in #ifdef's; that is what
>> >branch tags are for.  If I can check this code out, implicitly, I am
>> >building a 3+ system.  The "#if" tests are bogus.
>
>The problem occurs as I discovered yesterday when upgrading 2.2.x to 3.x
>a very simple fix that would allow Matt to have his driver (mostly) 
>unmodified, would be:
>
>to check in, in the 3.0 branch, the following:
>
>#undef __FreeBSD__
>#define __FreeBSD__ 3

Or add (or get Matt to add) something like this at the top:

#ifdef __FreeBSD__
#include <sys/osversion.h>
#endif

and put the appropriate #undef/#define pair in osversion.h.  Then perhaps
osversion.h and osreldate.h would be merged.  A more extensive proposal
would be to define individual symbols for each kernel interface change
to allow fine control.  Though this is likely too large a hammer for this
particular nut it might be useful in the long run.

>>    In theory, the de driver is maintained by Matt Thomas and he supports
>> multiple OS's and OS versions in the code. You'll notice that there are
>> #ifdef's for NetBSD and BSD/OS in there as well. If we were going to do
>> as you suggest, then it would only make sense if all of the OS #ifdef's
>> were removed. This will only make it more difficult for Matt to support
>> FreeBSD, so I think it's a bad idea.

Making Matt's life difficult would be counterproductive, but these version
tests are pretty silly from an ivory tower purist view, and are also a pain
in practice.  I'm with Terry on this one.

Stephen.



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