configure sys/audit.h WARNING

rich at horizon.com rich at horizon.com
Tue Apr 18 19:59:16 EST 2006


Since the configure script requests...

checking sys/audit.h usability... no
checking sys/audit.h presence... yes
configure: WARNING: sys/audit.h: present but cannot be compiled
configure: WARNING: sys/audit.h:     check for missing prerequisite headers?
configure: WARNING: sys/audit.h: see the Autoconf documentation
configure: WARNING: sys/audit.h:     section "Present But Cannot Be Compiled"
configure: WARNING: sys/audit.h: proceeding with the preprocessor's result
configure: WARNING: sys/audit.h: in the future, the compiler will take precedence
configure: WARNING:     ## ------------------------------------------- ##
configure: WARNING:     ## Report this to openssh-unix-dev at mindrot.org ##
configure: WARNING:     ## ------------------------------------------- ##
checking for sys/audit.h... yes

(This is from openbssh 4.2p1.)

Doing a bit of retrocomputing here...  SunOS 4.1.4 requires <sys/label.h>
to define the blabel_t typedef before <sys/audit.h>, or you get compile
errors.

I notice that openbsd-compat/xcrypt.c, where HAVE_GETPWANAM is used,
does get this right.

Other than that, it appears to be working.

The lack of a prototype in scope for the emulated strerror() function
causes a lot of warnings over printf formats.  Fortunately, sizeof(char *)
== sizeof(int), so it ends up working anyway, but you may want to fix that.

I did have one problem with strtonum() alreays returning "too small",
even if the input value is in range or ridiculously too large.
E.g. ssh-keygen -b 99999 prints "Bits has bad value 99999 (too small)".
I suspect this is a GCC long long bug; I'm using a truly ancient version of
gcc.  Changing strtonum() to use "long" rather than "long long" worked
around the problem, so don't panic about that.  (Via what is probably
preprocessor magic, strtoll() returns "long" on this system anyway.)

But I did look at the compiler output for strtonum.c, and the beginning
is kind of ugly.  The struct errval ev[4] could really stand to be
declared static.  And const.  With some alternative hack to preserve
errno if there is no error.

Anyway, thanks for a great tool!




More information about the openssh-unix-dev mailing list