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

From: Robert Millan <rmh_at_freebsd.org>
Date: Sat, 19 Nov 2011 10:32:50 +0100
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.

Received on Sat Nov 19 2011 - 08:32:52 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:20 UTC