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 libc).
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 #endif 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 [1]. [1] 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. -- Robert Millan
Index: contrib/gcc/config/freebsd-spec.h =================================================================== --- contrib/gcc/config/freebsd-spec.h (revision 223721) +++ contrib/gcc/config/freebsd-spec.h (working copy) @@ -54,6 +54,7 @@ do \ { \ builtin_define_with_int_value ("__FreeBSD__", FBSD_MAJOR); \ + builtin_define ("__FreeBSD_kernel__"); \ builtin_define_std ("unix"); \ builtin_define_std ("__unix__"); \ builtin_define ("__KPRINTF_ATTRIBUTE__"); \
_______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"