i386/139403: absense of AUE_NULL

Bruce Evans brde at optusnet.com.au
Thu Oct 8 01:47:03 UTC 2009


On Wed, 7 Oct 2009, Sergey Kuritsin wrote:

>> Description:
> 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.
>> How-To-Repeat:
> Use in your code macro SYSCALL_MODULE form sys/sysent.h
>
>
>> Fix:
> 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:

<hack deleted>

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.

Bruce


More information about the freebsd-i386 mailing list