rmh at debian.org
Sat Jul 2 15:41:04 UTC 2011
Since their inception, GNU/kFreeBSD systems had defined
"__FreeBSD_kernel__" as builtin macro to indicate this is a system
that uses the kernel of FreeBSD. We couldn't define "__FreeBSD__"
because this implies a full FreeBSD system, and a lot of software
checks for this macro when it is concerned with userland (usually
As a result of this, and of the considerable porting effort that
followed, many 3rd party programs with kernel-specific extensions have
been ported to recognize __FreeBSD_kernel__ as well. E.g.:
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
// code for FreeBSD kernel
My request is that FreeBSD also defines __FreeBSD_kernel__. If this
happens, life would be made a bit easier on both sides, as it'd be
more natural for porters of either system to support both using a
single macro .
 When porting software to support FreeBSD and systems with kernel
of FreeBSD myself (as I did with e.g. GRUB), I generally took care to
ensure both macros are checked for, but this isn't always the case.
Having a unified macro would make it easier for developers of both
systems to cooperate.
-------------- next part --------------
--- contrib/gcc/config/freebsd-spec.h (revision 223721)
+++ contrib/gcc/config/freebsd-spec.h (working copy)
@@ -54,6 +54,7 @@
builtin_define_with_int_value ("__FreeBSD__", FBSD_MAJOR); \
+ builtin_define ("__FreeBSD_kernel__"); \
builtin_define_std ("unix"); \
builtin_define_std ("__unix__"); \
builtin_define ("__KPRINTF_ATTRIBUTE__"); \
More information about the freebsd-hackers