[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT PATCH 4/5] plat/kvm: Support UK_DEBUG_IMAGES(-y)
Splits the single linker build rule into multiple smaller build rules. By doing this, each individual image file is either be referenced in the UK_IMAGE(-y) list or in the UK_DEBUG_IMAGE(-y) list. `make clean-libs` will no longer remove image files. Signed-off-by: Simon Kuenzer <simon.kuenzer@xxxxxxxxx> --- plat/kvm/Linker.uk | 55 +++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/plat/kvm/Linker.uk b/plat/kvm/Linker.uk index 966b265a..1281ada0 100644 --- a/plat/kvm/Linker.uk +++ b/plat/kvm/Linker.uk @@ -10,14 +10,15 @@ KVM_LDSCRIPT := $(call src2lds,libkvmplat,$(KVM_LDSCRIPT_SRC-y)) ## Link image ## KVM_IMAGE := $(BUILD_DIR)/$(CONFIG_UK_NAME)_kvm-$(CONFIG_UK_ARCH) +KVM_DEBUG_IMAGE := $(KVM_IMAGE).dbg KVM_LD_SCRIPT_FLAGS := $(addprefix -Wl$(comma)-T$(comma),\ $(KVM_LD_SCRIPT-y) $(EXTRA_LD_SCRIPT-y)) -$(KVM_IMAGE): $(KVM_ALIBS) $(KVM_ALIBS-y) $(KVM_OLIBS) $(KVM_OLIBS-y) \ - $(UK_ALIBS) $(UK_ALIBS-y) $(UK_OLIBS) $(UK_OLIBS-y) \ - $(KVM_LDSCRIPT) - $(call build_cmd,LD,,$@.ld.o,\ +$(KVM_DEBUG_IMAGE): $(KVM_ALIBS) $(KVM_ALIBS-y) $(KVM_OLIBS) $(KVM_OLIBS-y) \ + $(UK_ALIBS) $(UK_ALIBS-y) $(UK_OLIBS) $(UK_OLIBS-y) \ + $(KVM_LDSCRIPT) + $(call build_cmd,LD,,$(KVM_IMAGE).ld.o,\ $(LD) -r $(LIBLDFLAGS) $(LIBLDFLAGS-y) \ $(KVM_LDFLAGS) $(KVM_LDFLAGS-y) \ $(KVM_OLIBS) $(KVM_OLIBS-y) \ @@ -26,39 +27,39 @@ $(KVM_IMAGE): $(KVM_ALIBS) $(KVM_ALIBS-y) $(KVM_OLIBS) $(KVM_OLIBS-y) \ $(KVM_ALIBS) $(KVM_ALIBS-y) \ $(UK_ALIBS) $(UK_ALIBS-y) \ -Wl$(comma)--end-group \ - -o $@.ld.o) - $(call build_cmd,OBJCOPY,,$@.o,\ - $(OBJCOPY) -w -G kvmos_* -G _libkvmplat_entry $@.ld.o $@.o) -ifneq ($(filter x86_64 arm64,$(CONFIG_UK_ARCH)),) - $(call build_cmd,LD,,$@.dbg,\ + -o $(KVM_IMAGE).ld.o) + $(call build_cmd,OBJCOPY,,$(KVM_IMAGE).o,\ + $(OBJCOPY) -w -G kvmos_* -G _libkvmplat_entry \ + $(KVM_IMAGE).ld.o $(KVM_IMAGE).o) + $(call build_cmd,LD,,$@,\ $(LD) $(LDFLAGS) $(LDFLAGS-y) \ $(KVM_LDFLAGS) $(KVM_LDFLAGS-y) \ -Wl$(comma)-dT$(comma)$(call strip,$(KVM_LDSCRIPT)) \ $(KVM_LD_SCRIPT_FLAGS) \ - $@.o -o $@.dbg) - $(call verbose_cmd,SCSTRIP,$(notdir $@),\ + $(KVM_IMAGE).o -o $@) + +$(KVM_IMAGE): $(KVM_IMAGE).dbg + $(call build_cmd,SCSTRIP,,$@,\ $(SCRIPTS_DIR)/sect-strip.py \ $(SECT_STRIP_FLAGS) $(SECT_STRIP_FLAGS-y) \ --with-objcopy=$(OBJCOPY) \ - $@.dbg -o $@) - $(call verbose_cmd,STRIP,$(notdir $@), $(STRIP) -s $@) + $< -o $@ && \ + $(STRIP) -s $@) -ifeq ($(CONFIG_OPTIMIZE_SYMFILE),y) - $(call build_cmd,NM,,$@.sym,\ - $(NM) -n $@.dbg > $@.sym) -endif -ifeq ($(CONFIG_OPTIMIZE_COMPRESS),y) - $(call build_cmd,GZ,,$@.gz,\ - $(GZIP) -f -9 -c $@ >$@.gz) -endif -endif +$(KVM_IMAGE).sym: $(KVM_DEBUG_IMAGE) + $(call build_cmd,NM,,$@, $(NM) -n $< > $@) + +$(KVM_IMAGE).gz: $(KVM_IMAGE) + $(call build_cmd,GZ,,$@, $(GZIP) -f -9 -c $< >$@) -# register image to the build -UK_IMAGES-$(CONFIG_PLAT_KVM) += $(KVM_IMAGE) +# register images to the build +ifeq ($(CONFIG_PLAT_KVM),y) +UK_DEBUG_IMAGES-y += $(KVM_DEBUG_IMAGE) +UK_IMAGES-y += $(KVM_IMAGE) +UK_IMAGES-$(CONFIG_OPTIMIZE_SYMFILE) += $(KVM_IMAGE).sym +UK_IMAGES-$(CONFIG_OPTIMIZE_COMPRESS) += $(KVM_IMAGE).gz +endif # ...for cleaning: -LIBKVMPLAT_CLEAN += $(call build_clean,$(KVM_IMAGE).gz) -LIBKVMPLAT_CLEAN += $(call build_clean,$(KVM_IMAGE).dbg) -LIBKVMPLAT_CLEAN += $(call build_clean,$(KVM_IMAGE).sym) LIBKVMPLAT_CLEAN += $(call build_clean,$(KVM_IMAGE).o) LIBKVMPLAT_CLEAN += $(call build_clean,$(KVM_IMAGE).ld.o) -- 2.22.0 _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |