[PATCH] Detect GNU/kFreeBSD in user-visible kernel headers

Robert Millan rmh at freebsd.org
Sat Nov 19 09:32:52 UTC 2011


2011/11/18 Robert Millan <rmh at freebsd.org>:
> 2011/11/17 John Baldwin <jhb at freebsd.org>:
>> Hmm, I wonder if it's better to use the #ifndef approach rather than #undef
>> so that when compilers are updated to DTRT we will honor their settings?
>
> Well, the compiler is supposed to know better than sys/param.h,

I gave this a bit more thought....

The compiler knows about the system it was intended to build for, but
sys/param.h *is* part of the system we're building for.  It's
impossible for sys/param.h to have the wrong information unless it's
out of sync with the rest of the headers.

As for the compiler, on FreeBSD it's hard for the compiler to be out
of sync, because the system (in comparison with others) is tightly
packaed and upgrade procedures are well defined.

But if you take Debian, for example, we use the same compiler to build
8-STABLE, 9-STABLE and 10-CURRENT kernels.  The compiler has no idea
which version of FreeBSD the sources it is building come from.

I wouldn't put compilers in general in a position where they're forced
to know the FreeBSD major version beforehand because sys/param.h will
give preference to the information coming from compiler.

I propose this alternate patch which derives the major number from
__FreeBSD_version instead.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: freebsd_kernel.diff
Type: text/x-diff
Size: 1169 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20111119/2c6db173/freebsd_kernel.bin


More information about the freebsd-current mailing list