Hello,

Current hypervisor code/build produces an invalid binary when linked
with lld 8 (llvm linker). This is because lld 8 places orphaned sections
at the beginning of the output file, thus displacing the multiboot
headers.

In order to build a correct image with lld 8 make sure there are no
orphaned sections, and also add a build-time check to assert the
multiboot headers are present between the offset boundary given in the
specification.

Roger Pau Monne (4):
  xz: use initconst for hypervisor build
  x86/linker: use DECL_SECTION uniformly
  x86/linker: add a reloc section to ELF binary
  x86: check for multiboot{1,2} header presence

 xen/arch/x86/Makefile      |  3 +++
 xen/arch/x86/xen.lds.S     | 14 +++++++++-----
 xen/common/decompress.h    |  2 ++
 xen/common/xz/dec_bcj.c    |  6 +++---
 xen/common/xz/dec_stream.c |  2 +-
 5 files changed, 18 insertions(+), 9 deletions(-)

-- 
2.20.1 (Apple Git-117)


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to