[PATCH] Detect GNU/kFreeBSD in user-visible kernel headers
John Baldwin
jhb at freebsd.org
Thu Nov 17 14:59:58 UTC 2011
On Thursday, November 17, 2011 1:46:33 am Robert Millan wrote:
> 2011/11/16 Warner Losh <imp at bsdimp.com>:
> > My second reaction was why not have
> >
> > #ifndef __FreeBSD_kernel__
> > #define __FreeBSD_kernel__ __FreeBSD__
> > #endif
> >
> > in sys/param.h and then just change __FreeBSD__ to __FreeBSD_kernel__ in the headers that are affected? But I'm not quite sure what effects
that would have on your environment.
>
> I'm fine with this.
>
> > Why do you think people wouldn't be fond of the __FreeBSD_kernel__ being defined?
>
> See archived discussion:
>
> http://lists.freebsd.org/pipermail/freebsd-hackers/2011-July/035721.html
>
> particularly this mail in which you participated:
>
> http://lists.freebsd.org/pipermail/freebsd-hackers/2011-July/035823.html
I recall the discussion from earlier. I can't recall if I had replied to it
though. :-/ In my current opinion, I think it would be fine to define
__FreeBSD_kernel__ on FreeBSD and to do it in <sys/param.h> for now until all
the compilers we use have been updated to define it automatically (which may
be a long time). I think it will also be fine to patch in-system headers to
use __FreeBSD_kernel__ once <sys/param.h> is defined. Unfortunately headers
in 3rd party software are going to have to check for both __FreeBSD__ and
__FreeBSD_kernel__ to support both GNU/kFreeBSD and older FreeBSD for the
foreseeable future. I think that is fine, but that the sooner we add
__FreeBSD_kernel__ on FreeBSD the sooner we get the clock started for a day
when those extra checks can go away. I would also be fine with MFC'ing the
addition of __FreeBSD_kernel__ to older branches (at least 7 - 9) as well.
--
John Baldwin
More information about the freebsd-arch
mailing list