tools/libxc: move libxenguest to tools/libs/guest

tools/libxc now contains libxenguest only. Move it to tools/libs/guest.

When generating the pkg-config file for libxenguest a filter is now
required for replacing "xenctrl" by "xencontrol" in the
"Requires.private:" entry. Add this filter to tools/libs/libs.mk.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org> (stubdom parts)
This commit is contained in:
Juergen Gross authored and Wei Liu committed 2020-09-09 10:57:25 +00:00
1 parent af6c78d9dc
commit e3dd624e48
52 files changed
+148 -261

No files matched your search

+8 -8
View File
@@ -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
@@ -370,7 +371,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
+11 -23
View File
@@ -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
@@ -362,13 +364,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)
@@ -391,16 +390,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
#######
@@ -409,7 +398,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 ; \
@@ -503,15 +492,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
@@ -523,11 +512,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
#########
@@ -621,7 +610,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
@@ -632,7 +620,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)
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -2
View File
@@ -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
+1 -6
View File
@@ -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)
+1
View File
@@ -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)
File renamed without changes.
+121
View File
@@ -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
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+1 -1
View File
@@ -34,7 +34,7 @@ PKG_CONFIG_DESC ?= The $(PKG_CONFIG_NAME) library for Xen hypervisor
PKG_CONFIG_VERSION := $(MAJOR).$(MINOR)
PKG_CONFIG_USELIBS := $(SHLIB_libxen$(LIBNAME))
PKG_CONFIG_LIB := xen$(LIBNAME)
PKG_CONFIG_REQPRIV := $(subst $(space),$(comma),$(strip $(foreach lib,$(USELIBS_$(LIBNAME)),xen$(lib))))
PKG_CONFIG_REQPRIV := $(subst $(space),$(comma),$(strip $(foreach lib,$(patsubst ctrl,control,$(USELIBS_$(LIBNAME))),xen$(lib))))
ifneq ($(CONFIG_LIBXC_MINIOS),y)
PKG_CONFIG_INST := $(PKG_CONFIG)
+2
View File
@@ -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
-219
View File
@@ -1,219 +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)
xenguest.pc: PKG_CONFIG_NAME = Xenguest
xenguest.pc: PKG_CONFIG_DESC = The Xenguest library for Xen hypervisor
xenguest.pc: PKG_CONFIG_USELIBS = $(SHLIB_libxenguest)
xenguest.pc: PKG_CONFIG_LIB = xenguest
xenguest.pc: PKG_CONFIG_REQPRIV = xentoollog,xencall,xenforeignmemory,xenevtchn
$(PKG_CONFIG_DIR)/xenguest.pc: PKG_CONFIG_NAME = Xenguest
$(PKG_CONFIG_DIR)/xenguest.pc: PKG_CONFIG_DESC = The Xenguest library for Xen hypervisor
$(PKG_CONFIG_DIR)/xenguest.pc: PKG_CONFIG_USELIBS = $(SHLIB_libxenguest)
$(PKG_CONFIG_DIR)/xenguest.pc: PKG_CONFIG_LIB = xenguest
$(PKG_CONFIG_DIR)/xenguest.pc: PKG_CONFIG_REQPRIV = xentoollog,xencall,xenforeignmemory,xenevtchn,xencontrol
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)
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.