################################################################################ # # kvmtool # ################################################################################ KVMTOOL_VERSION = bed2bd9e1fbef5819090feeada7b86eed97ca5e2 KVMTOOL_SITE = $(BR2_KERNEL_MIRROR)/scm/linux/kernel/git/will/kvmtool.git KVMTOOL_SITE_METHOD = git KVMTOOL_DEPENDENCIES = \ $(if $(BR2_PACKAGE_BINUTILS),binutils) \ $(if $(BR2_PACKAGE_DTC),dtc) \ $(if $(BR2_PACKAGE_LIBAIO),libaio) \ $(if $(BR2_PACKAGE_LIBGTK3),libgtk3) \ $(if $(BR2_PACKAGE_LIBVNCSERVER),libvncserver) \ $(if $(BR2_PACKAGE_SDL),sdl) \ $(if $(BR2_PACKAGE_ZLIB),zlib) KVMTOOL_LICENSE = GPLv2 KVMTOOL_LICENSE_FILES = COPYING # This is required to convert a static binary (init helper) back into # object-file format, and in multilib toolchains like CS 2012.09 for x86 # the default is i386, hence when building for x86_64 things break since # LD doesn't autodetect the input file format. # GCC-as-linker can't accomplish this feat easily either since it's mixing # static content (guest_init.o) with dynamic one (lkvm) making # a relocatable output file. # The purpose of this trick is to embed the init helper into the main # binary to help users in guest system startup, which would otherwise # require more complex guest images. # This needs revisiting if/when X32 ABI support is added. # # If more packages need this (unlikely) an ld wrapper might be a better # solution, using gcc -dumpspecs information. KVMTOOL_EXTRA_LDFLAGS = \ $(if $(BR2_x86_64),-m elf_x86_64) # Disable -Werror, otherwise musl is not happy KVMTOOL_MAKE_OPTS = \ CROSS_COMPILE="$(TARGET_CROSS)" \ LDFLAGS="$(TARGET_LDFLAGS) $(KVMTOOL_EXTRA_LDFLAGS)" \ WERROR=0 define KVMTOOL_BUILD_CMDS $(TARGET_MAKE_ENV) ARCH=$(KERNEL_ARCH) $(MAKE) -C $(@D) $(KVMTOOL_MAKE_OPTS) endef define KVMTOOL_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) ARCH=$(KERNEL_ARCH) $(MAKE) -C $(@D) \ $(KVMTOOL_MAKE_OPTS) install DESTDIR=$(TARGET_DIR) prefix=/usr endef $(eval $(generic-package))