kernel compile fails if device bpf is not enabled

From: Gary Jennejohn <garyj_at_gmx.de>
Date: Tue, 07 Feb 2023 09:08:12 UTC
I just saw this error today because I didn't have device bpf enabled in
my kernel configuration file:

--------------------------------------------------------------
>>> stage 3.1: building everything
--------------------------------------------------------------
linking kernel.full
ld: error: undefined symbol: bpf_mtap_if
>>> referenced by if.c:4724 (/usr/src/sys/net/if.c:4724)
>>>               if.o:(if_bpfmtap)
>>> referenced by if_tuntap.c:1717 (/usr/src/sys/net/if_tuntap.c:1717)
>>>               if_tuntap.o:(tunread)
>>> referenced by if_vlan.c:1292 (/usr/src/sys/net/if_vlan.c:1292)
>>>               if_vlan.o:(vlan_transmit)

ld: error: undefined symbol: bpf_mtap2_if
>>> referenced by if_gif.c:323 (/usr/src/sys/net/if_gif.c:323)
>>>               if_gif.o:(gif_transmit)
>>> referenced by if_tuntap.c:1816 (/usr/src/sys/net/if_tuntap.c:1816)
>>>               if_tuntap.o:(tunwrite)
--- kernel.full ---
*** [kernel.full] Error code 1

This happens because a dummy bpf_mtap_if() (called a NOP stub in bpf.c)
isn't being defined if bpf is not enabled.

--
Gary Jennejohn