Hello everyone -

I've been playing around with combining the rump kernel with the HaLVM, and
have a few quick (I hope) questions, mostly in the service of trying to
minimize the amount of code I end up linking.

(1) Is there a guide somewhere that describes (at least briefly) what each
library in the rumpkernel (rumprun_base, rump, rumpkern_bmktc, rumpdev_bpf,
etc.) is supposed to do? Some of them I can guess by the name (rumpdev_bpf,
for example), but others are a bit more opaque. I can try to start putting
one together somewhere, if not.

(2) I was stripping down a rumpkernel image to try to get rid of as many
dependencies as possible, and ended up needing to write a
"librumpnonet_config" (note the "no"), in order to satisfy some
dependencies in librumprun_base.  It's obviously pretty simple, and I'd be
happy to send a pull request if you're interested, but another way to do it
would be with weak definitions in rumprun_base. Do you have a preference
between the two approaches? The functions in question are
'rump_pub_netconfig_ipv6_ifaddr', 'rump_pub_netconfig_ipv4_gw', and
friends.

(4) There's a lot of --whole-archive thrown around in the linker files. Is
trying to get rid of these a fight worth attempting, or have you already
tried and I should just give up now and trust 'strip' to help me later? (A
conclusion I'd like to avoid, as I don't want to get rid of debugging
symbols, just dead code.)

I think that's it for now. So far this has been a pretty smooth transition,
and I'm really excited about some of the capabilities it brings. I'm just
trying to make sure I hit a couple big issues (like binary size) early, to
make sure I'm not surprised by them later.

Thanks for all your hard work!

- Adam

Reply via email to