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!