################################################################################ # # CRIU # ################################################################################ CRIU_VERSION = 3.19 CRIU_SITE = $(call github,checkpoint-restore,criu,v$(CRIU_VERSION)) CRIU_LICENSE = GPL-2.0, LGPL-2.1 (for lib/), MIT (for images/) CRIU_LICENSE_FILES = COPYING images/LICENSE CRIU_DEPENDENCIES =\ host-pkgconf \ host-protobuf-c \ host-python3 \ host-python-pip \ libaio \ libbsd \ libcap \ libnet \ libnl \ protobuf \ protobuf-c \ python3 CRIU_MAKE_ENV =\ $(TARGET_MAKE_ENV) \ $(TARGET_CONFIGURE_OPTS) \ CROSS_COMPILE=$(TARGET_CROSS) \ WERROR=0 # Remap to match the used in criu. ifeq ($(BR2_NORMALIZED_ARCH),"x86_64") CRIU_MAKE_ENV += ARCH=x86 else ifeq ($(BR2_NORMALIZED_ARCH),"powerpc") CRIU_MAKE_ENV += ARCH=ppc64 else ifeq ($(BR2_NORMALIZED_ARCH),"arm64") CRIU_MAKE_ENV += ARCH=aarch64 else CRIU_MAKE_ENV += ARCH=$(BR2_NORMALIZED_ARCH) endif ifeq ($(BR2_ARM_CPU_ARMV6),y) CRIU_MAKE_ENV += SUBARCH=armv6 else ifeq ($(BR2_ARM_CPU_ARMV7A),y) CRIU_MAKE_ENV += SUBARCH=armv7 else ifeq ($(BR2_ARM_CPU_ARMV7M),y) CRIU_MAKE_ENV += SUBARCH=armv7 else ifeq ($(BR2_ARM_CPU_ARMV8A),y) CRIU_MAKE_ENV += SUBARCH=armv8 endif # Criu needs Kernel Checkpoint/restore support which is not enabled # by default. define CRIU_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_CHECKPOINT_RESTORE) endef define CRIU_BUILD_CMDS rm -rf $(@D)/images/google/protobuf/descriptor.proto cp -a $(STAGING_DIR)/usr/include/google/protobuf/descriptor.proto \ $(@D)/images/google/protobuf/descriptor.proto $(CRIU_MAKE_ENV) $(MAKE) -C $(@D) \ PREFIX=/usr endef define CRIU_INSTALL_TARGET_CMDS $(CRIU_MAKE_ENV) $(MAKE) -C $(@D) \ PREFIX=/usr \ DESTDIR=$(TARGET_DIR) \ install-criu \ install-lib \ install-compel endef $(eval $(generic-package))