Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
New 'config' pulls in undesired subsystems
I've finally gotten around to building -current again. The changes to
'config' cause a number of my custom kernels to not build because a
subsystem I thought I'd eliminated is (incompletely) pulled in anyway.
In particular, I have a number of sparc systems in which I intend never
to have a framebuffer/keyboard/mouse, so the whole "wscons" system is
unneeded and undesirable.
I've taken to using a "differential" approach to kernel configurations
including "GENERIC" (or other appropriate stock configuration) and
disabling unneeded items with the "no foo at bar", "no options FOOOPTION"
convention.
So I have all the framebuffers, keyboard, mouse, (and associated zs,
zstty) drivers excluded along with their wskbd, wsdisplay, wsmux, wsfont
(pseudo-)devices as well as all WSXXX-related options. I've been using
this mechanism (and these same config files, with minor tweaks) since
about mid-way between the release of netbsd-5 and netbsd-6.
Something is causing 'config' to think the "wscons" subsystem is needed
and it pulls in a part of it (wsdisplay) which fails to link--presumedly
since all the framebuffers are disabled.
I noticed during one attempt that it was explicitly pulling in the dumb
terminal emulation. The rather ironic inclusion of "options
WSEMUL_NO_DUMB" to keep "wsdisplay" from being included was not effective.
The typical failure is:
[...]
--- netbsd ---
# link AURORA/netbsd
/d0/build/current/tools/i386/bin/sparc--netbsdelf-ld -Map netbsd.map --cref -n -T /x/current/src/sys/arch/sparc/conf/kern.ldscript -Ttext F0004000 -e start -X -S -o netbsd ${SYSTEM_OBJ} ${EXTRA_OBJ} vers.o
wsdisplay.o: In function `wsdisplaywrite':
wsdisplay.c:(.text+0x488): undefined reference to `wsdisplay_cd'
wsdisplay.c:(.text+0x490): undefined reference to `wsdisplay_cd'
wsdisplay.o: In function `wsdisplaymmap':
wsdisplay.c:(.text+0x510): undefined reference to `wsdisplay_cd'
wsdisplay.c:(.text+0x518): undefined reference to `wsdisplay_cd'
wsdisplay.o: In function `wsdisplayopen':
wsdisplay.c:(.text+0x5a4): undefined reference to `wsdisplay_cd'
wsdisplay.o:wsdisplay.c:(.text+0x5ac): more undefined references to `wsdisplay_cd' follow
*** [netbsd] Error code 1
nbmake: stopped in /d0/build/current/obj/sparc/sys/arch/sparc/compile/AURORA
1 error
nbmake: stopped in /d0/build/current/obj/sparc/sys/arch/sparc/compile/AURORA
ERROR: Failed to make all in "/d0/build/current/obj/sparc/sys/arch/sparc/compile/AURORA"
*** BUILD ABORTED ***
In the build directory for the kernel are the following files starting
with "ws":
$ ls -laF ws*
-rw-rw-r-- 1 sysop wsrc 5704 Oct 16 11:14 wsdisplay.d
-rw-rw-r-- 1 sysop wsrc 276 Oct 16 11:14 wsdisplay.h
-rw-rw-r-- 1 sysop wsrc 25852 Oct 16 11:34 wsdisplay.o
-rw-rw-r-- 1 sysop wsrc 3593 Oct 16 11:14 wsdisplay_util.d
-rw-rw-r-- 1 sysop wsrc 2728 Oct 16 11:34 wsdisplay_util.o
-rw-rw-r-- 1 sysop wsrc 3449 Oct 16 11:14 wsemulconf.d
-rw-rw-r-- 1 sysop wsrc 3376 Oct 16 11:34 wsemulconf.o
-rw-rw-r-- 1 sysop wsrc 5015 Sep 3 20:10 wsevent.d
-rw-rw-r-- 1 sysop wsrc 6508 Oct 16 11:34 wsevent.o
-rw-rw-r-- 1 sysop wsrc 3444 Sep 3 20:10 wsfont.d
-rw-rw-r-- 1 sysop wsrc 255 Oct 16 11:14 wsfont.h
-rw-rw-r-- 1 sysop wsrc 15204 Oct 16 11:34 wsfont.o
-rw-rw-r-- 1 sysop wsrc 1443 Oct 16 11:14 wsfont_glue.h
-rw-rw-r-- 1 sysop wsrc 3767 Sep 3 20:10 wsfontdev.d
-rw-rw-r-- 1 sysop wsrc 3196 Sep 21 10:25 wsfontdev.o
-rw-rw-r-- 1 sysop wsrc 248 Sep 3 20:08 wskbd.h
-rw-rw-r-- 1 sysop wsrc 262 Sep 3 20:08 wsmouse.h
-rw-rw-r-- 1 sysop wsrc 4824 Sep 3 20:10 wsmux.d
-rw-rw-r-- 1 sysop wsrc 248 Oct 16 11:14 wsmux.h
-rw-rw-r-- 1 sysop wsrc 8428 Sep 21 10:25 wsmux.o
Looking at al the "#define NWSfoo" shows:
$ grep "define..*NWS" ws*.h
wsdisplay.h:#define NWSDISPLAY 1
wsfont.h:#define NWSFONT 0
wsfont_glue.h:#define NWSFONT_GLUE 0
wsfont_glue.h:#define NWSDISPLAY 1
wsfont_glue.h:#define NWSFONT 0
wskbd.h:#define NWSKBD 0
wsmouse.h:#define NWSMOUSE 0
wsmux.h:#define NWSMUX 0
Something is causing "NWSDISPLAY" to be set to 1, causing it to be
included.
Meanwhile, building for netbsd-7 with the same configuration file
works and results in fewer files:
$ ls -laF ws*
-rw-rw-r-- 1 sysop wsrc 276 Aug 16 18:23 wsdisplay.h
-rw-rw-r-- 1 sysop wsrc 4990 Aug 16 18:25 wsevent.d
-rw-rw-r-- 1 sysop wsrc 6364 Aug 16 18:34 wsevent.o
-rw-rw-r-- 1 sysop wsrc 3379 Aug 16 18:25 wsfont.d
-rw-rw-r-- 1 sysop wsrc 255 Oct 14 21:17 wsfont.h
-rw-rw-r-- 1 sysop wsrc 15096 Aug 16 18:34 wsfont.o
-rw-rw-r-- 1 sysop wsrc 1443 Oct 14 21:17 wsfont_glue.h
-rw-rw-r-- 1 sysop wsrc 3707 Aug 16 18:25 wsfontdev.d
-rw-rw-r-- 1 sysop wsrc 3144 Aug 16 18:34 wsfontdev.o
-rw-rw-r-- 1 sysop wsrc 248 Aug 16 18:23 wskbd.h
-rw-rw-r-- 1 sysop wsrc 262 Aug 16 18:23 wsmouse.h
-rw-rw-r-- 1 sysop wsrc 4789 Aug 16 18:25 wsmux.d
-rw-rw-r-- 1 sysop wsrc 248 Oct 14 21:17 wsmux.h
-rw-rw-r-- 1 sysop wsrc 8336 Aug 16 18:34 wsmux.o
Looking at all the "#define NWSfoo" shows:
$ grep "define..*NWS" ws*.h
wsdisplay.h:#define NWSDISPLAY 0
wsfont.h:#define NWSFONT 0
wsfont_glue.h:#define NWSFONT_GLUE 0
wsfont_glue.h:#define NWSDISPLAY 0
wsfont_glue.h:#define NWSFONT 0
wskbd.h:#define NWSKBD 0
wsmouse.h:#define NWSMOUSE 0
wsmux.h:#define NWSMUX 0
i.e., all 0, particularly NWSDISPLAY, so it's all disabled.
Any clues as to what can be done to ensure wscons/wsdisplay is fully
disabled in -current?
Thanks.
--
|/"\ John D. Baker, KN5UKS NetBSD Darwin/MacOS X
|\ / jdbaker[snail]mylinuxisp[flyspeck]com OpenBSD FreeBSD
| X No HTML/proprietary data in email. BSD just sits there and works!
|/ \ GPGkeyID: D703 4A7E 479F 63F8 D3F4 BD99 9572 8F23 E4AD 1645
Home |
Main Index |
Thread Index |
Old Index