On Tue Sep 08 2009 at 12:18:57 -0400, Christos Zoulas wrote: > | : No, __NetBSD__ is right. For all purposes, code in the rump kernel *is* > | : NetBSD. E.g. if you have #ifdef __NetBSD__ in a kernel driver which > | : was imported from $OtherOS, you must have the rump version think it is > | : running on NetBSD, since it technically speaking is. The difference to > | : most cpp symbols is merely that __NetBSD__ comes from the compiler instead > | : of from the kernel headers. Of course param.h could define something like > | : __I_am_the_NetBSD__ and we could test against that in all of our NetBSD > | : kernel code, but I don't see any benefit, especially since __NetBSD__ > | : is a well established practise even outside NetBSD developers. > | > | __NetBSD__ is the *COMPILER* environment. Depending on it is *BAD*. > | You need to use a different symbol. This is a bug in the NetBSD code > | now. __NetBSD__ isn't, and never has bene, the KERNEL. > > That was my complaint exactly. I meant to say this in my next message :-) > > | Maybe __NetBSD_Version__ should be used instead? Its clearly NetBSD > | kernel build environment specific (since it comes from sys/parma.h) > | and doesn't muddy the waters with the differences between the > | different BUILD systems. > > That is what I was thinking also.
Whoever finds this churn worth their effort, as dh pointed out, remember to replace all instances of __FreeBSD__, __OpenBSD__, __Linux__, __Slowaris__, __sMackOS__, __etc__ as well.