[email protected] said: > Martin Lucina writes ("rumprun-xen: Cleaning up the Mini-OS namespace"): > > These changes also remove the old (non-app-tools based) demo from the > > rumprun-xen build. I've added in a simple "Hello World" demo using > > Ian's app-tools for testing. We can improve the demos later. > > That demo is used as a smoke test by our CI system.
Which demo? What CI system? I only disabled the old rumpkern_demo.c from the build, not the app-tools tests/configure which is used by the Travis CI configuration. > > 1) Would the upstream Xen folks be interested in these changes? I have > > deliberately tried to avoid making any functional changes, and kept the > > Mini-OS name and namespace to facilitate merging, despite discussing > > various other non-OS names with Antti :-) > > We definitely want these changes upstream. Okay, that needs a bit more work (see the other relevant threads on the list). Also, the rumprun-xen build makes extraneous changes to the Mini-OS Makefile, which we shouldn't be doing if we don't want to diverge. ie. We should import the xen.git mini-os into rumprun-xen verbatim... > > 2) The objcopy command in app-tools/ld is now redundant, right? This was > > presumably part of a former attempt at fixing the namespacing issue. > > I haven't reviewed your patch series, but it seems unlikely that this > is no longer needed. > > The objcopy is there to separate the NetBSD `kernel' namespace from > the application `userland' namespace. The lines in question are: (Makefile:138, GLOBAL_PREFIX is set to xenos_) $(OBJCOPY) -w -G $(GLOBAL_PREFIX)* -G _start [email protected] [email protected] (app-tools/ld:52) objcopy -w -G xenos_* -G _start "$inter1" "$inter2" Thing is, there are no symbols called xenos_* being defined anywhere that I can see, which is why I wrote that this seems a part of a former attempt to fix the namespacing problem. My patches handle this differently - Mini-OS is linked using ld -r into a discrete .o file and objcopy is run on the resulting minios.o file at build time to make all symbols except some select prefixes local to that file: # Prefixes for global API names. All other symbols in mini-os are localised # before linking with rumprun applications. GLOBAL_PREFIXES := _minios_ minios_ HYPERVISOR_ blkfront_ netfront_ pcifront_ xenbus_ GLOBAL_PREFIXES := $(patsubst %,-G %*, $(GLOBAL_PREFIXES)) minios.o: links $(OBJS) arch_lib $(LD) -r $(LDFLAGS) $(OBJS) $(LDARCHLIB) $(LDLIBS) -o $@ $(OBJCOPY) -w $(GLOBAL_PREFIXES) -G _start $@ $@ app-tools then links your user application with this minios.o. Hope this clears things up. Martin ------------------------------------------------------------------------------ _______________________________________________ rumpkernel-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/rumpkernel-users
