Merged to master at 8dff9e88bf22..ea4a8d9099a9 (from, to] You can see the entire diff with 'git diff' or at https://github.com/brho/akaros/compare/8dff9e88bf22...ea4a8d9099a9
On 2017-04-25 at 11:04 Barret Rhoden <[email protected]> wrote: > In commit 3035c3db676f ("user/vmm: add and use a load_elf function") > we established a dependency from VMM to elfutils. However, vmm was > getting installed during the toolchain installation (through make > install-libs). This was before elfutils was installed. > > Breaking user-dirs into the base libraries that are expected to go with > the toolchain and 'extra' libraries that other code (e.g. vmrunkernel > and dune) needs does the trick. Mostly - perfmon should also be an > 'extra' library, but due to the way our apps-install works, it won't > work out. The longer range solution is to make actual packages for > perfmon and vmm and have them get built and installed via a package > management system. > > Rebuild your toolchain, if you want to make sure this works. > > Signed-off-by: Barret Rhoden <[email protected]> > --- > Makefile | 22 +++++++++++++++------- > tools/compilers/gcc-glibc/Makefile | 2 +- > 2 files changed, 16 insertions(+), 8 deletions(-) > > diff --git a/Makefile b/Makefile > index 0bbc408ead02..6d126995ed9d 100644 > --- a/Makefile > +++ b/Makefile > @@ -591,15 +591,23 @@ endif #ifeq ($(mixed-targets),1) > # List all userspace directories here, and state any dependencies between > them, > # such as how pthread depends on parlib. > > -user-dirs = parlib pthread benchutil iplib ndblib vmm perfmon > +# Critical libraries, also built during the toolchain install > +user-base-dirs = parlib pthread benchutil iplib ndblib perfmon > benchutil: parlib > pthread: parlib benchutil > iplib: parlib > ndblib: iplib > -vmm: parlib benchutil iplib ndblib > > -PHONY += install-libs $(user-dirs) > -install-libs: $(user-dirs) symlinks cc-exists > +# Higher-level libraries. Built before tests/, but after apps-install. > +# TODO: would like to move perfmon here, since it's not meant to be > low-level. > +# But the apps-install has perf, which depends on user/perfmon. > +user-extra-dirs = vmm > +$(user-extra-dirs): $(user-base-dirs) > + > +user-dirs = $(user-base-dirs) $(user-extra-dirs) > + > +PHONY += install-base-libs $(user-dirs) > +install-base-libs: $(user-base-dirs) symlinks cc-exists > > $(user-dirs): > @$(MAKE) -C user/$@ DEPLIBS="$^" && $(MAKE) -C user/$@ install > @@ -614,7 +622,7 @@ $(clean-user-dirs): > @$(MAKE) -C user/$(patsubst _clean_user_%,%,$@) clean > > tests/: tests > -tests: install-libs > +tests: user > @$(MAKE) -f tests/Makefile > > PHONY += utest > @@ -642,7 +650,7 @@ $(OBJDIR)/.dont-force-fill-kfs: > @echo "User space tests removed from KFS" > @touch $(OBJDIR)/.dont-force-fill-kfs > > -fill-kfs: $(OBJDIR)/.dont-force-fill-kfs install-libs tests > +fill-kfs: $(OBJDIR)/.dont-force-fill-kfs user tests > @mkdir -p $(FIRST_KFS_PATH)/lib > $(Q)cp -uP $(xcc-so-files) $(FIRST_KFS_PATH)/lib > @echo "Cross Compiler 'so' files installed to KFS" > @@ -737,7 +745,7 @@ $(xcc_subcmd_goals): > PHONY += xcc-upgrade > xcc-upgrade: xcc > @$(MAKE) userclean > - @$(MAKE) install-libs > + @$(MAKE) install-base-libs > @$(MAKE) testclean utestclean > @$(call make_as_parent, apps-clean) > @$(call make_as_parent, apps-install) > diff --git a/tools/compilers/gcc-glibc/Makefile > b/tools/compilers/gcc-glibc/Makefile > index 5d8ef20868b7..d4a92a10de00 100644 > --- a/tools/compilers/gcc-glibc/Makefile > +++ b/tools/compilers/gcc-glibc/Makefile > @@ -613,7 +613,7 @@ $(BINARY_PREFIX)glibc-stage2-builddir: > glibc-$(GLIBC_VERSION) > .$(BINARY_PREFIX)akaros-libs-install: > cd $(AKAROSDIR); \ > make ARCH=$(AKAROS_ARCH_DIR) userclean; \ > - make ARCH=$(AKAROS_ARCH_DIR) -j $(MAKE_JOBS) install-libs > + make ARCH=$(AKAROS_ARCH_DIR) -j $(MAKE_JOBS) install-base-libs > > ################################## > ########### Gcc Stage 3 ########## -- You received this message because you are subscribed to the Google Groups "Akaros" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. For more options, visit https://groups.google.com/d/optout.
