On 18/03/15 21:29, Antti Kantee wrote:
I don't think there's any reason for pseudo-linking to use -r. It can just link the userspace bits much like cc.configure does now. That takes care of testing that the "userspace" part of the configuration works, which is an important part of the "compile-tested" feedback loop for the user. The pseudo-linker can then record the names of the objects and libs and other ld command line parameters into the target file, from where rumprun picks them up when it does the actual linking.
And just to extend, pseudo-linking also mirrors the paradigm that folks are used to:
You crosscompile your program against the userspace libc (pseudo-linking in our terminology), but can't run it without a kernel instance. Only when you link+boot your kernel and exec your program (rumprun) will your program run. However, your program may or may not run correctly on any specific kernel, e.g. drivers missing. Now, in the case of rump kernels the "drivers missing" part may be more extreme, e.g. file system support completely missing, but it's still the same principle.
