The macro SPL_INT(x) defined in ip_compat.h as either int x or empty causes trouble with older C compilers (such as Sun Workshop 5.0) that do not tolerate empty statements ";" between definitions. This concerns ip_nat.c l. 4349, fil.c l. 2316, and possibly (not in Solaris or Linux) ip_auth.c l. 369 (line numbers for 4.1.10). Fix: Always use SPL_INT(x) as the last definition. In fil.c, this is difficult because of #ifdef structure. Or use a different compiler.
