Tried building IPFW into my kernel and it failed midway with this:
cc -c -O2 -pipe -fno-strict-aliasing -g -nostdinc -I.
-I/usr/src/sys -I/usr/src/sys/contrib/libfdt -D_KERNEL -DHAVE_
KERNEL_OPTION_HEADERS -include opt_global.h -fno-omit-frame-pointer
-mno-omit-leaf-frame-pointer -MD -MF.depend.ppb_1
284.o -MTppb_1284.o -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse
-msoft-float -fno-asynchronous-unwind-tables -ffre
estanding -fwrapv -fstack-protector -gdwarf-2 -Wall -Wredundant-decls
-Wnested-externs -Wstrict-prototypes -Wmissing-p
rototypes -Wpointer-arith -Winline -Wcast-qual -Wundef
-Wno-pointer-sign -D__printf__=__freebsd_kprintf__ -Wmissing-i
nclude-dirs -fdiagnostics-show-option -Wno-unknown-pragmas
-Wno-error-tautological-compare -Wno-error-empty-body -Wn
o-error-parentheses-equality -Wno-error-unused-function
-Wno-error-pointer-sign -Wno-error-shift-negative-value -mno-
aes -mno-avx -std=iso9899:1999 -Werror /usr/src/sys/dev/ppbus/ppb_1284.c
/usr/src/sys/dev/ppbus/ppb_1284.c:296:46: error: implicit conversion
from 'int' to 'char' changes value from 144 to
-112 [-Werror,-Wconstant-conversion]
if ((error = do_peripheral_wait(bus, SELECT | nBUSY, 0))) {
~~~~~~~~~~~~~~~~~~ ~~~~~~~^~~~~~~
/usr/src/sys/dev/ppbus/ppb_1284.c:785:48: error: implicit conversion
from 'int' to 'char' changes value from 240 to -16
[-Werror,-Wconstant-conversion]
if (do_1284_wait(bus, nACK | SELECT | PERROR | nBUSY,
~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/src/sys/dev/ppbus/ppb_1284.c:786:29: error: implicit conversion
from 'int' to 'char' changes value from 240 to -16
[-Werror,-Wconstant-conversion]
nACK | SELECT | PERROR | nBUSY)) {
~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/src/sys/dev/ppbus/ppb_1284.c:841:37: error: implicit conversion
from 'int' to 'char' changes value from 200 to -56
[-Werror,-Wconstant-conversion]
if (do_1284_wait(bus, nACK | nBUSY | nFAULT, nFAULT)) {
~~~~~~~~~~~~ ~~~~~~~~~~~~~^~~~~~~~
4 errors generated.
*** Error code 1
Stop.
make[2]: stopped in /usr/obj/usr/src/sys/IPFW
*** Error code 1
Stop.
make[1]: stopped in /usr/src
*** Error code 1
Stop.
make: stopped in /usr/src
q
[1] Exit 1 ( make buildkernel KERNCONF=IPFW
&& make installkernel KERNCONF=IPFW )
root@****:/usr/src # uname -a
FreeBSD **** 11.0-STABLE FreeBSD 11.0-STABLE #0 r314941: Thu Mar 9
19:39:31 UTC 2017
root at releng2.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64