[xen master] build: remove shim related targets

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[xen master] build: remove shim related targets

patchbot
commit b38c4e1763baa448ea34c5f337932f351798c9a1
Author:     Roger Pau Monné <[hidden email]>
AuthorDate: Fri Feb 23 11:05:19 2018 +0100
Commit:     Jan Beulich <[hidden email]>
CommitDate: Fri Feb 23 11:05:19 2018 +0100

    build: remove shim related targets
   
    There's no need to have shim specific targets, so just use the regular
    xen makefile targets in order to build the shim binary.
   
    When the shim is build as part of the firmware directory install the
    stripped Xen binary to the firmware directory and place a binary with
    symbols in the debug directory.
   
    The objcopy step of the shim build is also removed in this patch:
    since the shim is booted in PVH mode there's no need for the resulting
    binary to be in elf32 format. Xen can load PVH kernels with either a
    32 or 64bit elf header.
   
    Signed-off-by: Roger Pau Monné <[hidden email]>
    Reviewed-by: Wei Liu <[hidden email]>
    Acked-by: Andrew Cooper <[hidden email]>
---
 tools/firmware/Makefile         |  4 ++++
 tools/firmware/xen-dir/Makefile |  9 +++++----
 xen/Makefile                    | 18 ++++--------------
 xen/arch/x86/Makefile           | 10 +++-------
 4 files changed, 16 insertions(+), 25 deletions(-)

diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile
index b2f011d..5a7cf77 100644
--- a/tools/firmware/Makefile
+++ b/tools/firmware/Makefile
@@ -8,6 +8,7 @@ endif
 # hvmloader is a 32-bit protected mode binary.
 TARGET      := hvmloader/hvmloader
 INST_DIR := $(DESTDIR)$(XENFIRMWAREDIR)
+DEBG_DIR := $(DESTDIR)$(DEBUG_DIR)$(XENFIRMWAREDIR)
 
 SUBDIRS-y :=
 SUBDIRS-$(CONFIG_OVMF) += ovmf-dir
@@ -46,6 +47,7 @@ endif
 .PHONY: install
 install: all
  [ -d $(INST_DIR) ] || $(INSTALL_DIR) $(INST_DIR)
+ [ -d $(DEBG_DIR) ] || $(INSTALL_DIR) $(DEBG_DIR)
  [ ! -e $(TARGET) ] || $(INSTALL_DATA) $(TARGET) $(INST_DIR)
 ifeq ($(CONFIG_SEABIOS),y)
  $(INSTALL_DATA) seabios-dir/out/bios.bin $(INST_DIR)/seabios.bin
@@ -55,6 +57,7 @@ ifeq ($(CONFIG_OVMF),y)
 endif
 ifeq ($(CONFIG_PV_SHIM),y)
  $(INSTALL_DATA) xen-dir/xen-shim $(INST_DIR)/xen-shim
+ $(INSTALL_DATA) xen-dir/xen-shim-syms $(DEBG_DIR)/xen-shim-syms
 endif
 
 .PHONY: uninstall
@@ -68,6 +71,7 @@ ifeq ($(CONFIG_OVMF),y)
 endif
 ifeq ($(CONFIG_PV_SHIM),y)
  rm -f $(INST_DIR)/xen-shim
+ rm -f $(DEBG_DIR)/xen-shim-syms
 endif
 
 .PHONY: clean
diff --git a/tools/firmware/xen-dir/Makefile b/tools/firmware/xen-dir/Makefile
index 7fd36a0..57750bf 100644
--- a/tools/firmware/xen-dir/Makefile
+++ b/tools/firmware/xen-dir/Makefile
@@ -48,13 +48,14 @@ shim-%config: $(D) FORCE
  KCONFIG_CONFIG=$(CURDIR)/shim.config
 
 xen-shim: $(D) shim-olddefconfig
- $(MAKE) -C $(D)/xen install-shim \
+ $(MAKE) -C $(D)/xen build \
  XEN_CONFIG_EXPERT=y \
- KCONFIG_CONFIG=$(CURDIR)/shim.config \
- DESTDIR=$(CURDIR)
+ KCONFIG_CONFIG=$(CURDIR)/shim.config
+ ln -sf $(D)/xen/xen $@
+ ln -sf $(D)/xen/xen-syms $@-syms
 
 .PHONY: distclean clean
 distclean clean:
- rm -f xen-shim *.old
+ rm -f xen-shim xen-shim-syms *.old
  rm -rf $(D)
  rm -f linkfarm.stamp*
diff --git a/xen/Makefile b/xen/Makefile
index 290dc93..62d479c 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -37,10 +37,10 @@ default: build
 .PHONY: dist
 dist: install
 
-build install build-shim:: include/config/auto.conf
+build install:: include/config/auto.conf
 
-.PHONY: build install uninstall clean distclean cscope TAGS tags MAP gtags tests install-shim build-shim
-build install uninstall debug clean distclean cscope TAGS tags MAP gtags tests install-shim build-shim::
+.PHONY: build install uninstall clean distclean cscope TAGS tags MAP gtags tests
+build install uninstall debug clean distclean cscope TAGS tags MAP gtags tests::
 ifneq ($(XEN_TARGET_ARCH),x86_32)
  $(MAKE) -f Rules.mk _$@
 else
@@ -80,13 +80,6 @@ _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
  fi; \
  fi
 
-.PHONY: _build-shim
-_build-shim: $(TARGET)-shim
-
-.PHONY: _install-shim
-_install-shim: build-shim
- $(INSTALL_DATA) $(TARGET)-shim $(DESTDIR)
-
 .PHONY: _tests
 _tests:
  $(MAKE) -f $(BASEDIR)/Rules.mk -C test tests
@@ -139,8 +132,7 @@ $(TARGET).gz: $(TARGET)
  gzip -n -f -9 < $< > $@.new
  mv $@.new $@
 
-.PHONY: $(TARGET)-common
-$(TARGET)-common: delete-unfresh-files
+$(TARGET): delete-unfresh-files
  $(MAKE) -C tools
  $(MAKE) -f $(BASEDIR)/Rules.mk include/xen/compile.h
  [ -e include/asm ] || ln -sf asm-$(TARGET_ARCH) include/asm
@@ -150,8 +142,6 @@ $(TARGET)-common: delete-unfresh-files
  $(MAKE) -f $(BASEDIR)/Rules.mk -C include
  $(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) asm-offsets.s
  $(MAKE) -f $(BASEDIR)/Rules.mk include/asm-$(TARGET_ARCH)/asm-offsets.h
-
-$(TARGET) $(TARGET)-shim: $(TARGET)-common
  $(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) $@
 
 # drivers/char/console.o contains static banner/compile info. Blow it away.
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 7c6e93d..5563c81 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -81,7 +81,9 @@ efi-y := $(shell if [ ! -r $(BASEDIR)/include/xen/compile.h -o \
 ifneq ($(build_id_linker),)
 notes_phdrs = --notes
 else
-notes_phdrs =
+ifeq ($(CONFIG_PVH_GUEST),y)
+notes_phdrs = --notes
+endif
 endif
 
 ifdef CONFIG_LIVEPATCH
@@ -147,11 +149,6 @@ $(TARGET)-syms: prelink.o xen.lds $(BASEDIR)/common/symbols-dummy.o
  >$(@D)/$(@F).map
  rm -f $(@D)/.$(@F).[0-9]*
 
-# Use elf32-x86-64 if toolchain support exists, elf32-i386 otherwise.
-$(TARGET)-shim: FORMAT = $(firstword $(filter elf32-x86-64,$(shell $(OBJCOPY) --help)) elf32-i386)
-$(TARGET)-shim: $(TARGET)-syms
- $(OBJCOPY) -O $(FORMAT) $< $@
-
 note.o: $(TARGET)-syms
  $(OBJCOPY) -O binary --only-section=.note.gnu.build-id  $(BASEDIR)/xen-syms $@.bin
  $(OBJCOPY) -I binary -O elf64-x86-64 -B i386:x86-64 \
@@ -236,6 +233,5 @@ clean::
  rm -f asm-offsets.s *.lds boot/*.o boot/*~ boot/core boot/mkelf32
  rm -f $(BASEDIR)/.xen-syms.[0-9]* boot/.*.d
  rm -f $(BASEDIR)/.xen.efi.[0-9]* efi/*.efi efi/disabled efi/mkreloc
- rm -f $(BASEDIR)/xen-shim
  rm -f boot/cmdline.S boot/reloc.S boot/*.lnk boot/*.bin
  rm -f note.o
--
generated by git-patchbot for /home/xen/git/xen.git#master


_______________________________________________
Xen-changelog mailing list
[hidden email]
https://lists.xenproject.org/xen-changelog