diff mbox series

[v3,27/38] tools/libxc: move libxenguest to tools/libs/guest

Message ID 20200823093519.18386-28-jgross@suse.com (mailing list archive)
State Superseded
Headers show
Series tools: move most libraries into tools/libs | expand

Commit Message

Jürgen Groß Aug. 23, 2020, 9:35 a.m. UTC
tools/libxc now contains libxenguest only. Move it to tools/libs/guest.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 .gitignore                                    |  16 +-
 stubdom/Makefile                              |  34 +--
 stubdom/grub/Makefile                         |   2 +-
 stubdom/mini-os.mk                            |   2 +-
 tools/Makefile                                |   3 +-
 tools/Rules.mk                                |   7 +-
 tools/libs/Makefile                           |   1 +
 tools/{libxc => libs/guest}/COPYING           |   0
 tools/libs/guest/Makefile                     | 121 ++++++++++
 .../{libxc => libs/guest}/include/xenguest.h  |   0
 tools/{libxc => libs/guest}/xenguest.pc.in    |   0
 tools/{libxc => libs/guest}/xg_cpuid_x86.c    |   0
 tools/{libxc => libs/guest}/xg_dom_arm.c      |   0
 .../guest}/xg_dom_armzimageloader.c           |   0
 .../{libxc => libs/guest}/xg_dom_binloader.c  |   0
 tools/{libxc => libs/guest}/xg_dom_boot.c     |   0
 .../guest}/xg_dom_bzimageloader.c             |   0
 .../guest}/xg_dom_compat_linux.c              |   0
 tools/{libxc => libs/guest}/xg_dom_core.c     |   0
 .../{libxc => libs/guest}/xg_dom_decompress.h |   0
 .../guest}/xg_dom_decompress_lz4.c            |   0
 .../guest}/xg_dom_decompress_unsafe.c         |   0
 .../guest}/xg_dom_decompress_unsafe.h         |   0
 .../guest}/xg_dom_decompress_unsafe_bzip2.c   |   0
 .../guest}/xg_dom_decompress_unsafe_lzma.c    |   0
 .../guest}/xg_dom_decompress_unsafe_lzo1x.c   |   0
 .../guest}/xg_dom_decompress_unsafe_xz.c      |   0
 .../{libxc => libs/guest}/xg_dom_elfloader.c  |   0
 .../{libxc => libs/guest}/xg_dom_hvmloader.c  |   0
 tools/{libxc => libs/guest}/xg_dom_x86.c      |   0
 tools/{libxc => libs/guest}/xg_domain.c       |   0
 tools/{libxc => libs/guest}/xg_nomigrate.c    |   0
 tools/{libxc => libs/guest}/xg_offline_page.c |   0
 tools/{libxc => libs/guest}/xg_private.c      |   0
 tools/{libxc => libs/guest}/xg_private.h      |   0
 tools/{libxc => libs/guest}/xg_save_restore.h |   0
 tools/{libxc => libs/guest}/xg_sr_common.c    |   0
 tools/{libxc => libs/guest}/xg_sr_common.h    |   0
 .../{libxc => libs/guest}/xg_sr_common_x86.c  |   0
 .../{libxc => libs/guest}/xg_sr_common_x86.h  |   0
 .../guest}/xg_sr_common_x86_pv.c              |   0
 .../guest}/xg_sr_common_x86_pv.h              |   0
 tools/{libxc => libs/guest}/xg_sr_restore.c   |   0
 .../guest}/xg_sr_restore_x86_hvm.c            |   0
 .../guest}/xg_sr_restore_x86_pv.c             |   0
 tools/{libxc => libs/guest}/xg_sr_save.c      |   0
 .../guest}/xg_sr_save_x86_hvm.c               |   0
 .../{libxc => libs/guest}/xg_sr_save_x86_pv.c |   0
 .../guest}/xg_sr_stream_format.h              |   0
 tools/{libxc => libs/guest}/xg_suspend.c      |   0
 tools/libs/uselibs.mk                         |   2 +
 tools/libxc/Makefile                          | 207 ------------------
 52 files changed, 147 insertions(+), 248 deletions(-)
 rename tools/{libxc => libs/guest}/COPYING (100%)
 create mode 100644 tools/libs/guest/Makefile
 rename tools/{libxc => libs/guest}/include/xenguest.h (100%)
 rename tools/{libxc => libs/guest}/xenguest.pc.in (100%)
 rename tools/{libxc => libs/guest}/xg_cpuid_x86.c (100%)
 rename tools/{libxc => libs/guest}/xg_dom_arm.c (100%)
 rename tools/{libxc => libs/guest}/xg_dom_armzimageloader.c (100%)
 rename tools/{libxc => libs/guest}/xg_dom_binloader.c (100%)
 rename tools/{libxc => libs/guest}/xg_dom_boot.c (100%)
 rename tools/{libxc => libs/guest}/xg_dom_bzimageloader.c (100%)
 rename tools/{libxc => libs/guest}/xg_dom_compat_linux.c (100%)
 rename tools/{libxc => libs/guest}/xg_dom_core.c (100%)
 rename tools/{libxc => libs/guest}/xg_dom_decompress.h (100%)
 rename tools/{libxc => libs/guest}/xg_dom_decompress_lz4.c (100%)
 rename tools/{libxc => libs/guest}/xg_dom_decompress_unsafe.c (100%)
 rename tools/{libxc => libs/guest}/xg_dom_decompress_unsafe.h (100%)
 rename tools/{libxc => libs/guest}/xg_dom_decompress_unsafe_bzip2.c (100%)
 rename tools/{libxc => libs/guest}/xg_dom_decompress_unsafe_lzma.c (100%)
 rename tools/{libxc => libs/guest}/xg_dom_decompress_unsafe_lzo1x.c (100%)
 rename tools/{libxc => libs/guest}/xg_dom_decompress_unsafe_xz.c (100%)
 rename tools/{libxc => libs/guest}/xg_dom_elfloader.c (100%)
 rename tools/{libxc => libs/guest}/xg_dom_hvmloader.c (100%)
 rename tools/{libxc => libs/guest}/xg_dom_x86.c (100%)
 rename tools/{libxc => libs/guest}/xg_domain.c (100%)
 rename tools/{libxc => libs/guest}/xg_nomigrate.c (100%)
 rename tools/{libxc => libs/guest}/xg_offline_page.c (100%)
 rename tools/{libxc => libs/guest}/xg_private.c (100%)
 rename tools/{libxc => libs/guest}/xg_private.h (100%)
 rename tools/{libxc => libs/guest}/xg_save_restore.h (100%)
 rename tools/{libxc => libs/guest}/xg_sr_common.c (100%)
 rename tools/{libxc => libs/guest}/xg_sr_common.h (100%)
 rename tools/{libxc => libs/guest}/xg_sr_common_x86.c (100%)
 rename tools/{libxc => libs/guest}/xg_sr_common_x86.h (100%)
 rename tools/{libxc => libs/guest}/xg_sr_common_x86_pv.c (100%)
 rename tools/{libxc => libs/guest}/xg_sr_common_x86_pv.h (100%)
 rename tools/{libxc => libs/guest}/xg_sr_restore.c (100%)
 rename tools/{libxc => libs/guest}/xg_sr_restore_x86_hvm.c (100%)
 rename tools/{libxc => libs/guest}/xg_sr_restore_x86_pv.c (100%)
 rename tools/{libxc => libs/guest}/xg_sr_save.c (100%)
 rename tools/{libxc => libs/guest}/xg_sr_save_x86_hvm.c (100%)
 rename tools/{libxc => libs/guest}/xg_sr_save_x86_pv.c (100%)
 rename tools/{libxc => libs/guest}/xg_sr_stream_format.h (100%)
 rename tools/{libxc => libs/guest}/xg_suspend.c (100%)
 delete mode 100644 tools/libxc/Makefile

Comments

Samuel Thibault Aug. 23, 2020, 9:53 a.m. UTC | #1
Juergen Gross, le dim. 23 août 2020 11:35:08 +0200, a ecrit:
> tools/libxc now contains libxenguest only. Move it to tools/libs/guest.

I was wondering about factorizing parts of the rules for libxc indeed,
now done then :)

Thanks!

> Signed-off-by: Juergen Gross <jgross@suse.com>

For the stubdom part:
Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>

> ---
>  .gitignore                                    |  16 +-
>  stubdom/Makefile                              |  34 +--
>  stubdom/grub/Makefile                         |   2 +-
>  stubdom/mini-os.mk                            |   2 +-
>  tools/Makefile                                |   3 +-
>  tools/Rules.mk                                |   7 +-
>  tools/libs/Makefile                           |   1 +
>  tools/{libxc => libs/guest}/COPYING           |   0
>  tools/libs/guest/Makefile                     | 121 ++++++++++
>  .../{libxc => libs/guest}/include/xenguest.h  |   0
>  tools/{libxc => libs/guest}/xenguest.pc.in    |   0
>  tools/{libxc => libs/guest}/xg_cpuid_x86.c    |   0
>  tools/{libxc => libs/guest}/xg_dom_arm.c      |   0
>  .../guest}/xg_dom_armzimageloader.c           |   0
>  .../{libxc => libs/guest}/xg_dom_binloader.c  |   0
>  tools/{libxc => libs/guest}/xg_dom_boot.c     |   0
>  .../guest}/xg_dom_bzimageloader.c             |   0
>  .../guest}/xg_dom_compat_linux.c              |   0
>  tools/{libxc => libs/guest}/xg_dom_core.c     |   0
>  .../{libxc => libs/guest}/xg_dom_decompress.h |   0
>  .../guest}/xg_dom_decompress_lz4.c            |   0
>  .../guest}/xg_dom_decompress_unsafe.c         |   0
>  .../guest}/xg_dom_decompress_unsafe.h         |   0
>  .../guest}/xg_dom_decompress_unsafe_bzip2.c   |   0
>  .../guest}/xg_dom_decompress_unsafe_lzma.c    |   0
>  .../guest}/xg_dom_decompress_unsafe_lzo1x.c   |   0
>  .../guest}/xg_dom_decompress_unsafe_xz.c      |   0
>  .../{libxc => libs/guest}/xg_dom_elfloader.c  |   0
>  .../{libxc => libs/guest}/xg_dom_hvmloader.c  |   0
>  tools/{libxc => libs/guest}/xg_dom_x86.c      |   0
>  tools/{libxc => libs/guest}/xg_domain.c       |   0
>  tools/{libxc => libs/guest}/xg_nomigrate.c    |   0
>  tools/{libxc => libs/guest}/xg_offline_page.c |   0
>  tools/{libxc => libs/guest}/xg_private.c      |   0
>  tools/{libxc => libs/guest}/xg_private.h      |   0
>  tools/{libxc => libs/guest}/xg_save_restore.h |   0
>  tools/{libxc => libs/guest}/xg_sr_common.c    |   0
>  tools/{libxc => libs/guest}/xg_sr_common.h    |   0
>  .../{libxc => libs/guest}/xg_sr_common_x86.c  |   0
>  .../{libxc => libs/guest}/xg_sr_common_x86.h  |   0
>  .../guest}/xg_sr_common_x86_pv.c              |   0
>  .../guest}/xg_sr_common_x86_pv.h              |   0
>  tools/{libxc => libs/guest}/xg_sr_restore.c   |   0
>  .../guest}/xg_sr_restore_x86_hvm.c            |   0
>  .../guest}/xg_sr_restore_x86_pv.c             |   0
>  tools/{libxc => libs/guest}/xg_sr_save.c      |   0
>  .../guest}/xg_sr_save_x86_hvm.c               |   0
>  .../{libxc => libs/guest}/xg_sr_save_x86_pv.c |   0
>  .../guest}/xg_sr_stream_format.h              |   0
>  tools/{libxc => libs/guest}/xg_suspend.c      |   0
>  tools/libs/uselibs.mk                         |   2 +
>  tools/libxc/Makefile                          | 207 ------------------
>  52 files changed, 147 insertions(+), 248 deletions(-)
>  rename tools/{libxc => libs/guest}/COPYING (100%)
>  create mode 100644 tools/libs/guest/Makefile
>  rename tools/{libxc => libs/guest}/include/xenguest.h (100%)
>  rename tools/{libxc => libs/guest}/xenguest.pc.in (100%)
>  rename tools/{libxc => libs/guest}/xg_cpuid_x86.c (100%)
>  rename tools/{libxc => libs/guest}/xg_dom_arm.c (100%)
>  rename tools/{libxc => libs/guest}/xg_dom_armzimageloader.c (100%)
>  rename tools/{libxc => libs/guest}/xg_dom_binloader.c (100%)
>  rename tools/{libxc => libs/guest}/xg_dom_boot.c (100%)
>  rename tools/{libxc => libs/guest}/xg_dom_bzimageloader.c (100%)
>  rename tools/{libxc => libs/guest}/xg_dom_compat_linux.c (100%)
>  rename tools/{libxc => libs/guest}/xg_dom_core.c (100%)
>  rename tools/{libxc => libs/guest}/xg_dom_decompress.h (100%)
>  rename tools/{libxc => libs/guest}/xg_dom_decompress_lz4.c (100%)
>  rename tools/{libxc => libs/guest}/xg_dom_decompress_unsafe.c (100%)
>  rename tools/{libxc => libs/guest}/xg_dom_decompress_unsafe.h (100%)
>  rename tools/{libxc => libs/guest}/xg_dom_decompress_unsafe_bzip2.c (100%)
>  rename tools/{libxc => libs/guest}/xg_dom_decompress_unsafe_lzma.c (100%)
>  rename tools/{libxc => libs/guest}/xg_dom_decompress_unsafe_lzo1x.c (100%)
>  rename tools/{libxc => libs/guest}/xg_dom_decompress_unsafe_xz.c (100%)
>  rename tools/{libxc => libs/guest}/xg_dom_elfloader.c (100%)
>  rename tools/{libxc => libs/guest}/xg_dom_hvmloader.c (100%)
>  rename tools/{libxc => libs/guest}/xg_dom_x86.c (100%)
>  rename tools/{libxc => libs/guest}/xg_domain.c (100%)
>  rename tools/{libxc => libs/guest}/xg_nomigrate.c (100%)
>  rename tools/{libxc => libs/guest}/xg_offline_page.c (100%)
>  rename tools/{libxc => libs/guest}/xg_private.c (100%)
>  rename tools/{libxc => libs/guest}/xg_private.h (100%)
>  rename tools/{libxc => libs/guest}/xg_save_restore.h (100%)
>  rename tools/{libxc => libs/guest}/xg_sr_common.c (100%)
>  rename tools/{libxc => libs/guest}/xg_sr_common.h (100%)
>  rename tools/{libxc => libs/guest}/xg_sr_common_x86.c (100%)
>  rename tools/{libxc => libs/guest}/xg_sr_common_x86.h (100%)
>  rename tools/{libxc => libs/guest}/xg_sr_common_x86_pv.c (100%)
>  rename tools/{libxc => libs/guest}/xg_sr_common_x86_pv.h (100%)
>  rename tools/{libxc => libs/guest}/xg_sr_restore.c (100%)
>  rename tools/{libxc => libs/guest}/xg_sr_restore_x86_hvm.c (100%)
>  rename tools/{libxc => libs/guest}/xg_sr_restore_x86_pv.c (100%)
>  rename tools/{libxc => libs/guest}/xg_sr_save.c (100%)
>  rename tools/{libxc => libs/guest}/xg_sr_save_x86_hvm.c (100%)
>  rename tools/{libxc => libs/guest}/xg_sr_save_x86_pv.c (100%)
>  rename tools/{libxc => libs/guest}/xg_sr_stream_format.h (100%)
>  rename tools/{libxc => libs/guest}/xg_suspend.c (100%)
>  delete mode 100644 tools/libxc/Makefile
> 
> diff --git a/.gitignore b/.gitignore
> index a17d7e1e1b..c84a5fd4db 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -71,7 +71,6 @@ stubdom/include
>  stubdom/ioemu
>  stubdom/ioemu/
>  stubdom/libs-*
> -stubdom/libxc-*
>  stubdom/libxencall-*
>  stubdom/libxenevtchn-*
>  stubdom/libxenforeignmemory-*
> @@ -121,6 +120,14 @@ tools/libs/foreignmemory/headers.chk
>  tools/libs/foreignmemory/xenforeignmemory.pc
>  tools/libs/devicemodel/headers.chk
>  tools/libs/devicemodel/xendevicemodel.pc
> +tools/libs/guest/_*.[ch]
> +tools/libs/guest/libxenguest.map
> +tools/libs/guest/xenguest.pc
> +tools/libs/guest/xc_bitops.h
> +tools/libs/guest/xc_core.h
> +tools/libs/guest/xc_core_arm.h
> +tools/libs/guest/xc_core_x86.h
> +tools/libs/guest/xc_private.h
>  tools/console/xenconsole
>  tools/console/xenconsoled
>  tools/console/client/_paths.h
> @@ -197,12 +204,6 @@ tools/include/xen-xsm/*
>  tools/include/xen-foreign/*.(c|h|size)
>  tools/include/xen-foreign/checker
>  tools/libvchan/xenvchan.pc
> -tools/libxc/*.pc
> -tools/libxc/xc_bitops.h
> -tools/libxc/xc_core.h
> -tools/libxc/xc_core_arm.h
> -tools/libxc/xc_core_x86.h
> -tools/libxc/xc_private.h
>  tools/libxl/_libxl.api-for-check
>  tools/libxl/*.api-ok
>  tools/libxl/*.pc
> @@ -369,7 +370,6 @@ tools/include/xen-foreign/arm64.h
>  tools/misc/xen-hptool
>  tools/misc/xen-mfndump
>  tools/libs/toolcore/include/_*.h
> -tools/libxc/_*.[ch]
>  tools/libxl/_*.[ch]
>  tools/libxl/testidl
>  tools/libxl/testidl.c
> diff --git a/stubdom/Makefile b/stubdom/Makefile
> index 193941827d..f780cc8054 100644
> --- a/stubdom/Makefile
> +++ b/stubdom/Makefile
> @@ -331,7 +331,9 @@ endif
>  # libraries under tools/libs
>  #######
>  
> -STUB_LIBS := toolcore toollog evtchn gnttab call foreignmemory devicemodel ctrl
> +STUB_LIBS := toolcore toollog evtchn gnttab call foreignmemory devicemodel ctrl guest
> +
> +LIBDEP_guest := cross-zlib
>  
>  #######
>  # common handling
> @@ -363,13 +365,10 @@ endef
>  
>  $(foreach lib,$(STUB_LIBS),$(eval $(call BUILD_lib,$(lib))))
>  
> -libxc-$(XEN_TARGET_ARCH)/stamp: $(XEN_ROOT)/tools/libxc/Makefile
> -	$(do_links)
> -
>  xenstore/stamp: $(XEN_ROOT)/tools/xenstore/Makefile
>  	$(do_links)
>  
> -LINK_DIRS := libxc-$(XEN_TARGET_ARCH) xenstore $(foreach dir,$(STUB_LIBS),libs-$(XEN_TARGET_ARCH)/$(dir))
> +LINK_DIRS := xenstore $(foreach dir,$(STUB_LIBS),libs-$(XEN_TARGET_ARCH)/$(dir))
>  LINK_STAMPS := $(foreach dir,$(LINK_DIRS),$(dir)/stamp)
>  
>  mk-headers-$(XEN_TARGET_ARCH): $(IOEMU_LINKFARM_TARGET) $(LINK_STAMPS)
> @@ -392,16 +391,6 @@ $(TARGETS_MINIOS): mini-os-%:
>                  mkdir -p $@/$$i ; \
>  	done
>  
> -#######
> -# libxc
> -#######
> -
> -.PHONY: libxc
> -libxc: libxc-$(XEN_TARGET_ARCH)/libxenguest.a
> -libxc-$(XEN_TARGET_ARCH)/libxenguest.a: libxenevtchn libxenctrl cross-zlib
> -libxc-$(XEN_TARGET_ARCH)/libxenguest.a: mk-headers-$(XEN_TARGET_ARCH) $(NEWLIB_STAMPFILE)
> -	CPPFLAGS="$(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" $(MAKE) DESTDIR= CONFIG_LIBXC_MINIOS=y -C libxc-$(XEN_TARGET_ARCH)
> -
>  #######
>  # ioemu
>  #######
> @@ -410,7 +399,7 @@ ioemu-minios-config.mk: $(CURDIR)/ioemu-minios.cfg
>  	MINIOS_CONFIG="$<" CONFIG_FILE="$(CURDIR)/$@" $(MAKE) DESTDIR= -C $(MINI_OS) config
>  
>  .PHONY: ioemu
> -ioemu: cross-zlib cross-libpci libxc ioemu-minios-config.mk
> +ioemu: cross-zlib cross-libpci libxenguest ioemu-minios-config.mk
>  	[ -f ioemu/config-host.mak ] || \
>  	  ( $(buildmakevars2shellvars); \
>  	    cd ioemu ; \
> @@ -504,15 +493,15 @@ xenstore: $(CROSS_ROOT) xenstore-minios-config.mk
>  
>  .PHONY: ioemu-stubdom
>  ioemu-stubdom: APP_OBJS=$(CURDIR)/ioemu/i386-stubdom/qemu.a $(CURDIR)/ioemu/i386-stubdom/libqemu.a $(CURDIR)/ioemu/libqemu_common.a
> -ioemu-stubdom: mini-os-$(XEN_TARGET_ARCH)-ioemu lwip-$(XEN_TARGET_ARCH) libxc ioemu
> +ioemu-stubdom: mini-os-$(XEN_TARGET_ARCH)-ioemu lwip-$(XEN_TARGET_ARCH) libxenguest ioemu
>  	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/ioemu-minios.cfg" $(MAKE) DESTDIR= -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS="$(APP_OBJS)"
>  
>  .PHONY: caml-stubdom
> -caml-stubdom: mini-os-$(XEN_TARGET_ARCH)-caml lwip-$(XEN_TARGET_ARCH) libxc cross-ocaml caml
> +caml-stubdom: mini-os-$(XEN_TARGET_ARCH)-caml lwip-$(XEN_TARGET_ARCH) libxenguest cross-ocaml caml
>  	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/caml/minios.cfg" $(MAKE) DESTDIR= -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS="$(CURDIR)/caml/main-caml.o $(CURDIR)/caml/caml.o $(CAMLLIB)/libasmrun.a"
>  
>  .PHONY: c-stubdom
> -c-stubdom: mini-os-$(XEN_TARGET_ARCH)-c lwip-$(XEN_TARGET_ARCH) libxc c
> +c-stubdom: mini-os-$(XEN_TARGET_ARCH)-c lwip-$(XEN_TARGET_ARCH) libxenguest c
>  	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/c/minios.cfg" $(MAKE) DESTDIR= -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS=$(CURDIR)/c/main.a
>  
>  .PHONY: vtpm-stubdom
> @@ -524,11 +513,11 @@ vtpmmgr-stubdom: mini-os-$(XEN_TARGET_ARCH)-vtpmmgr vtpmmgr
>  	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/vtpmmgr/minios.cfg" $(MAKE) -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< APP_OBJS="$(CURDIR)/vtpmmgr/vtpmmgr.a" APP_LDLIBS="-lm -lpolarssl"
>  
>  .PHONY: pv-grub
> -pv-grub: mini-os-$(XEN_TARGET_ARCH)-grub libxc grub
> +pv-grub: mini-os-$(XEN_TARGET_ARCH)-grub libxenguest grub
>  	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/grub/minios.cfg" $(MAKE) DESTDIR= -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< APP_OBJS=$(CURDIR)/grub-$(XEN_TARGET_ARCH)/main.a
>  
>  .PHONY: xenstore-stubdom
> -xenstore-stubdom: mini-os-$(XEN_TARGET_ARCH)-xenstore libxc xenstore
> +xenstore-stubdom: mini-os-$(XEN_TARGET_ARCH)-xenstore libxenguest xenstore
>  	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/xenstore-minios.cfg" $(MAKE) DESTDIR= -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< APP_OBJS=$(CURDIR)/xenstore/xenstored.a
>  
>  #########
> @@ -622,7 +611,6 @@ clean:
>  	rm -f $(STUBDOMPATH)
>  	rm -f *-minios-config.mk
>  	rm -fr pkg-config
> -	[ ! -e libxc-$(XEN_TARGET_ARCH)/Makefile ] || $(MAKE) DESTDIR= -C libxc-$(XEN_TARGET_ARCH) clean
>  	-[ ! -d ioemu ] || $(MAKE) DESTDIR= -C ioemu clean
>  	-[ ! -d xenstore ] || $(MAKE) DESTDIR= -C xenstore clean
>  
> @@ -633,7 +621,7 @@ crossclean: clean
>  	rm -fr newlib-$(XEN_TARGET_ARCH)
>  	rm -fr zlib-$(XEN_TARGET_ARCH) pciutils-$(XEN_TARGET_ARCH)
>  	rm -fr libs-$(XEN_TARGET_ARCH)
> -	rm -fr libxc-$(XEN_TARGET_ARCH) ioemu xenstore
> +	rm -fr ioemu xenstore
>  	rm -fr gmp-$(XEN_TARGET_ARCH)
>  	rm -fr polarssl-$(XEN_TARGET_ARCH)
>  	rm -fr openssl-$(XEN_TARGET_ARCH)
> diff --git a/stubdom/grub/Makefile b/stubdom/grub/Makefile
> index d33fa2f71e..7397661c9b 100644
> --- a/stubdom/grub/Makefile
> +++ b/stubdom/grub/Makefile
> @@ -7,7 +7,7 @@ BOOT=$(OBJ_DIR)/boot-$(XEN_TARGET_ARCH).o
>  
>  DEF_CPPFLAGS += -I$(XEN_ROOT)/tools/libs/toollog/include
>  DEF_CPPFLAGS += -I$(XEN_ROOT)/tools/libs/ctrl/include
> -DEF_CPPFLAGS += -I$(XEN_ROOT)/tools/libxc/include
> +DEF_CPPFLAGS += -I$(XEN_ROOT)/tools/libs/guest/include
>  DEF_CPPFLAGS += -I$(XEN_ROOT)/tools/include -I.
>  DEF_CPPFLAGS += -I../grub-upstream/stage1
>  DEF_CPPFLAGS += -I../grub-upstream/stage2
> diff --git a/stubdom/mini-os.mk b/stubdom/mini-os.mk
> index b1387df3f8..e1640a7cbc 100644
> --- a/stubdom/mini-os.mk
> +++ b/stubdom/mini-os.mk
> @@ -14,4 +14,4 @@ CALL_PATH = $(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/call
>  FOREIGNMEMORY_PATH = $(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/foreignmemory
>  DEVICEMODEL_PATH = $(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/devicemodel
>  CTRL_PATH = $(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/ctrl
> -GUEST_PATH = $(XEN_ROOT)/stubdom/libxc-$(MINIOS_TARGET_ARCH)
> +GUEST_PATH = $(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/guest
> diff --git a/tools/Makefile b/tools/Makefile
> index 7c9f9fc900..f9b4012290 100644
> --- a/tools/Makefile
> +++ b/tools/Makefile
> @@ -6,7 +6,6 @@ include $(XEN_ROOT)/tools/Rules.mk
>  
>  SUBDIRS-y :=
>  SUBDIRS-y += libs
> -SUBDIRS-y += libxc
>  SUBDIRS-y += flask
>  SUBDIRS-y += fuzz
>  SUBDIRS-y += xenstore
> @@ -44,7 +43,7 @@ SUBDIRS-y += pygrub
>  SUBDIRS-$(OCAML_TOOLS) += ocaml
>  
>  ifeq ($(CONFIG_RUMP),y)
> -SUBDIRS-y := libs libxc xenstore
> +SUBDIRS-y := libs xenstore
>  endif
>  
>  # For the sake of linking, set the sys-root
> diff --git a/tools/Rules.mk b/tools/Rules.mk
> index 6ec480388c..b969dcfccb 100644
> --- a/tools/Rules.mk
> +++ b/tools/Rules.mk
> @@ -15,7 +15,6 @@ XEN_INCLUDE        = $(XEN_ROOT)/tools/include
>  
>  include $(XEN_ROOT)/tools/libs/uselibs.mk
>  
> -XEN_libxenguest    = $(XEN_ROOT)/tools/libxc
>  XEN_libxenlight    = $(XEN_ROOT)/tools/libxl
>  # Currently libxlutil lives in the same directory as libxenlight
>  XEN_libxlutil      = $(XEN_libxenlight)
> @@ -105,11 +104,7 @@ $(foreach lib,$(LIBS_LIBS),$(eval $(call LIB_defs,$(lib))))
>  # code which compiles against libxenctrl get __XEN_TOOLS__ and
>  # therefore sees the unstable hypercall interfaces.
>  CFLAGS_libxenctrl += $(CFLAGS_libxentoollog) $(CFLAGS_libxenforeignmemory) $(CFLAGS_libxendevicemodel) -D__XEN_TOOLS__
> -
> -CFLAGS_libxenguest = -I$(XEN_libxenguest)/include $(CFLAGS_libxenevtchn) $(CFLAGS_libxenforeignmemory) $(CFLAGS_xeninclude)
> -SHDEPS_libxenguest = $(SHLIB_libxenevtchn) $(SHLIB_libxenctrl)
> -LDLIBS_libxenguest = $(SHDEPS_libxenguest) $(XEN_libxenguest)/libxenguest$(libextension)
> -SHLIB_libxenguest  = $(SHDEPS_libxenguest) -Wl,-rpath-link=$(XEN_libxenguest)
> +CFLAGS_libxenguest += $(CFLAGS_libxenevtchn) $(CFLAGS_libxenforeignmemory)
>  
>  CFLAGS_libxenstore = -I$(XEN_libxenstore)/include $(CFLAGS_xeninclude)
>  SHDEPS_libxenstore = $(SHLIB_libxentoolcore) $(SHLIB_libxenctrl)
> diff --git a/tools/libs/Makefile b/tools/libs/Makefile
> index 7648ea0e4c..f15c1688f7 100644
> --- a/tools/libs/Makefile
> +++ b/tools/libs/Makefile
> @@ -10,6 +10,7 @@ SUBDIRS-y += call
>  SUBDIRS-y += foreignmemory
>  SUBDIRS-y += devicemodel
>  SUBDIRS-y += ctrl
> +SUBDIRS-y += guest
>  SUBDIRS-y += hypfs
>  
>  ifeq ($(CONFIG_RUMP),y)
> diff --git a/tools/libxc/COPYING b/tools/libs/guest/COPYING
> similarity index 100%
> rename from tools/libxc/COPYING
> rename to tools/libs/guest/COPYING
> diff --git a/tools/libs/guest/Makefile b/tools/libs/guest/Makefile
> new file mode 100644
> index 0000000000..e53aeabd3e
> --- /dev/null
> +++ b/tools/libs/guest/Makefile
> @@ -0,0 +1,121 @@
> +XEN_ROOT = $(CURDIR)/../../..
> +include $(XEN_ROOT)/tools/Rules.mk
> +
> +ifeq ($(CONFIG_LIBXC_MINIOS),y)
> +# Save/restore of a domain is currently incompatible with a stubdom environment
> +override CONFIG_MIGRATE := n
> +endif
> +
> +LINK_FILES := xc_private.h xc_core.h xc_core_x86.h xc_core_arm.h xc_bitops.h
> +
> +$(LINK_FILES):
> +	ln -sf $(XEN_ROOT)/tools/libs/ctrl/$(notdir $@) $@
> +
> +SRCS-y += xg_private.c
> +SRCS-y += xg_domain.c
> +SRCS-y += xg_suspend.c
> +ifeq ($(CONFIG_MIGRATE),y)
> +SRCS-y += xg_sr_common.c
> +SRCS-$(CONFIG_X86) += xg_sr_common_x86.c
> +SRCS-$(CONFIG_X86) += xg_sr_common_x86_pv.c
> +SRCS-$(CONFIG_X86) += xg_sr_restore_x86_pv.c
> +SRCS-$(CONFIG_X86) += xg_sr_restore_x86_hvm.c
> +SRCS-$(CONFIG_X86) += xg_sr_save_x86_pv.c
> +SRCS-$(CONFIG_X86) += xg_sr_save_x86_hvm.c
> +SRCS-y += xg_sr_restore.c
> +SRCS-y += xg_sr_save.c
> +SRCS-y += xg_offline_page.c
> +else
> +SRCS-y += xg_nomigrate.c
> +endif
> +
> +vpath %.c ../../../xen/common/libelf
> +CFLAGS += -I../../../xen/common/libelf
> +
> +ELF_SRCS-y += libelf-tools.c libelf-loader.c
> +ELF_SRCS-y += libelf-dominfo.c
> +
> +SRCS-y += $(ELF_SRCS-y)
> +
> +$(patsubst %.c,%.o,$(ELF_SRCS-y)): CFLAGS += -Wno-pointer-sign
> +$(patsubst %.c,%.opic,$(ELF_SRCS-y)): CFLAGS += -Wno-pointer-sign
> +
> +ifeq ($(CONFIG_X86),y) # Add libx86 to the build
> +vpath %.c ../../../xen/lib/x86
> +
> +SRCS-y                 += cpuid.c msr.c
> +endif
> +
> +# new domain builder
> +SRCS-y                 += xg_dom_core.c
> +SRCS-y                 += xg_dom_boot.c
> +SRCS-y                 += xg_dom_elfloader.c
> +SRCS-$(CONFIG_X86)     += xg_dom_bzimageloader.c
> +SRCS-$(CONFIG_X86)     += xg_dom_decompress_lz4.c
> +SRCS-$(CONFIG_X86)     += xg_dom_hvmloader.c
> +SRCS-$(CONFIG_ARM)     += xg_dom_armzimageloader.c
> +SRCS-y                 += xg_dom_binloader.c
> +SRCS-y                 += xg_dom_compat_linux.c
> +
> +SRCS-$(CONFIG_X86)     += xg_dom_x86.c
> +SRCS-$(CONFIG_X86)     += xg_cpuid_x86.c
> +SRCS-$(CONFIG_ARM)     += xg_dom_arm.c
> +
> +ifeq ($(CONFIG_LIBXC_MINIOS),y)
> +SRCS-y                 += xg_dom_decompress_unsafe.c
> +SRCS-y                 += xg_dom_decompress_unsafe_bzip2.c
> +SRCS-y                 += xg_dom_decompress_unsafe_lzma.c
> +SRCS-y                 += xg_dom_decompress_unsafe_lzo1x.c
> +SRCS-y                 += xg_dom_decompress_unsafe_xz.c
> +endif
> +
> +-include $(XEN_TARGET_ARCH)/Makefile
> +
> +CFLAGS   += -Werror -Wmissing-prototypes
> +CFLAGS   += -I. -I./include $(CFLAGS_xeninclude)
> +CFLAGS   += -D__XEN_TOOLS__
> +CFLAGS   += -include $(XEN_ROOT)/tools/config.h
> +
> +# Needed for posix_fadvise64() in xc_linux.c
> +CFLAGS-$(CONFIG_Linux) += -D_GNU_SOURCE
> +
> +CFLAGS	+= $(PTHREAD_CFLAGS)
> +CFLAGS	+= $(CFLAGS_libxentoollog)
> +CFLAGS	+= $(CFLAGS_libxenevtchn)
> +CFLAGS	+= $(CFLAGS_libxendevicemodel)
> +
> +# libxenguest includes xc_private.h, so needs this despite not using
> +# this functionality directly.
> +CFLAGS += $(CFLAGS_libxencall) $(CFLAGS_libxenforeignmemory)
> +
> +ifeq ($(CONFIG_MiniOS),y)
> +zlib-options =
> +else
> +zlib-options = $(ZLIB)
> +endif
> +
> +xc_dom_bzimageloader.o: CFLAGS += $(filter -D%,$(zlib-options))
> +xc_dom_bzimageloader.opic: CFLAGS += $(filter -D%,$(zlib-options))
> +
> +LIBHEADER := xenguest.h
> +
> +NO_HEADERS_CHK := y
> +
> +include $(XEN_ROOT)/tools/libs/libs.mk
> +
> +libxenguest.so.$(MAJOR).$(MINOR): COMPRESSION_LIBS = $(filter -l%,$(zlib-options))
> +libxenguest.so.$(MAJOR).$(MINOR): APPEND_LDFLAGS += $(COMPRESSION_LIBS) -lz
> +
> +genpath-target = $(call buildmakevars2header,_paths.h)
> +$(eval $(genpath-target))
> +
> +xc_private.h: _paths.h
> +
> +$(LIB_OBJS) $(PIC_OBJS): $(LINK_FILES)
> +
> +$(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(XEN_libxenctrl)/include
> +$(PKG_CONFIG_LOCAL): PKG_CONFIG_CFLAGS_LOCAL = $(CFLAGS_xeninclude)
> +
> +.PHONY: cleanlocal
> +cleanlocal:
> +	rm -f libxenguest.map
> diff --git a/tools/libxc/include/xenguest.h b/tools/libs/guest/include/xenguest.h
> similarity index 100%
> rename from tools/libxc/include/xenguest.h
> rename to tools/libs/guest/include/xenguest.h
> diff --git a/tools/libxc/xenguest.pc.in b/tools/libs/guest/xenguest.pc.in
> similarity index 100%
> rename from tools/libxc/xenguest.pc.in
> rename to tools/libs/guest/xenguest.pc.in
> diff --git a/tools/libxc/xg_cpuid_x86.c b/tools/libs/guest/xg_cpuid_x86.c
> similarity index 100%
> rename from tools/libxc/xg_cpuid_x86.c
> rename to tools/libs/guest/xg_cpuid_x86.c
> diff --git a/tools/libxc/xg_dom_arm.c b/tools/libs/guest/xg_dom_arm.c
> similarity index 100%
> rename from tools/libxc/xg_dom_arm.c
> rename to tools/libs/guest/xg_dom_arm.c
> diff --git a/tools/libxc/xg_dom_armzimageloader.c b/tools/libs/guest/xg_dom_armzimageloader.c
> similarity index 100%
> rename from tools/libxc/xg_dom_armzimageloader.c
> rename to tools/libs/guest/xg_dom_armzimageloader.c
> diff --git a/tools/libxc/xg_dom_binloader.c b/tools/libs/guest/xg_dom_binloader.c
> similarity index 100%
> rename from tools/libxc/xg_dom_binloader.c
> rename to tools/libs/guest/xg_dom_binloader.c
> diff --git a/tools/libxc/xg_dom_boot.c b/tools/libs/guest/xg_dom_boot.c
> similarity index 100%
> rename from tools/libxc/xg_dom_boot.c
> rename to tools/libs/guest/xg_dom_boot.c
> diff --git a/tools/libxc/xg_dom_bzimageloader.c b/tools/libs/guest/xg_dom_bzimageloader.c
> similarity index 100%
> rename from tools/libxc/xg_dom_bzimageloader.c
> rename to tools/libs/guest/xg_dom_bzimageloader.c
> diff --git a/tools/libxc/xg_dom_compat_linux.c b/tools/libs/guest/xg_dom_compat_linux.c
> similarity index 100%
> rename from tools/libxc/xg_dom_compat_linux.c
> rename to tools/libs/guest/xg_dom_compat_linux.c
> diff --git a/tools/libxc/xg_dom_core.c b/tools/libs/guest/xg_dom_core.c
> similarity index 100%
> rename from tools/libxc/xg_dom_core.c
> rename to tools/libs/guest/xg_dom_core.c
> diff --git a/tools/libxc/xg_dom_decompress.h b/tools/libs/guest/xg_dom_decompress.h
> similarity index 100%
> rename from tools/libxc/xg_dom_decompress.h
> rename to tools/libs/guest/xg_dom_decompress.h
> diff --git a/tools/libxc/xg_dom_decompress_lz4.c b/tools/libs/guest/xg_dom_decompress_lz4.c
> similarity index 100%
> rename from tools/libxc/xg_dom_decompress_lz4.c
> rename to tools/libs/guest/xg_dom_decompress_lz4.c
> diff --git a/tools/libxc/xg_dom_decompress_unsafe.c b/tools/libs/guest/xg_dom_decompress_unsafe.c
> similarity index 100%
> rename from tools/libxc/xg_dom_decompress_unsafe.c
> rename to tools/libs/guest/xg_dom_decompress_unsafe.c
> diff --git a/tools/libxc/xg_dom_decompress_unsafe.h b/tools/libs/guest/xg_dom_decompress_unsafe.h
> similarity index 100%
> rename from tools/libxc/xg_dom_decompress_unsafe.h
> rename to tools/libs/guest/xg_dom_decompress_unsafe.h
> diff --git a/tools/libxc/xg_dom_decompress_unsafe_bzip2.c b/tools/libs/guest/xg_dom_decompress_unsafe_bzip2.c
> similarity index 100%
> rename from tools/libxc/xg_dom_decompress_unsafe_bzip2.c
> rename to tools/libs/guest/xg_dom_decompress_unsafe_bzip2.c
> diff --git a/tools/libxc/xg_dom_decompress_unsafe_lzma.c b/tools/libs/guest/xg_dom_decompress_unsafe_lzma.c
> similarity index 100%
> rename from tools/libxc/xg_dom_decompress_unsafe_lzma.c
> rename to tools/libs/guest/xg_dom_decompress_unsafe_lzma.c
> diff --git a/tools/libxc/xg_dom_decompress_unsafe_lzo1x.c b/tools/libs/guest/xg_dom_decompress_unsafe_lzo1x.c
> similarity index 100%
> rename from tools/libxc/xg_dom_decompress_unsafe_lzo1x.c
> rename to tools/libs/guest/xg_dom_decompress_unsafe_lzo1x.c
> diff --git a/tools/libxc/xg_dom_decompress_unsafe_xz.c b/tools/libs/guest/xg_dom_decompress_unsafe_xz.c
> similarity index 100%
> rename from tools/libxc/xg_dom_decompress_unsafe_xz.c
> rename to tools/libs/guest/xg_dom_decompress_unsafe_xz.c
> diff --git a/tools/libxc/xg_dom_elfloader.c b/tools/libs/guest/xg_dom_elfloader.c
> similarity index 100%
> rename from tools/libxc/xg_dom_elfloader.c
> rename to tools/libs/guest/xg_dom_elfloader.c
> diff --git a/tools/libxc/xg_dom_hvmloader.c b/tools/libs/guest/xg_dom_hvmloader.c
> similarity index 100%
> rename from tools/libxc/xg_dom_hvmloader.c
> rename to tools/libs/guest/xg_dom_hvmloader.c
> diff --git a/tools/libxc/xg_dom_x86.c b/tools/libs/guest/xg_dom_x86.c
> similarity index 100%
> rename from tools/libxc/xg_dom_x86.c
> rename to tools/libs/guest/xg_dom_x86.c
> diff --git a/tools/libxc/xg_domain.c b/tools/libs/guest/xg_domain.c
> similarity index 100%
> rename from tools/libxc/xg_domain.c
> rename to tools/libs/guest/xg_domain.c
> diff --git a/tools/libxc/xg_nomigrate.c b/tools/libs/guest/xg_nomigrate.c
> similarity index 100%
> rename from tools/libxc/xg_nomigrate.c
> rename to tools/libs/guest/xg_nomigrate.c
> diff --git a/tools/libxc/xg_offline_page.c b/tools/libs/guest/xg_offline_page.c
> similarity index 100%
> rename from tools/libxc/xg_offline_page.c
> rename to tools/libs/guest/xg_offline_page.c
> diff --git a/tools/libxc/xg_private.c b/tools/libs/guest/xg_private.c
> similarity index 100%
> rename from tools/libxc/xg_private.c
> rename to tools/libs/guest/xg_private.c
> diff --git a/tools/libxc/xg_private.h b/tools/libs/guest/xg_private.h
> similarity index 100%
> rename from tools/libxc/xg_private.h
> rename to tools/libs/guest/xg_private.h
> diff --git a/tools/libxc/xg_save_restore.h b/tools/libs/guest/xg_save_restore.h
> similarity index 100%
> rename from tools/libxc/xg_save_restore.h
> rename to tools/libs/guest/xg_save_restore.h
> diff --git a/tools/libxc/xg_sr_common.c b/tools/libs/guest/xg_sr_common.c
> similarity index 100%
> rename from tools/libxc/xg_sr_common.c
> rename to tools/libs/guest/xg_sr_common.c
> diff --git a/tools/libxc/xg_sr_common.h b/tools/libs/guest/xg_sr_common.h
> similarity index 100%
> rename from tools/libxc/xg_sr_common.h
> rename to tools/libs/guest/xg_sr_common.h
> diff --git a/tools/libxc/xg_sr_common_x86.c b/tools/libs/guest/xg_sr_common_x86.c
> similarity index 100%
> rename from tools/libxc/xg_sr_common_x86.c
> rename to tools/libs/guest/xg_sr_common_x86.c
> diff --git a/tools/libxc/xg_sr_common_x86.h b/tools/libs/guest/xg_sr_common_x86.h
> similarity index 100%
> rename from tools/libxc/xg_sr_common_x86.h
> rename to tools/libs/guest/xg_sr_common_x86.h
> diff --git a/tools/libxc/xg_sr_common_x86_pv.c b/tools/libs/guest/xg_sr_common_x86_pv.c
> similarity index 100%
> rename from tools/libxc/xg_sr_common_x86_pv.c
> rename to tools/libs/guest/xg_sr_common_x86_pv.c
> diff --git a/tools/libxc/xg_sr_common_x86_pv.h b/tools/libs/guest/xg_sr_common_x86_pv.h
> similarity index 100%
> rename from tools/libxc/xg_sr_common_x86_pv.h
> rename to tools/libs/guest/xg_sr_common_x86_pv.h
> diff --git a/tools/libxc/xg_sr_restore.c b/tools/libs/guest/xg_sr_restore.c
> similarity index 100%
> rename from tools/libxc/xg_sr_restore.c
> rename to tools/libs/guest/xg_sr_restore.c
> diff --git a/tools/libxc/xg_sr_restore_x86_hvm.c b/tools/libs/guest/xg_sr_restore_x86_hvm.c
> similarity index 100%
> rename from tools/libxc/xg_sr_restore_x86_hvm.c
> rename to tools/libs/guest/xg_sr_restore_x86_hvm.c
> diff --git a/tools/libxc/xg_sr_restore_x86_pv.c b/tools/libs/guest/xg_sr_restore_x86_pv.c
> similarity index 100%
> rename from tools/libxc/xg_sr_restore_x86_pv.c
> rename to tools/libs/guest/xg_sr_restore_x86_pv.c
> diff --git a/tools/libxc/xg_sr_save.c b/tools/libs/guest/xg_sr_save.c
> similarity index 100%
> rename from tools/libxc/xg_sr_save.c
> rename to tools/libs/guest/xg_sr_save.c
> diff --git a/tools/libxc/xg_sr_save_x86_hvm.c b/tools/libs/guest/xg_sr_save_x86_hvm.c
> similarity index 100%
> rename from tools/libxc/xg_sr_save_x86_hvm.c
> rename to tools/libs/guest/xg_sr_save_x86_hvm.c
> diff --git a/tools/libxc/xg_sr_save_x86_pv.c b/tools/libs/guest/xg_sr_save_x86_pv.c
> similarity index 100%
> rename from tools/libxc/xg_sr_save_x86_pv.c
> rename to tools/libs/guest/xg_sr_save_x86_pv.c
> diff --git a/tools/libxc/xg_sr_stream_format.h b/tools/libs/guest/xg_sr_stream_format.h
> similarity index 100%
> rename from tools/libxc/xg_sr_stream_format.h
> rename to tools/libs/guest/xg_sr_stream_format.h
> diff --git a/tools/libxc/xg_suspend.c b/tools/libs/guest/xg_suspend.c
> similarity index 100%
> rename from tools/libxc/xg_suspend.c
> rename to tools/libs/guest/xg_suspend.c
> diff --git a/tools/libs/uselibs.mk b/tools/libs/uselibs.mk
> index 8e45e8d917..9619c576ba 100644
> --- a/tools/libs/uselibs.mk
> +++ b/tools/libs/uselibs.mk
> @@ -18,3 +18,5 @@ LIBS_LIBS += hypfs
>  USELIBS_hypfs := toollog toolcore call
>  LIBS_LIBS += ctrl
>  USELIBS_ctrl := toollog call evtchn gnttab foreignmemory devicemodel
> +LIBS_LIBS += guest
> +USELIBS_guest := evtchn ctrl
> diff --git a/tools/libxc/Makefile b/tools/libxc/Makefile
> deleted file mode 100644
> index a52264c74c..0000000000
> --- a/tools/libxc/Makefile
> +++ /dev/null
> @@ -1,207 +0,0 @@
> -XEN_ROOT = $(CURDIR)/../..
> -include $(XEN_ROOT)/tools/Rules.mk
> -
> -MAJOR    = 4.15
> -MINOR    = 0
> -
> -ifeq ($(CONFIG_LIBXC_MINIOS),y)
> -# Save/restore of a domain is currently incompatible with a stubdom environment
> -override CONFIG_MIGRATE := n
> -endif
> -
> -LINK_FILES := xc_private.h xc_core.h xc_core_x86.h xc_core_arm.h xc_bitops.h
> -
> -$(LINK_FILES):
> -	ln -sf $(XEN_ROOT)/tools/libs/ctrl/$(notdir $@) $@
> -
> -GUEST_SRCS-y :=
> -GUEST_SRCS-y += xg_private.c
> -GUEST_SRCS-y += xg_domain.c
> -GUEST_SRCS-y += xg_suspend.c
> -ifeq ($(CONFIG_MIGRATE),y)
> -GUEST_SRCS-y += xg_sr_common.c
> -GUEST_SRCS-$(CONFIG_X86) += xg_sr_common_x86.c
> -GUEST_SRCS-$(CONFIG_X86) += xg_sr_common_x86_pv.c
> -GUEST_SRCS-$(CONFIG_X86) += xg_sr_restore_x86_pv.c
> -GUEST_SRCS-$(CONFIG_X86) += xg_sr_restore_x86_hvm.c
> -GUEST_SRCS-$(CONFIG_X86) += xg_sr_save_x86_pv.c
> -GUEST_SRCS-$(CONFIG_X86) += xg_sr_save_x86_hvm.c
> -GUEST_SRCS-y += xg_sr_restore.c
> -GUEST_SRCS-y += xg_sr_save.c
> -GUEST_SRCS-y += xg_offline_page.c
> -else
> -GUEST_SRCS-y += xg_nomigrate.c
> -endif
> -
> -vpath %.c ../../xen/common/libelf
> -CFLAGS += -I../../xen/common/libelf
> -
> -ELF_SRCS-y += libelf-tools.c libelf-loader.c
> -ELF_SRCS-y += libelf-dominfo.c
> -
> -GUEST_SRCS-y += $(ELF_SRCS-y)
> -
> -$(patsubst %.c,%.o,$(ELF_SRCS-y)): CFLAGS += -Wno-pointer-sign
> -$(patsubst %.c,%.opic,$(ELF_SRCS-y)): CFLAGS += -Wno-pointer-sign
> -
> -ifeq ($(CONFIG_X86),y) # Add libx86 to the build
> -vpath %.c ../../xen/lib/x86
> -
> -GUEST_SRCS-y                 += cpuid.c msr.c
> -endif
> -
> -# new domain builder
> -GUEST_SRCS-y                 += xg_dom_core.c
> -GUEST_SRCS-y                 += xg_dom_boot.c
> -GUEST_SRCS-y                 += xg_dom_elfloader.c
> -GUEST_SRCS-$(CONFIG_X86)     += xg_dom_bzimageloader.c
> -GUEST_SRCS-$(CONFIG_X86)     += xg_dom_decompress_lz4.c
> -GUEST_SRCS-$(CONFIG_X86)     += xg_dom_hvmloader.c
> -GUEST_SRCS-$(CONFIG_ARM)     += xg_dom_armzimageloader.c
> -GUEST_SRCS-y                 += xg_dom_binloader.c
> -GUEST_SRCS-y                 += xg_dom_compat_linux.c
> -
> -GUEST_SRCS-$(CONFIG_X86)     += xg_dom_x86.c
> -GUEST_SRCS-$(CONFIG_X86)     += xg_cpuid_x86.c
> -GUEST_SRCS-$(CONFIG_ARM)     += xg_dom_arm.c
> -
> -ifeq ($(CONFIG_LIBXC_MINIOS),y)
> -GUEST_SRCS-y                 += xg_dom_decompress_unsafe.c
> -GUEST_SRCS-y                 += xg_dom_decompress_unsafe_bzip2.c
> -GUEST_SRCS-y                 += xg_dom_decompress_unsafe_lzma.c
> -GUEST_SRCS-y                 += xg_dom_decompress_unsafe_lzo1x.c
> -GUEST_SRCS-y                 += xg_dom_decompress_unsafe_xz.c
> -endif
> -
> --include $(XEN_TARGET_ARCH)/Makefile
> -
> -CFLAGS   += -Werror -Wmissing-prototypes
> -CFLAGS   += -I. -I./include $(CFLAGS_xeninclude)
> -CFLAGS   += -D__XEN_TOOLS__
> -
> -# Needed for posix_fadvise64() in xc_linux.c
> -CFLAGS-$(CONFIG_Linux) += -D_GNU_SOURCE
> -
> -CFLAGS	+= $(PTHREAD_CFLAGS)
> -CFLAGS	+= $(CFLAGS_libxentoollog)
> -CFLAGS	+= $(CFLAGS_libxenevtchn)
> -CFLAGS	+= $(CFLAGS_libxendevicemodel)
> -
> -GUEST_LIB_OBJS := $(patsubst %.c,%.o,$(GUEST_SRCS-y))
> -GUEST_PIC_OBJS := $(patsubst %.c,%.opic,$(GUEST_SRCS-y))
> -
> -$(GUEST_LIB_OBJS) $(GUEST_PIC_OBJS): CFLAGS += -include $(XEN_ROOT)/tools/config.h
> -
> -# libxenguest includes xc_private.h, so needs this despite not using
> -# this functionality directly.
> -$(GUEST_LIB_OBJS) $(GUEST_PIC_OBJS): CFLAGS += $(CFLAGS_libxencall) $(CFLAGS_libxenforeignmemory)
> -
> -LIB += libxenguest.a
> -ifneq ($(nosharedlibs),y)
> -LIB += libxenguest.so libxenguest.so.$(MAJOR) libxenguest.so.$(MAJOR).$(MINOR)
> -endif
> -
> -genpath-target = $(call buildmakevars2header,_paths.h)
> -$(eval $(genpath-target))
> -
> -xc_private.h: _paths.h
> -
> -$(GUEST_LIB_OBJS) $(GUEST_PIC_OBJS): $(LINK_FILES)
> -
> -PKG_CONFIG := xenguest.pc
> -PKG_CONFIG_VERSION := $(MAJOR).$(MINOR)
> -
> -ifneq ($(CONFIG_LIBXC_MINIOS),y)
> -PKG_CONFIG_INST := $(PKG_CONFIG)
> -$(PKG_CONFIG_INST): PKG_CONFIG_PREFIX = $(prefix)
> -$(PKG_CONFIG_INST): PKG_CONFIG_INCDIR = $(includedir)
> -$(PKG_CONFIG_INST): PKG_CONFIG_LIBDIR = $(libdir)
> -endif
> -
> -PKG_CONFIG_LOCAL := $(foreach pc,$(PKG_CONFIG),$(PKG_CONFIG_DIR)/$(pc))
> -
> -$(PKG_CONFIG_LOCAL): PKG_CONFIG_PREFIX = $(XEN_ROOT)
> -$(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(XEN_libxenctrl)/include
> -$(PKG_CONFIG_LOCAL): PKG_CONFIG_LIBDIR = $(CURDIR)
> -$(PKG_CONFIG_LOCAL): PKG_CONFIG_CFLAGS_LOCAL = $(CFLAGS_xeninclude)
> -
> -.PHONY: all
> -all: build
> -
> -.PHONY: build
> -build:
> -	$(MAKE) libs
> -
> -.PHONY: libs
> -libs: $(LIB) $(PKG_CONFIG_INST) $(PKG_CONFIG_LOCAL)
> -
> -.PHONY: install
> -install: build
> -	$(INSTALL_DIR) $(DESTDIR)$(libdir)
> -	$(INSTALL_DIR) $(DESTDIR)$(includedir)
> -	$(INSTALL_SHLIB) libxenguest.so.$(MAJOR).$(MINOR) $(DESTDIR)$(libdir)
> -	$(INSTALL_DATA) libxenguest.a $(DESTDIR)$(libdir)
> -	$(SYMLINK_SHLIB) libxenguest.so.$(MAJOR).$(MINOR) $(DESTDIR)$(libdir)/libxenguest.so.$(MAJOR)
> -	$(SYMLINK_SHLIB) libxenguest.so.$(MAJOR) $(DESTDIR)$(libdir)/libxenguest.so
> -	$(INSTALL_DATA) include/xenguest.h $(DESTDIR)$(includedir)
> -	$(INSTALL_DATA) xenguest.pc $(DESTDIR)$(PKG_INSTALLDIR)
> -
> -.PHONY: uninstall
> -uninstall:
> -	rm -f $(DESTDIR)$(PKG_INSTALLDIR)/xenguest.pc
> -	rm -f $(DESTDIR)$(includedir)/xenguest.h
> -	rm -f $(DESTDIR)$(libdir)/libxenguest.so
> -	rm -f $(DESTDIR)$(libdir)/libxenguest.so.$(MAJOR)
> -	rm -f $(DESTDIR)$(libdir)/libxenguest.so.$(MAJOR).$(MINOR)
> -	rm -f $(DESTDIR)$(libdir)/libxenguest.a
> -
> -.PHONY: TAGS
> -TAGS:
> -	etags -t *.c *.h
> -
> -.PHONY: clean
> -clean:
> -	rm -rf *.rpm $(LIB) *~ $(DEPS_RM) \
> -            _paths.h \
> -	    $(LINK_FILES) \
> -	    xenguest.pc \
> -            $(GUEST_LIB_OBJS) $(GUEST_PIC_OBJS)
> -
> -.PHONY: distclean
> -distclean: clean
> -
> -.PHONY: rpm
> -rpm: build
> -	rm -rf staging
> -	mkdir staging
> -	mkdir staging/i386
> -	rpmbuild --define "staging$$PWD/staging" --define '_builddir.' \
> -		--define "_rpmdir$$PWD/staging" -bb rpm.spec
> -	mv staging/i386/*.rpm .
> -	rm -rf staging
> -
> -# libxenguest
> -
> -libxenguest.a: $(GUEST_LIB_OBJS)
> -	$(AR) rc $@ $^
> -
> -libxenguest.so: libxenguest.so.$(MAJOR)
> -	$(SYMLINK_SHLIB) $< $@
> -libxenguest.so.$(MAJOR): libxenguest.so.$(MAJOR).$(MINOR)
> -	$(SYMLINK_SHLIB) $< $@
> -
> -ifeq ($(CONFIG_MiniOS),y)
> -zlib-options =
> -else
> -zlib-options = $(ZLIB)
> -endif
> -
> -xc_dom_bzimageloader.o: CFLAGS += $(filter -D%,$(zlib-options))
> -xc_dom_bzimageloader.opic: CFLAGS += $(filter -D%,$(zlib-options))
> -
> -libxenguest.so.$(MAJOR).$(MINOR): COMPRESSION_LIBS = $(filter -l%,$(zlib-options))
> -libxenguest.so.$(MAJOR).$(MINOR): $(GUEST_PIC_OBJS)
> -	$(CC) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenguest.so.$(MAJOR) $(SHLIB_LDFLAGS) -o $@ $(GUEST_PIC_OBJS) $(COMPRESSION_LIBS) -lz $(LDLIBS_libxenevtchn) $(LDLIBS_libxenctrl) $(PTHREAD_LIBS) $(APPEND_LDFLAGS)
> -
> --include $(DEPS_INCLUDE)
> -
> -- 
> 2.26.2
>
Wei Liu Aug. 27, 2020, 11:33 a.m. UTC | #2
On Sun, Aug 23, 2020 at 11:35:08AM +0200, Juergen Gross wrote:
> tools/libxc now contains libxenguest only. Move it to tools/libs/guest.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Acked-by: Wei Liu <wl@xen.org>
diff mbox series

Patch

diff --git a/.gitignore b/.gitignore
index a17d7e1e1b..c84a5fd4db 100644
--- a/.gitignore
+++ b/.gitignore
@@ -71,7 +71,6 @@  stubdom/include
 stubdom/ioemu
 stubdom/ioemu/
 stubdom/libs-*
-stubdom/libxc-*
 stubdom/libxencall-*
 stubdom/libxenevtchn-*
 stubdom/libxenforeignmemory-*
@@ -121,6 +120,14 @@  tools/libs/foreignmemory/headers.chk
 tools/libs/foreignmemory/xenforeignmemory.pc
 tools/libs/devicemodel/headers.chk
 tools/libs/devicemodel/xendevicemodel.pc
+tools/libs/guest/_*.[ch]
+tools/libs/guest/libxenguest.map
+tools/libs/guest/xenguest.pc
+tools/libs/guest/xc_bitops.h
+tools/libs/guest/xc_core.h
+tools/libs/guest/xc_core_arm.h
+tools/libs/guest/xc_core_x86.h
+tools/libs/guest/xc_private.h
 tools/console/xenconsole
 tools/console/xenconsoled
 tools/console/client/_paths.h
@@ -197,12 +204,6 @@  tools/include/xen-xsm/*
 tools/include/xen-foreign/*.(c|h|size)
 tools/include/xen-foreign/checker
 tools/libvchan/xenvchan.pc
-tools/libxc/*.pc
-tools/libxc/xc_bitops.h
-tools/libxc/xc_core.h
-tools/libxc/xc_core_arm.h
-tools/libxc/xc_core_x86.h
-tools/libxc/xc_private.h
 tools/libxl/_libxl.api-for-check
 tools/libxl/*.api-ok
 tools/libxl/*.pc
@@ -369,7 +370,6 @@  tools/include/xen-foreign/arm64.h
 tools/misc/xen-hptool
 tools/misc/xen-mfndump
 tools/libs/toolcore/include/_*.h
-tools/libxc/_*.[ch]
 tools/libxl/_*.[ch]
 tools/libxl/testidl
 tools/libxl/testidl.c
diff --git a/stubdom/Makefile b/stubdom/Makefile
index 193941827d..f780cc8054 100644
--- a/stubdom/Makefile
+++ b/stubdom/Makefile
@@ -331,7 +331,9 @@  endif
 # libraries under tools/libs
 #######
 
-STUB_LIBS := toolcore toollog evtchn gnttab call foreignmemory devicemodel ctrl
+STUB_LIBS := toolcore toollog evtchn gnttab call foreignmemory devicemodel ctrl guest
+
+LIBDEP_guest := cross-zlib
 
 #######
 # common handling
@@ -363,13 +365,10 @@  endef
 
 $(foreach lib,$(STUB_LIBS),$(eval $(call BUILD_lib,$(lib))))
 
-libxc-$(XEN_TARGET_ARCH)/stamp: $(XEN_ROOT)/tools/libxc/Makefile
-	$(do_links)
-
 xenstore/stamp: $(XEN_ROOT)/tools/xenstore/Makefile
 	$(do_links)
 
-LINK_DIRS := libxc-$(XEN_TARGET_ARCH) xenstore $(foreach dir,$(STUB_LIBS),libs-$(XEN_TARGET_ARCH)/$(dir))
+LINK_DIRS := xenstore $(foreach dir,$(STUB_LIBS),libs-$(XEN_TARGET_ARCH)/$(dir))
 LINK_STAMPS := $(foreach dir,$(LINK_DIRS),$(dir)/stamp)
 
 mk-headers-$(XEN_TARGET_ARCH): $(IOEMU_LINKFARM_TARGET) $(LINK_STAMPS)
@@ -392,16 +391,6 @@  $(TARGETS_MINIOS): mini-os-%:
                 mkdir -p $@/$$i ; \
 	done
 
-#######
-# libxc
-#######
-
-.PHONY: libxc
-libxc: libxc-$(XEN_TARGET_ARCH)/libxenguest.a
-libxc-$(XEN_TARGET_ARCH)/libxenguest.a: libxenevtchn libxenctrl cross-zlib
-libxc-$(XEN_TARGET_ARCH)/libxenguest.a: mk-headers-$(XEN_TARGET_ARCH) $(NEWLIB_STAMPFILE)
-	CPPFLAGS="$(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" $(MAKE) DESTDIR= CONFIG_LIBXC_MINIOS=y -C libxc-$(XEN_TARGET_ARCH)
-
 #######
 # ioemu
 #######
@@ -410,7 +399,7 @@  ioemu-minios-config.mk: $(CURDIR)/ioemu-minios.cfg
 	MINIOS_CONFIG="$<" CONFIG_FILE="$(CURDIR)/$@" $(MAKE) DESTDIR= -C $(MINI_OS) config
 
 .PHONY: ioemu
-ioemu: cross-zlib cross-libpci libxc ioemu-minios-config.mk
+ioemu: cross-zlib cross-libpci libxenguest ioemu-minios-config.mk
 	[ -f ioemu/config-host.mak ] || \
 	  ( $(buildmakevars2shellvars); \
 	    cd ioemu ; \
@@ -504,15 +493,15 @@  xenstore: $(CROSS_ROOT) xenstore-minios-config.mk
 
 .PHONY: ioemu-stubdom
 ioemu-stubdom: APP_OBJS=$(CURDIR)/ioemu/i386-stubdom/qemu.a $(CURDIR)/ioemu/i386-stubdom/libqemu.a $(CURDIR)/ioemu/libqemu_common.a
-ioemu-stubdom: mini-os-$(XEN_TARGET_ARCH)-ioemu lwip-$(XEN_TARGET_ARCH) libxc ioemu
+ioemu-stubdom: mini-os-$(XEN_TARGET_ARCH)-ioemu lwip-$(XEN_TARGET_ARCH) libxenguest ioemu
 	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/ioemu-minios.cfg" $(MAKE) DESTDIR= -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS="$(APP_OBJS)"
 
 .PHONY: caml-stubdom
-caml-stubdom: mini-os-$(XEN_TARGET_ARCH)-caml lwip-$(XEN_TARGET_ARCH) libxc cross-ocaml caml
+caml-stubdom: mini-os-$(XEN_TARGET_ARCH)-caml lwip-$(XEN_TARGET_ARCH) libxenguest cross-ocaml caml
 	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/caml/minios.cfg" $(MAKE) DESTDIR= -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS="$(CURDIR)/caml/main-caml.o $(CURDIR)/caml/caml.o $(CAMLLIB)/libasmrun.a"
 
 .PHONY: c-stubdom
-c-stubdom: mini-os-$(XEN_TARGET_ARCH)-c lwip-$(XEN_TARGET_ARCH) libxc c
+c-stubdom: mini-os-$(XEN_TARGET_ARCH)-c lwip-$(XEN_TARGET_ARCH) libxenguest c
 	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/c/minios.cfg" $(MAKE) DESTDIR= -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS=$(CURDIR)/c/main.a
 
 .PHONY: vtpm-stubdom
@@ -524,11 +513,11 @@  vtpmmgr-stubdom: mini-os-$(XEN_TARGET_ARCH)-vtpmmgr vtpmmgr
 	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/vtpmmgr/minios.cfg" $(MAKE) -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< APP_OBJS="$(CURDIR)/vtpmmgr/vtpmmgr.a" APP_LDLIBS="-lm -lpolarssl"
 
 .PHONY: pv-grub
-pv-grub: mini-os-$(XEN_TARGET_ARCH)-grub libxc grub
+pv-grub: mini-os-$(XEN_TARGET_ARCH)-grub libxenguest grub
 	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/grub/minios.cfg" $(MAKE) DESTDIR= -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< APP_OBJS=$(CURDIR)/grub-$(XEN_TARGET_ARCH)/main.a
 
 .PHONY: xenstore-stubdom
-xenstore-stubdom: mini-os-$(XEN_TARGET_ARCH)-xenstore libxc xenstore
+xenstore-stubdom: mini-os-$(XEN_TARGET_ARCH)-xenstore libxenguest xenstore
 	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/xenstore-minios.cfg" $(MAKE) DESTDIR= -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< APP_OBJS=$(CURDIR)/xenstore/xenstored.a
 
 #########
@@ -622,7 +611,6 @@  clean:
 	rm -f $(STUBDOMPATH)
 	rm -f *-minios-config.mk
 	rm -fr pkg-config
-	[ ! -e libxc-$(XEN_TARGET_ARCH)/Makefile ] || $(MAKE) DESTDIR= -C libxc-$(XEN_TARGET_ARCH) clean
 	-[ ! -d ioemu ] || $(MAKE) DESTDIR= -C ioemu clean
 	-[ ! -d xenstore ] || $(MAKE) DESTDIR= -C xenstore clean
 
@@ -633,7 +621,7 @@  crossclean: clean
 	rm -fr newlib-$(XEN_TARGET_ARCH)
 	rm -fr zlib-$(XEN_TARGET_ARCH) pciutils-$(XEN_TARGET_ARCH)
 	rm -fr libs-$(XEN_TARGET_ARCH)
-	rm -fr libxc-$(XEN_TARGET_ARCH) ioemu xenstore
+	rm -fr ioemu xenstore
 	rm -fr gmp-$(XEN_TARGET_ARCH)
 	rm -fr polarssl-$(XEN_TARGET_ARCH)
 	rm -fr openssl-$(XEN_TARGET_ARCH)
diff --git a/stubdom/grub/Makefile b/stubdom/grub/Makefile
index d33fa2f71e..7397661c9b 100644
--- a/stubdom/grub/Makefile
+++ b/stubdom/grub/Makefile
@@ -7,7 +7,7 @@  BOOT=$(OBJ_DIR)/boot-$(XEN_TARGET_ARCH).o
 
 DEF_CPPFLAGS += -I$(XEN_ROOT)/tools/libs/toollog/include
 DEF_CPPFLAGS += -I$(XEN_ROOT)/tools/libs/ctrl/include
-DEF_CPPFLAGS += -I$(XEN_ROOT)/tools/libxc/include
+DEF_CPPFLAGS += -I$(XEN_ROOT)/tools/libs/guest/include
 DEF_CPPFLAGS += -I$(XEN_ROOT)/tools/include -I.
 DEF_CPPFLAGS += -I../grub-upstream/stage1
 DEF_CPPFLAGS += -I../grub-upstream/stage2
diff --git a/stubdom/mini-os.mk b/stubdom/mini-os.mk
index b1387df3f8..e1640a7cbc 100644
--- a/stubdom/mini-os.mk
+++ b/stubdom/mini-os.mk
@@ -14,4 +14,4 @@  CALL_PATH = $(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/call
 FOREIGNMEMORY_PATH = $(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/foreignmemory
 DEVICEMODEL_PATH = $(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/devicemodel
 CTRL_PATH = $(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/ctrl
-GUEST_PATH = $(XEN_ROOT)/stubdom/libxc-$(MINIOS_TARGET_ARCH)
+GUEST_PATH = $(XEN_ROOT)/stubdom/libs-$(MINIOS_TARGET_ARCH)/guest
diff --git a/tools/Makefile b/tools/Makefile
index 7c9f9fc900..f9b4012290 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -6,7 +6,6 @@  include $(XEN_ROOT)/tools/Rules.mk
 
 SUBDIRS-y :=
 SUBDIRS-y += libs
-SUBDIRS-y += libxc
 SUBDIRS-y += flask
 SUBDIRS-y += fuzz
 SUBDIRS-y += xenstore
@@ -44,7 +43,7 @@  SUBDIRS-y += pygrub
 SUBDIRS-$(OCAML_TOOLS) += ocaml
 
 ifeq ($(CONFIG_RUMP),y)
-SUBDIRS-y := libs libxc xenstore
+SUBDIRS-y := libs xenstore
 endif
 
 # For the sake of linking, set the sys-root
diff --git a/tools/Rules.mk b/tools/Rules.mk
index 6ec480388c..b969dcfccb 100644
--- a/tools/Rules.mk
+++ b/tools/Rules.mk
@@ -15,7 +15,6 @@  XEN_INCLUDE        = $(XEN_ROOT)/tools/include
 
 include $(XEN_ROOT)/tools/libs/uselibs.mk
 
-XEN_libxenguest    = $(XEN_ROOT)/tools/libxc
 XEN_libxenlight    = $(XEN_ROOT)/tools/libxl
 # Currently libxlutil lives in the same directory as libxenlight
 XEN_libxlutil      = $(XEN_libxenlight)
@@ -105,11 +104,7 @@  $(foreach lib,$(LIBS_LIBS),$(eval $(call LIB_defs,$(lib))))
 # code which compiles against libxenctrl get __XEN_TOOLS__ and
 # therefore sees the unstable hypercall interfaces.
 CFLAGS_libxenctrl += $(CFLAGS_libxentoollog) $(CFLAGS_libxenforeignmemory) $(CFLAGS_libxendevicemodel) -D__XEN_TOOLS__
-
-CFLAGS_libxenguest = -I$(XEN_libxenguest)/include $(CFLAGS_libxenevtchn) $(CFLAGS_libxenforeignmemory) $(CFLAGS_xeninclude)
-SHDEPS_libxenguest = $(SHLIB_libxenevtchn) $(SHLIB_libxenctrl)
-LDLIBS_libxenguest = $(SHDEPS_libxenguest) $(XEN_libxenguest)/libxenguest$(libextension)
-SHLIB_libxenguest  = $(SHDEPS_libxenguest) -Wl,-rpath-link=$(XEN_libxenguest)
+CFLAGS_libxenguest += $(CFLAGS_libxenevtchn) $(CFLAGS_libxenforeignmemory)
 
 CFLAGS_libxenstore = -I$(XEN_libxenstore)/include $(CFLAGS_xeninclude)
 SHDEPS_libxenstore = $(SHLIB_libxentoolcore) $(SHLIB_libxenctrl)
diff --git a/tools/libs/Makefile b/tools/libs/Makefile
index 7648ea0e4c..f15c1688f7 100644
--- a/tools/libs/Makefile
+++ b/tools/libs/Makefile
@@ -10,6 +10,7 @@  SUBDIRS-y += call
 SUBDIRS-y += foreignmemory
 SUBDIRS-y += devicemodel
 SUBDIRS-y += ctrl
+SUBDIRS-y += guest
 SUBDIRS-y += hypfs
 
 ifeq ($(CONFIG_RUMP),y)
diff --git a/tools/libxc/COPYING b/tools/libs/guest/COPYING
similarity index 100%
rename from tools/libxc/COPYING
rename to tools/libs/guest/COPYING
diff --git a/tools/libs/guest/Makefile b/tools/libs/guest/Makefile
new file mode 100644
index 0000000000..e53aeabd3e
--- /dev/null
+++ b/tools/libs/guest/Makefile
@@ -0,0 +1,121 @@ 
+XEN_ROOT = $(CURDIR)/../../..
+include $(XEN_ROOT)/tools/Rules.mk
+
+ifeq ($(CONFIG_LIBXC_MINIOS),y)
+# Save/restore of a domain is currently incompatible with a stubdom environment
+override CONFIG_MIGRATE := n
+endif
+
+LINK_FILES := xc_private.h xc_core.h xc_core_x86.h xc_core_arm.h xc_bitops.h
+
+$(LINK_FILES):
+	ln -sf $(XEN_ROOT)/tools/libs/ctrl/$(notdir $@) $@
+
+SRCS-y += xg_private.c
+SRCS-y += xg_domain.c
+SRCS-y += xg_suspend.c
+ifeq ($(CONFIG_MIGRATE),y)
+SRCS-y += xg_sr_common.c
+SRCS-$(CONFIG_X86) += xg_sr_common_x86.c
+SRCS-$(CONFIG_X86) += xg_sr_common_x86_pv.c
+SRCS-$(CONFIG_X86) += xg_sr_restore_x86_pv.c
+SRCS-$(CONFIG_X86) += xg_sr_restore_x86_hvm.c
+SRCS-$(CONFIG_X86) += xg_sr_save_x86_pv.c
+SRCS-$(CONFIG_X86) += xg_sr_save_x86_hvm.c
+SRCS-y += xg_sr_restore.c
+SRCS-y += xg_sr_save.c
+SRCS-y += xg_offline_page.c
+else
+SRCS-y += xg_nomigrate.c
+endif
+
+vpath %.c ../../../xen/common/libelf
+CFLAGS += -I../../../xen/common/libelf
+
+ELF_SRCS-y += libelf-tools.c libelf-loader.c
+ELF_SRCS-y += libelf-dominfo.c
+
+SRCS-y += $(ELF_SRCS-y)
+
+$(patsubst %.c,%.o,$(ELF_SRCS-y)): CFLAGS += -Wno-pointer-sign
+$(patsubst %.c,%.opic,$(ELF_SRCS-y)): CFLAGS += -Wno-pointer-sign
+
+ifeq ($(CONFIG_X86),y) # Add libx86 to the build
+vpath %.c ../../../xen/lib/x86
+
+SRCS-y                 += cpuid.c msr.c
+endif
+
+# new domain builder
+SRCS-y                 += xg_dom_core.c
+SRCS-y                 += xg_dom_boot.c
+SRCS-y                 += xg_dom_elfloader.c
+SRCS-$(CONFIG_X86)     += xg_dom_bzimageloader.c
+SRCS-$(CONFIG_X86)     += xg_dom_decompress_lz4.c
+SRCS-$(CONFIG_X86)     += xg_dom_hvmloader.c
+SRCS-$(CONFIG_ARM)     += xg_dom_armzimageloader.c
+SRCS-y                 += xg_dom_binloader.c
+SRCS-y                 += xg_dom_compat_linux.c
+
+SRCS-$(CONFIG_X86)     += xg_dom_x86.c
+SRCS-$(CONFIG_X86)     += xg_cpuid_x86.c
+SRCS-$(CONFIG_ARM)     += xg_dom_arm.c
+
+ifeq ($(CONFIG_LIBXC_MINIOS),y)
+SRCS-y                 += xg_dom_decompress_unsafe.c
+SRCS-y                 += xg_dom_decompress_unsafe_bzip2.c
+SRCS-y                 += xg_dom_decompress_unsafe_lzma.c
+SRCS-y                 += xg_dom_decompress_unsafe_lzo1x.c
+SRCS-y                 += xg_dom_decompress_unsafe_xz.c
+endif
+
+-include $(XEN_TARGET_ARCH)/Makefile
+
+CFLAGS   += -Werror -Wmissing-prototypes
+CFLAGS   += -I. -I./include $(CFLAGS_xeninclude)
+CFLAGS   += -D__XEN_TOOLS__
+CFLAGS   += -include $(XEN_ROOT)/tools/config.h
+
+# Needed for posix_fadvise64() in xc_linux.c
+CFLAGS-$(CONFIG_Linux) += -D_GNU_SOURCE
+
+CFLAGS	+= $(PTHREAD_CFLAGS)
+CFLAGS	+= $(CFLAGS_libxentoollog)
+CFLAGS	+= $(CFLAGS_libxenevtchn)
+CFLAGS	+= $(CFLAGS_libxendevicemodel)
+
+# libxenguest includes xc_private.h, so needs this despite not using
+# this functionality directly.
+CFLAGS += $(CFLAGS_libxencall) $(CFLAGS_libxenforeignmemory)
+
+ifeq ($(CONFIG_MiniOS),y)
+zlib-options =
+else
+zlib-options = $(ZLIB)
+endif
+
+xc_dom_bzimageloader.o: CFLAGS += $(filter -D%,$(zlib-options))
+xc_dom_bzimageloader.opic: CFLAGS += $(filter -D%,$(zlib-options))
+
+LIBHEADER := xenguest.h
+
+NO_HEADERS_CHK := y
+
+include $(XEN_ROOT)/tools/libs/libs.mk
+
+libxenguest.so.$(MAJOR).$(MINOR): COMPRESSION_LIBS = $(filter -l%,$(zlib-options))
+libxenguest.so.$(MAJOR).$(MINOR): APPEND_LDFLAGS += $(COMPRESSION_LIBS) -lz
+
+genpath-target = $(call buildmakevars2header,_paths.h)
+$(eval $(genpath-target))
+
+xc_private.h: _paths.h
+
+$(LIB_OBJS) $(PIC_OBJS): $(LINK_FILES)
+
+$(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(XEN_libxenctrl)/include
+$(PKG_CONFIG_LOCAL): PKG_CONFIG_CFLAGS_LOCAL = $(CFLAGS_xeninclude)
+
+.PHONY: cleanlocal
+cleanlocal:
+	rm -f libxenguest.map
diff --git a/tools/libxc/include/xenguest.h b/tools/libs/guest/include/xenguest.h
similarity index 100%
rename from tools/libxc/include/xenguest.h
rename to tools/libs/guest/include/xenguest.h
diff --git a/tools/libxc/xenguest.pc.in b/tools/libs/guest/xenguest.pc.in
similarity index 100%
rename from tools/libxc/xenguest.pc.in
rename to tools/libs/guest/xenguest.pc.in
diff --git a/tools/libxc/xg_cpuid_x86.c b/tools/libs/guest/xg_cpuid_x86.c
similarity index 100%
rename from tools/libxc/xg_cpuid_x86.c
rename to tools/libs/guest/xg_cpuid_x86.c
diff --git a/tools/libxc/xg_dom_arm.c b/tools/libs/guest/xg_dom_arm.c
similarity index 100%
rename from tools/libxc/xg_dom_arm.c
rename to tools/libs/guest/xg_dom_arm.c
diff --git a/tools/libxc/xg_dom_armzimageloader.c b/tools/libs/guest/xg_dom_armzimageloader.c
similarity index 100%
rename from tools/libxc/xg_dom_armzimageloader.c
rename to tools/libs/guest/xg_dom_armzimageloader.c
diff --git a/tools/libxc/xg_dom_binloader.c b/tools/libs/guest/xg_dom_binloader.c
similarity index 100%
rename from tools/libxc/xg_dom_binloader.c
rename to tools/libs/guest/xg_dom_binloader.c
diff --git a/tools/libxc/xg_dom_boot.c b/tools/libs/guest/xg_dom_boot.c
similarity index 100%
rename from tools/libxc/xg_dom_boot.c
rename to tools/libs/guest/xg_dom_boot.c
diff --git a/tools/libxc/xg_dom_bzimageloader.c b/tools/libs/guest/xg_dom_bzimageloader.c
similarity index 100%
rename from tools/libxc/xg_dom_bzimageloader.c
rename to tools/libs/guest/xg_dom_bzimageloader.c
diff --git a/tools/libxc/xg_dom_compat_linux.c b/tools/libs/guest/xg_dom_compat_linux.c
similarity index 100%
rename from tools/libxc/xg_dom_compat_linux.c
rename to tools/libs/guest/xg_dom_compat_linux.c
diff --git a/tools/libxc/xg_dom_core.c b/tools/libs/guest/xg_dom_core.c
similarity index 100%
rename from tools/libxc/xg_dom_core.c
rename to tools/libs/guest/xg_dom_core.c
diff --git a/tools/libxc/xg_dom_decompress.h b/tools/libs/guest/xg_dom_decompress.h
similarity index 100%
rename from tools/libxc/xg_dom_decompress.h
rename to tools/libs/guest/xg_dom_decompress.h
diff --git a/tools/libxc/xg_dom_decompress_lz4.c b/tools/libs/guest/xg_dom_decompress_lz4.c
similarity index 100%
rename from tools/libxc/xg_dom_decompress_lz4.c
rename to tools/libs/guest/xg_dom_decompress_lz4.c
diff --git a/tools/libxc/xg_dom_decompress_unsafe.c b/tools/libs/guest/xg_dom_decompress_unsafe.c
similarity index 100%
rename from tools/libxc/xg_dom_decompress_unsafe.c
rename to tools/libs/guest/xg_dom_decompress_unsafe.c
diff --git a/tools/libxc/xg_dom_decompress_unsafe.h b/tools/libs/guest/xg_dom_decompress_unsafe.h
similarity index 100%
rename from tools/libxc/xg_dom_decompress_unsafe.h
rename to tools/libs/guest/xg_dom_decompress_unsafe.h
diff --git a/tools/libxc/xg_dom_decompress_unsafe_bzip2.c b/tools/libs/guest/xg_dom_decompress_unsafe_bzip2.c
similarity index 100%
rename from tools/libxc/xg_dom_decompress_unsafe_bzip2.c
rename to tools/libs/guest/xg_dom_decompress_unsafe_bzip2.c
diff --git a/tools/libxc/xg_dom_decompress_unsafe_lzma.c b/tools/libs/guest/xg_dom_decompress_unsafe_lzma.c
similarity index 100%
rename from tools/libxc/xg_dom_decompress_unsafe_lzma.c
rename to tools/libs/guest/xg_dom_decompress_unsafe_lzma.c
diff --git a/tools/libxc/xg_dom_decompress_unsafe_lzo1x.c b/tools/libs/guest/xg_dom_decompress_unsafe_lzo1x.c
similarity index 100%
rename from tools/libxc/xg_dom_decompress_unsafe_lzo1x.c
rename to tools/libs/guest/xg_dom_decompress_unsafe_lzo1x.c
diff --git a/tools/libxc/xg_dom_decompress_unsafe_xz.c b/tools/libs/guest/xg_dom_decompress_unsafe_xz.c
similarity index 100%
rename from tools/libxc/xg_dom_decompress_unsafe_xz.c
rename to tools/libs/guest/xg_dom_decompress_unsafe_xz.c
diff --git a/tools/libxc/xg_dom_elfloader.c b/tools/libs/guest/xg_dom_elfloader.c
similarity index 100%
rename from tools/libxc/xg_dom_elfloader.c
rename to tools/libs/guest/xg_dom_elfloader.c
diff --git a/tools/libxc/xg_dom_hvmloader.c b/tools/libs/guest/xg_dom_hvmloader.c
similarity index 100%
rename from tools/libxc/xg_dom_hvmloader.c
rename to tools/libs/guest/xg_dom_hvmloader.c
diff --git a/tools/libxc/xg_dom_x86.c b/tools/libs/guest/xg_dom_x86.c
similarity index 100%
rename from tools/libxc/xg_dom_x86.c
rename to tools/libs/guest/xg_dom_x86.c
diff --git a/tools/libxc/xg_domain.c b/tools/libs/guest/xg_domain.c
similarity index 100%
rename from tools/libxc/xg_domain.c
rename to tools/libs/guest/xg_domain.c
diff --git a/tools/libxc/xg_nomigrate.c b/tools/libs/guest/xg_nomigrate.c
similarity index 100%
rename from tools/libxc/xg_nomigrate.c
rename to tools/libs/guest/xg_nomigrate.c
diff --git a/tools/libxc/xg_offline_page.c b/tools/libs/guest/xg_offline_page.c
similarity index 100%
rename from tools/libxc/xg_offline_page.c
rename to tools/libs/guest/xg_offline_page.c
diff --git a/tools/libxc/xg_private.c b/tools/libs/guest/xg_private.c
similarity index 100%
rename from tools/libxc/xg_private.c
rename to tools/libs/guest/xg_private.c
diff --git a/tools/libxc/xg_private.h b/tools/libs/guest/xg_private.h
similarity index 100%
rename from tools/libxc/xg_private.h
rename to tools/libs/guest/xg_private.h
diff --git a/tools/libxc/xg_save_restore.h b/tools/libs/guest/xg_save_restore.h
similarity index 100%
rename from tools/libxc/xg_save_restore.h
rename to tools/libs/guest/xg_save_restore.h
diff --git a/tools/libxc/xg_sr_common.c b/tools/libs/guest/xg_sr_common.c
similarity index 100%
rename from tools/libxc/xg_sr_common.c
rename to tools/libs/guest/xg_sr_common.c
diff --git a/tools/libxc/xg_sr_common.h b/tools/libs/guest/xg_sr_common.h
similarity index 100%
rename from tools/libxc/xg_sr_common.h
rename to tools/libs/guest/xg_sr_common.h
diff --git a/tools/libxc/xg_sr_common_x86.c b/tools/libs/guest/xg_sr_common_x86.c
similarity index 100%
rename from tools/libxc/xg_sr_common_x86.c
rename to tools/libs/guest/xg_sr_common_x86.c
diff --git a/tools/libxc/xg_sr_common_x86.h b/tools/libs/guest/xg_sr_common_x86.h
similarity index 100%
rename from tools/libxc/xg_sr_common_x86.h
rename to tools/libs/guest/xg_sr_common_x86.h
diff --git a/tools/libxc/xg_sr_common_x86_pv.c b/tools/libs/guest/xg_sr_common_x86_pv.c
similarity index 100%
rename from tools/libxc/xg_sr_common_x86_pv.c
rename to tools/libs/guest/xg_sr_common_x86_pv.c
diff --git a/tools/libxc/xg_sr_common_x86_pv.h b/tools/libs/guest/xg_sr_common_x86_pv.h
similarity index 100%
rename from tools/libxc/xg_sr_common_x86_pv.h
rename to tools/libs/guest/xg_sr_common_x86_pv.h
diff --git a/tools/libxc/xg_sr_restore.c b/tools/libs/guest/xg_sr_restore.c
similarity index 100%
rename from tools/libxc/xg_sr_restore.c
rename to tools/libs/guest/xg_sr_restore.c
diff --git a/tools/libxc/xg_sr_restore_x86_hvm.c b/tools/libs/guest/xg_sr_restore_x86_hvm.c
similarity index 100%
rename from tools/libxc/xg_sr_restore_x86_hvm.c
rename to tools/libs/guest/xg_sr_restore_x86_hvm.c
diff --git a/tools/libxc/xg_sr_restore_x86_pv.c b/tools/libs/guest/xg_sr_restore_x86_pv.c
similarity index 100%
rename from tools/libxc/xg_sr_restore_x86_pv.c
rename to tools/libs/guest/xg_sr_restore_x86_pv.c
diff --git a/tools/libxc/xg_sr_save.c b/tools/libs/guest/xg_sr_save.c
similarity index 100%
rename from tools/libxc/xg_sr_save.c
rename to tools/libs/guest/xg_sr_save.c
diff --git a/tools/libxc/xg_sr_save_x86_hvm.c b/tools/libs/guest/xg_sr_save_x86_hvm.c
similarity index 100%
rename from tools/libxc/xg_sr_save_x86_hvm.c
rename to tools/libs/guest/xg_sr_save_x86_hvm.c
diff --git a/tools/libxc/xg_sr_save_x86_pv.c b/tools/libs/guest/xg_sr_save_x86_pv.c
similarity index 100%
rename from tools/libxc/xg_sr_save_x86_pv.c
rename to tools/libs/guest/xg_sr_save_x86_pv.c
diff --git a/tools/libxc/xg_sr_stream_format.h b/tools/libs/guest/xg_sr_stream_format.h
similarity index 100%
rename from tools/libxc/xg_sr_stream_format.h
rename to tools/libs/guest/xg_sr_stream_format.h
diff --git a/tools/libxc/xg_suspend.c b/tools/libs/guest/xg_suspend.c
similarity index 100%
rename from tools/libxc/xg_suspend.c
rename to tools/libs/guest/xg_suspend.c
diff --git a/tools/libs/uselibs.mk b/tools/libs/uselibs.mk
index 8e45e8d917..9619c576ba 100644
--- a/tools/libs/uselibs.mk
+++ b/tools/libs/uselibs.mk
@@ -18,3 +18,5 @@  LIBS_LIBS += hypfs
 USELIBS_hypfs := toollog toolcore call
 LIBS_LIBS += ctrl
 USELIBS_ctrl := toollog call evtchn gnttab foreignmemory devicemodel
+LIBS_LIBS += guest
+USELIBS_guest := evtchn ctrl
diff --git a/tools/libxc/Makefile b/tools/libxc/Makefile
deleted file mode 100644
index a52264c74c..0000000000
--- a/tools/libxc/Makefile
+++ /dev/null
@@ -1,207 +0,0 @@ 
-XEN_ROOT = $(CURDIR)/../..
-include $(XEN_ROOT)/tools/Rules.mk
-
-MAJOR    = 4.15
-MINOR    = 0
-
-ifeq ($(CONFIG_LIBXC_MINIOS),y)
-# Save/restore of a domain is currently incompatible with a stubdom environment
-override CONFIG_MIGRATE := n
-endif
-
-LINK_FILES := xc_private.h xc_core.h xc_core_x86.h xc_core_arm.h xc_bitops.h
-
-$(LINK_FILES):
-	ln -sf $(XEN_ROOT)/tools/libs/ctrl/$(notdir $@) $@
-
-GUEST_SRCS-y :=
-GUEST_SRCS-y += xg_private.c
-GUEST_SRCS-y += xg_domain.c
-GUEST_SRCS-y += xg_suspend.c
-ifeq ($(CONFIG_MIGRATE),y)
-GUEST_SRCS-y += xg_sr_common.c
-GUEST_SRCS-$(CONFIG_X86) += xg_sr_common_x86.c
-GUEST_SRCS-$(CONFIG_X86) += xg_sr_common_x86_pv.c
-GUEST_SRCS-$(CONFIG_X86) += xg_sr_restore_x86_pv.c
-GUEST_SRCS-$(CONFIG_X86) += xg_sr_restore_x86_hvm.c
-GUEST_SRCS-$(CONFIG_X86) += xg_sr_save_x86_pv.c
-GUEST_SRCS-$(CONFIG_X86) += xg_sr_save_x86_hvm.c
-GUEST_SRCS-y += xg_sr_restore.c
-GUEST_SRCS-y += xg_sr_save.c
-GUEST_SRCS-y += xg_offline_page.c
-else
-GUEST_SRCS-y += xg_nomigrate.c
-endif
-
-vpath %.c ../../xen/common/libelf
-CFLAGS += -I../../xen/common/libelf
-
-ELF_SRCS-y += libelf-tools.c libelf-loader.c
-ELF_SRCS-y += libelf-dominfo.c
-
-GUEST_SRCS-y += $(ELF_SRCS-y)
-
-$(patsubst %.c,%.o,$(ELF_SRCS-y)): CFLAGS += -Wno-pointer-sign
-$(patsubst %.c,%.opic,$(ELF_SRCS-y)): CFLAGS += -Wno-pointer-sign
-
-ifeq ($(CONFIG_X86),y) # Add libx86 to the build
-vpath %.c ../../xen/lib/x86
-
-GUEST_SRCS-y                 += cpuid.c msr.c
-endif
-
-# new domain builder
-GUEST_SRCS-y                 += xg_dom_core.c
-GUEST_SRCS-y                 += xg_dom_boot.c
-GUEST_SRCS-y                 += xg_dom_elfloader.c
-GUEST_SRCS-$(CONFIG_X86)     += xg_dom_bzimageloader.c
-GUEST_SRCS-$(CONFIG_X86)     += xg_dom_decompress_lz4.c
-GUEST_SRCS-$(CONFIG_X86)     += xg_dom_hvmloader.c
-GUEST_SRCS-$(CONFIG_ARM)     += xg_dom_armzimageloader.c
-GUEST_SRCS-y                 += xg_dom_binloader.c
-GUEST_SRCS-y                 += xg_dom_compat_linux.c
-
-GUEST_SRCS-$(CONFIG_X86)     += xg_dom_x86.c
-GUEST_SRCS-$(CONFIG_X86)     += xg_cpuid_x86.c
-GUEST_SRCS-$(CONFIG_ARM)     += xg_dom_arm.c
-
-ifeq ($(CONFIG_LIBXC_MINIOS),y)
-GUEST_SRCS-y                 += xg_dom_decompress_unsafe.c
-GUEST_SRCS-y                 += xg_dom_decompress_unsafe_bzip2.c
-GUEST_SRCS-y                 += xg_dom_decompress_unsafe_lzma.c
-GUEST_SRCS-y                 += xg_dom_decompress_unsafe_lzo1x.c
-GUEST_SRCS-y                 += xg_dom_decompress_unsafe_xz.c
-endif
-
--include $(XEN_TARGET_ARCH)/Makefile
-
-CFLAGS   += -Werror -Wmissing-prototypes
-CFLAGS   += -I. -I./include $(CFLAGS_xeninclude)
-CFLAGS   += -D__XEN_TOOLS__
-
-# Needed for posix_fadvise64() in xc_linux.c
-CFLAGS-$(CONFIG_Linux) += -D_GNU_SOURCE
-
-CFLAGS	+= $(PTHREAD_CFLAGS)
-CFLAGS	+= $(CFLAGS_libxentoollog)
-CFLAGS	+= $(CFLAGS_libxenevtchn)
-CFLAGS	+= $(CFLAGS_libxendevicemodel)
-
-GUEST_LIB_OBJS := $(patsubst %.c,%.o,$(GUEST_SRCS-y))
-GUEST_PIC_OBJS := $(patsubst %.c,%.opic,$(GUEST_SRCS-y))
-
-$(GUEST_LIB_OBJS) $(GUEST_PIC_OBJS): CFLAGS += -include $(XEN_ROOT)/tools/config.h
-
-# libxenguest includes xc_private.h, so needs this despite not using
-# this functionality directly.
-$(GUEST_LIB_OBJS) $(GUEST_PIC_OBJS): CFLAGS += $(CFLAGS_libxencall) $(CFLAGS_libxenforeignmemory)
-
-LIB += libxenguest.a
-ifneq ($(nosharedlibs),y)
-LIB += libxenguest.so libxenguest.so.$(MAJOR) libxenguest.so.$(MAJOR).$(MINOR)
-endif
-
-genpath-target = $(call buildmakevars2header,_paths.h)
-$(eval $(genpath-target))
-
-xc_private.h: _paths.h
-
-$(GUEST_LIB_OBJS) $(GUEST_PIC_OBJS): $(LINK_FILES)
-
-PKG_CONFIG := xenguest.pc
-PKG_CONFIG_VERSION := $(MAJOR).$(MINOR)
-
-ifneq ($(CONFIG_LIBXC_MINIOS),y)
-PKG_CONFIG_INST := $(PKG_CONFIG)
-$(PKG_CONFIG_INST): PKG_CONFIG_PREFIX = $(prefix)
-$(PKG_CONFIG_INST): PKG_CONFIG_INCDIR = $(includedir)
-$(PKG_CONFIG_INST): PKG_CONFIG_LIBDIR = $(libdir)
-endif
-
-PKG_CONFIG_LOCAL := $(foreach pc,$(PKG_CONFIG),$(PKG_CONFIG_DIR)/$(pc))
-
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_PREFIX = $(XEN_ROOT)
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(XEN_libxenctrl)/include
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_LIBDIR = $(CURDIR)
-$(PKG_CONFIG_LOCAL): PKG_CONFIG_CFLAGS_LOCAL = $(CFLAGS_xeninclude)
-
-.PHONY: all
-all: build
-
-.PHONY: build
-build:
-	$(MAKE) libs
-
-.PHONY: libs
-libs: $(LIB) $(PKG_CONFIG_INST) $(PKG_CONFIG_LOCAL)
-
-.PHONY: install
-install: build
-	$(INSTALL_DIR) $(DESTDIR)$(libdir)
-	$(INSTALL_DIR) $(DESTDIR)$(includedir)
-	$(INSTALL_SHLIB) libxenguest.so.$(MAJOR).$(MINOR) $(DESTDIR)$(libdir)
-	$(INSTALL_DATA) libxenguest.a $(DESTDIR)$(libdir)
-	$(SYMLINK_SHLIB) libxenguest.so.$(MAJOR).$(MINOR) $(DESTDIR)$(libdir)/libxenguest.so.$(MAJOR)
-	$(SYMLINK_SHLIB) libxenguest.so.$(MAJOR) $(DESTDIR)$(libdir)/libxenguest.so
-	$(INSTALL_DATA) include/xenguest.h $(DESTDIR)$(includedir)
-	$(INSTALL_DATA) xenguest.pc $(DESTDIR)$(PKG_INSTALLDIR)
-
-.PHONY: uninstall
-uninstall:
-	rm -f $(DESTDIR)$(PKG_INSTALLDIR)/xenguest.pc
-	rm -f $(DESTDIR)$(includedir)/xenguest.h
-	rm -f $(DESTDIR)$(libdir)/libxenguest.so
-	rm -f $(DESTDIR)$(libdir)/libxenguest.so.$(MAJOR)
-	rm -f $(DESTDIR)$(libdir)/libxenguest.so.$(MAJOR).$(MINOR)
-	rm -f $(DESTDIR)$(libdir)/libxenguest.a
-
-.PHONY: TAGS
-TAGS:
-	etags -t *.c *.h
-
-.PHONY: clean
-clean:
-	rm -rf *.rpm $(LIB) *~ $(DEPS_RM) \
-            _paths.h \
-	    $(LINK_FILES) \
-	    xenguest.pc \
-            $(GUEST_LIB_OBJS) $(GUEST_PIC_OBJS)
-
-.PHONY: distclean
-distclean: clean
-
-.PHONY: rpm
-rpm: build
-	rm -rf staging
-	mkdir staging
-	mkdir staging/i386
-	rpmbuild --define "staging$$PWD/staging" --define '_builddir.' \
-		--define "_rpmdir$$PWD/staging" -bb rpm.spec
-	mv staging/i386/*.rpm .
-	rm -rf staging
-
-# libxenguest
-
-libxenguest.a: $(GUEST_LIB_OBJS)
-	$(AR) rc $@ $^
-
-libxenguest.so: libxenguest.so.$(MAJOR)
-	$(SYMLINK_SHLIB) $< $@
-libxenguest.so.$(MAJOR): libxenguest.so.$(MAJOR).$(MINOR)
-	$(SYMLINK_SHLIB) $< $@
-
-ifeq ($(CONFIG_MiniOS),y)
-zlib-options =
-else
-zlib-options = $(ZLIB)
-endif
-
-xc_dom_bzimageloader.o: CFLAGS += $(filter -D%,$(zlib-options))
-xc_dom_bzimageloader.opic: CFLAGS += $(filter -D%,$(zlib-options))
-
-libxenguest.so.$(MAJOR).$(MINOR): COMPRESSION_LIBS = $(filter -l%,$(zlib-options))
-libxenguest.so.$(MAJOR).$(MINOR): $(GUEST_PIC_OBJS)
-	$(CC) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenguest.so.$(MAJOR) $(SHLIB_LDFLAGS) -o $@ $(GUEST_PIC_OBJS) $(COMPRESSION_LIBS) -lz $(LDLIBS_libxenevtchn) $(LDLIBS_libxenctrl) $(PTHREAD_LIBS) $(APPEND_LDFLAGS)
-
--include $(DEPS_INCLUDE)
-