[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Minios-devel] [UNIKRAFT PATCH] build: add clean-libs rule



Hey Florian,

I finally was able to achieve what we wanted. I created a new patch series around your patch that adopts each Linker.uk file. In order to have the changes contained together, I will re-send out your patch as part of the series.

Thanks!

Simon

Reviewed-by: Simon Kuenzer <simon.kuenzer@xxxxxxxxx>

On 03.04.19 15:29, Florian Schmidt wrote:
Hi Simon,


On 3/29/19 3:20 PM, Simon Kuenzer wrote:
Hey,

I think the patch looks. I am just thinking how we could include the .gz binaries of Xen and KVM to UK_IMAGES...

That's probably a good idea. (Though, to be fair, I never used those .gz's myself.)

However, someone else would have to take another look then, because that probably requires some more in-depth rewriting inside our build system, and I'm not sure I'm enough of an expert for that.

Cheers,
Florian


On 04.03.19, 13:26, "Florian Schmidt" <Florian.Schmidt@xxxxxxxxx> wrote:

     This rule allows to clean all intermediate files, but keep the final
     image(s). Simply removing the final image from the LIBPLAT_CLEAN works      because the image itself is also cleaned by removing all UK_IMAGES in a
     further clean step (which happened to be a noop until now).
     Signed-off-by: Florian Schmidt <florian.schmidt@xxxxxxxxx>
     ---
      Makefile              | 12 ++++++++----
      plat/kvm/Linker.uk    |  1 -
      plat/linuxu/Linker.uk |  1 -
      plat/xen/Linker.uk    |  1 -
      4 files changed, 8 insertions(+), 7 deletions(-)
     diff --git a/Makefile b/Makefile
     index 8e81c64b..4a0c8c70 100644
     --- a/Makefile
     +++ b/Makefile
     @@ -532,10 +532,12 @@ all: images
      # Generate cleaning rules
      include $(CONFIG_UK_BASE)/support/build/Makefile.clean
     -clean: $(addprefix clean-,\
     +clean-libs: $(addprefix clean-,\
          $(foreach P,$(UK_PLATS) $(UK_PLATS-y),\
          $(if $(call qstrip,$($(call uc,$(P))_LIBS) $($(call uc,$(P))_LIBS-y)),\           $(foreach L,$($(call uc,$(P))_LIBS) $($(call uc,$(P))_LIBS-y), $(L)))) $(UK_LIBS) $(UK_LIBS-y))
     +
     +clean: clean-libs
          $(call verbose_cmd,CLEAN,build/,$(RM) \
              $(UK_CONFIG_OUT) \
              $(call build_clean,$(UK_IMAGES-y)) \
     @@ -545,7 +547,7 @@ else # !($(UK_HAVE_DOT_CONFIG),y)
      all: menuconfig
     -.PHONY: prepare image libs objs clean
     +.PHONY: prepare image libs objs clean-libs clean
      fetch: menuconfig
     @@ -557,7 +559,7 @@ libs: menuconfig
      images: menuconfig
     -clean:
     +clean-libs clean:
          $(error Do not know which files to clean without having a configuration. Did you mean 'properclean' or 'distclean'?)
      endif
     @@ -757,8 +759,10 @@ help:
          @echo 'Cleaning:'
          @echo '  clean-[LIBNAME]        - delete all files created by build for a single library'
          @echo '                           (e.g., clean-libfdt)'
     +    @echo '  clean-libs             - delete all files created by build for all libraries'      +    @echo '                           but keep final images and fetched files'           @echo '  clean                  - delete all files created by build for all libraries'
     -    @echo '                           but keep fetched files'
     +    @echo '                           including final images, but keep fetched files'
          @echo '  properclean            - delete build directory'
          @echo '  distclean              - delete build directory and configurations (including .config)'
          @echo ''
     diff --git a/plat/kvm/Linker.uk b/plat/kvm/Linker.uk
     index 3e6747d5..3cb29668 100644
     --- a/plat/kvm/Linker.uk
     +++ b/plat/kvm/Linker.uk
     @@ -61,7 +61,6 @@ endif
      UK_IMAGES-$(CONFIG_PLAT_KVM) += $(KVM_IMAGE)
      # ...for cleaning:
     -LIBKVMPLAT_CLEAN += $(call build_clean,$(KVM_IMAGE))
      LIBKVMPLAT_CLEAN += $(call build_clean,$(KVM_IMAGE).gz)

What if remove the .gz here, add it to UK_IMAGES and split the image creation rules into two: First creating the uncompressed image and another rule that creates the gz image based on the uncompressed.
The equivalent we would need to do for Xen.

      LIBKVMPLAT_CLEAN += $(call build_clean,$(KVM_IMAGE).dbg)
      LIBKVMPLAT_CLEAN += $(call build_clean,$(KVM_IMAGE).sym)
     diff --git a/plat/linuxu/Linker.uk b/plat/linuxu/Linker.uk
     index dbdf9d96..5dba5a10 100644
     --- a/plat/linuxu/Linker.uk
     +++ b/plat/linuxu/Linker.uk
     @@ -37,6 +37,5 @@ endif
      UK_IMAGES-$(CONFIG_PLAT_LINUXU) += $(LINUXU_IMAGE)
      # ...for cleaning:
     -LIBLINUXUPLAT_CLEAN += $(call build_clean,$(LINUXU_IMAGE))
      LIBLINUXUPLAT_CLEAN += $(call build_clean,$(LINUXU_IMAGE).dbg)
      LIBLINUXUPLAT_CLEAN += $(call build_clean,$(LINUXU_IMAGE).sym)
     diff --git a/plat/xen/Linker.uk b/plat/xen/Linker.uk
     index 801f5e2e..497fa47b 100644
     --- a/plat/xen/Linker.uk
     +++ b/plat/xen/Linker.uk
     @@ -89,4 +89,3 @@ LIBXENPLAT_CLEAN += $(call build_clean,$(XEN_IMAGE).elf)
      LIBXENPLAT_CLEAN += $(call build_clean,$(XEN_IMAGE).gz)
      LIBXENPLAT_CLEAN += $(call build_clean,$(XEN_IMAGE).dbg)
      LIBXENPLAT_CLEAN += $(call build_clean,$(XEN_IMAGE).sym)
     -LIBXENPLAT_CLEAN += $(call build_clean,$(XEN_IMAGE))
     --
     2.21.0
What do you think?

Thanks,

Simon



_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.