i386/139403: absense of AUE_NULL
brde at optusnet.com.au
Wed Oct 7 23:10:05 UTC 2009
The following reply was made to PR i386/139403; it has been noted by GNATS.
From: Bruce Evans <brde at optusnet.com.au>
To: Sergey Kuritsin <kuritsin_s_v at mail.ru>
Cc: freebsd-gnats-submit at FreeBSD.org, freebsd-i386 at FreeBSD.org
Subject: Re: i386/139403: absense of AUE_NULL
Date: Thu, 8 Oct 2009 10:02:50 +1100 (EST)
On Wed, 7 Oct 2009, Sergey Kuritsin wrote:
> There is no definition of AUE_NULL constant in sys/sysent.h (or in bsm/audit.h). When you include in source file sys/sysent.h header compiler says that thereis no definition of AUE_NULL.
> Use in your code macro SYSCALL_MODULE form sys/sysent.h
> It can be fixed by adding #define AUE_NULL 0 in bsm/audit.h for example.
Here is my old mail about this bug and related messes in headers.
I'm trying to build an old module under FreeBSD-7. It failed to compile
because SYSCALL_MODULE() uses AUE_NULL which is never defined despite
massive namespace pollution (#include <bsm/audit.h>) in <sys/sysent.h>.
AUE_NULL is defined in <bsm/audit_kevents.h> but the pollution doesn't
extend that far. <sys/sysent.h> seems to use only au_event_t directly
from bsm, and only AUE_NULL indirectly from bsm.
The <bsm/audit_kevents.h> pollution is machine-generated into
<sys/sysproto.h> together with lots of other pollution. Most of
the original pollution in <sys/sysproto.h> is unnecessary now that
there is a non-polluting header for sigset_t, but there is now
about 10 times as much as when I started cleaning it up. I still
remove it all in my version using the following hack:
The FreeBSD-7 sysproto.h seems to use only AUE_NULL from
<bsm/audit_kevents.h>. That is a lot of pollution for a fancy spelling of 0.
More information about the freebsd-i386