of src/sys/kern/kern_module.c), the default was "off" for all kernels
including rump kernels. While many (most?) kernel config files were
updated to include the new option, rump kernels weren't so lucky. Thus,
rump kernels still had autoload disabled.
This commit uses rump_sysctl to change the module_autoload_on value to
true (ie, enabled) before trying to test if autoloading actually works.
For now, I am _not_ changing the default for all rump kernels. I'll
leave that for another day, after all appropriate discussion has occurred.
rump kernel" clauses from bsd.own.mk to Makefile.rump. Also,
add a rump_nativeabi_p() call to determine if rump kernel is
compiled with native ABI support.
/stand/arch/vers/kmods works in rump (and that the result is usable ;).
On i386 this "just works". For amd64, due to -mcmodel=kernel,
things are a little more complicated. We must have the entire rump
kernel loaded in the lower 2GB. Currently, this can be done either
by using the non-PIC version for the rump kernel compiled with
-mcmodel=small, or, as njoly pointed out, using netbsd32, which
causes vm_default_addr() to give something in the lower 2GB and
therefore shared libs "magically" getting loaded there. I guess
it would be possible to put a suggested vaddr into the rump kernel
libs and make ld.elf_so map memory from the suggested address if
present ... but that's another show.
Also thanks to tron for access to an amd64 so that I could verify
the test works.