[tcpdump-workers] Fix FreeBSD capsicum build on FreeBSD 10.1

Guy Harris guy at alum.mit.edu
Sat Dec 6 15:40:57 EST 2014

On Dec 6, 2014, at 6:51 AM, Loganaden Velvindron <logan at elandsys.com> wrote:

> Support for FreeBSD capsicum doesn't work on FreeBSD 10.1, due to 
> cap_rights_init which returns a struct, instead of an int.

Did its return value change in FreeBSD 10?  (Presumably it didn't change between 10 and 10.1.)

> I think that we should follow OpenSSH and not test cap_rights_init.

If there are no systems that offer Capsicum but that don't have cap_rights_init(), there's no need to check for it.

The comment there is

# Check whether various functions are available.  If any are, set
# ac_lbl_capsicum_function_seen to yes; if any are not, set
# ac_lbl_capsicum_function_not_seen to yes.
# All of them must be available in order to enable capsicum sandboxing.

but, if there aren't any systems that have some but not all, testing for all of them is overkill.

However, AC_CHECK_FUNCS is intended not to care what type a function returns - unless a header is included that declares a function, it gets declared within the test program as returning char, so the compiler shouldn't choke on returning its value from main().  Is this failing due to the *linker* rejecting it because of mismatched function signatures?

More information about the tcpdump-workers mailing list