Subject: kern/4682: kernel won't link with ISO and NETATALK and no ethernet driver
To: None <gnats-bugs@gnats.netbsd.org>
From: Bernd Ernesti <bernd@arresum.inka.de>
List: netbsd-bugs
Date: 12/13/1997 19:53:04
>Number:         4682
>Category:       kern
>Synopsis:       kernel won't link with ISO and NETATALK and no ethernet driver
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people (Kernel Bug People)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Dec 13 11:05:00 1997
>Last-Modified:
>Originator:     Bernd Ernesti
>Organization:
	
>Release:        NetBSD-1.3_BETA of today
>Environment:
	
System: NetBSD arresum 1.3_BETA NetBSD 1.3_BETA (VEEGO) #613: Sat Nov 29 13:54:33 MET 1997 bernd@arresum:/home/work/obj_amiga/src/sys/arch/amiga/compile/VEEGO amiga


>Description:
	Try to build a kernel with ISO and NETATALK and remove all
	ethernet drivers from the kernel config.
	It is not possible to link a kernel with this options.

	This happens on the amiga, but from what I see in the source
	of the affected files this should happen on all other ports.
>How-To-Repeat:
	Try to build a kernel with:
		options ISO
		options NETATALK
	and no ethernet drivers. I keeped the bah* driver which is an arcnet
	driver, but this shouldn't matter, because the problem is that there
	is no ethernet support in the kernel.
	Watch the errors you get from the linking:

ld -n -Ttext 0 -e start -S -o netbsd ${SYSTEM_OBJ} vers.o
aarp.o: Undefined symbol `_ether_sprintf' referenced from text segment
clnp_input.o: Undefined symbol `_ether_output' referenced from text segment
iso.o: Undefined symbol `_ether_output' referenced from text segment
iso_snpac.o: Undefined symbol `_ether_addmulti' referenced from text segment
iso_snpac.o: Undefined symbol `_ether_delmulti' referenced from text segment
*** Error code 1

>Fix:
	I don't think it is possible to fix netatalk/aarp.c, netiso/clnp_input.c,
	netiso/iso.c and netiso/iso_snpac.c to not use the ether_* functions.
	So the only way to fix the problem is to build ISO and NETATALK only
	if there is an ethernet driver in the kernel.

	Change this in src/sys/conf/files:

old:
file netatalk/aarp.c			netatalk
[..]
file netiso/clnp_debug.c		iso
[..]

new:
file netatalk/aarp.c			netatalk & ether
[..]
file netiso/clnp_debug.c		iso & ether
[..]
>Audit-Trail:
>Unformatted: