Bug 23879

Summary: kernel linking fails for pseudo-device ef without IPX
Product: Base System Reporter: ke.fbsd <ke.fbsd>
Component: kernAssignee: Boris Popov <bp>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: 4.2-RELEASE   
Hardware: Any   
OS: Any   

Description ke.fbsd 2000-12-27 08:10:01 UTC
I have configured a kernel including various options from LINT, especially:
pseudo-device ef
options ETHER_II
options ETHER_8023
options ETHER_8022
options ETHER_SNAP
However I have not included the IPX protocol.

When doing the kernel make, I got a linker error:
...
linking kernel
if_ef.o: In function `ef_load':
if_ef.o(.text+0x842): undefined reference to `ef_inputp'
if_ef.o(.text+0x84c): undefined reference to `ef_outputp'
if_ef.o: In function `ef_unload':
if_ef.o(.text+0x868): undefined reference to `ef_inputp'
if_ef.o(.text+0x872): undefined reference to `ef_outputp'
*** Error code 1

Fix: 

in /usr/src/sys/net/if_ethersubr.c, ef_inputp and ef_outputp are only defined inside a #ifdef IPX
however
in /usr/src/sys/net/if_ef.c, they are used without this condition.
How-To-Repeat: in the 4.2-RELEASE kernel source, configure a kernel with pseudo-device ef but without IPX,
make depend, make.
Comment 1 bill fumerola freebsd_committer freebsd_triage 2000-12-27 18:27:03 UTC
Responsible Changed
From-To: freebsd-bugs->bp

Boris's driver
Comment 2 Boris Popov freebsd_committer freebsd_triage 2001-01-01 08:10:59 UTC
State Changed
From-To: open->closed

Currently ef(4) driver used only for IPX protocol. However compile-time 
error would be more appropriate in this situation. 

Thanks for report.
Comment 3 David Bear 2001-07-10 19:11:04 UTC
This same error occurs with RELEASE-4.3.  

I am assuming that I don't need multiple ethernet frame types if I'm not
using IPX?  ie. I don't need 802.3 and ETHERNET_SNAP.. if I'm just using
TCPIP.  If I comment the psuedo-device ef, does the 'options
ethernet_II' have any effect on any other device?

-- 
David Bear
College of Public Programs/ASU
voice: 480-965-8257