Over the past week or so as I've been finally recovering from a bad
cold, I spent a few hours here and there putting together the beginnings
of a nearly full system build (no toolchain of course, and none of
src/gnu, though I added diff and diff3 from OpenBSD so that I'm not
missing much) with crunchgen using the distrib/i386/ramdisk and
distrib/i386/instkernel infrastructure.
Right now the compressed image is just over 7 MB, expanding into a 12MB
memory disk filesystem after boot.
$ size ramdiskbin
text data bss dec hex filename
9975285 325900 4231992 14533177 ddc239 ramdiskbin
# ls -li /bin/sh
17 -r-xr-xr-x 288 root wheel 10304552 Mar 20 01:53 /bin/sh
I'm having trouble though with integrating two rather major and
essential groups of programs, primarily due to each of them having a
private, and differing, variant of libisc: NTP and BIND (and perhaps
something else with DHCP).
I did manage to get them all to link and load with BIND's copy of libisc
after munging a few minor things to provide some missing symbols and
avoid a couple of symbol clashes. However as you might expect, this
configuration doesn't actually work. The NTP tools fail spectacularly.
Dhclient sends requests but never sees the offers arriving, though I
think named might work.
Removing BIND again and switching back to libisc.a from NTP gets
everything working, I think. I get a weird error from ntpdate, but it
seems to work.
I'm wondering if it might be worthwhile even in a larger context to move
libisc from these big subsystems into src/lib (and of course adapt them
to build with this new common variant).
--
Greg A. Woods
Planix, Inc.
<woods%planix.com@localhost> +1 416 218 0099 http://www.planix.com/