The original pattern of an SCTP syscall was
int syscall_name (td, uap) { #if (defined(INET) || defined(INET6)) && defined(SCTP) body return (error); #else return (EOPNOTSUPP); #endif }
This was changed in r 363079
int syscall_name (td, uap) { #if defined(INET) || defined(INET6) body return (error); #endif }
This does not work when neither INET nor INET6 is defined, since the function is expected to return an int. I think this file is not intended to be compiled in this case, therefore I propose to remove the #ifdefs.
sys/conf/files contains
netinet/sctp_syscalls.c optional inet sctp | inet6 sctp
and the SCTP module should also not be compiled on a kernel not supporting INET and not supporting INET6.
If the above analysis is not correct, one needs to re-add some #else clauses.