Hello, we hit this problem while building PF on Solaris, where sizeof(sa_family_t) == 2 patch below fixes the problem for Solaris.
regards sasha cvs diff -p output: ------8<------8<------8<------ Index: pfvar.h =================================================================== RCS file: /cvs/src/sys/net/pfvar.h,v retrieving revision 1.416 diff -p -r1.416 pfvar.h *** pfvar.h 16 Jul 2015 21:14:21 -0000 1.416 --- pfvar.h 16 Jul 2015 22:10:10 -0000 *************** extern void pf_print_flags(u_int8_t); *** 1791,1797 **** extern struct ifnet *sync_ifp; extern struct pf_rule pf_default_rule; extern void pf_addrcpy(struct pf_addr *, struct pf_addr *, ! u_int8_t); void pf_rm_rule(struct pf_rulequeue *, struct pf_rule *); void pf_purge_rule(struct pf_ruleset *, --- 1791,1797 ---- extern struct ifnet *sync_ifp; extern struct pf_rule pf_default_rule; extern void pf_addrcpy(struct pf_addr *, struct pf_addr *, ! sa_family_t); void pf_rm_rule(struct pf_rulequeue *, struct pf_rule *); void pf_purge_rule(struct pf_ruleset *, *************** struct pf_os_fingerprint * *** 1984,1990 **** pf_osfp_validate(void); #ifdef _KERNEL ! void pf_print_host(struct pf_addr *, u_int16_t, u_int8_t); int pf_get_transaddr(struct pf_rule *, struct pf_pdesc *, struct pf_src_node **, struct pf_rule **); --- 1984,1990 ---- pf_osfp_validate(void); #ifdef _KERNEL ! void pf_print_host(struct pf_addr *, u_int16_t, sa_family_t); int pf_get_transaddr(struct pf_rule *, struct pf_pdesc *, struct pf_src_node **, struct pf_rule **);