2023-11-01 16:22:05 +01:00
|
|
|
################################################################################
|
|
|
|
#
|
|
|
|
# CRIU
|
|
|
|
#
|
|
|
|
################################################################################
|
|
|
|
|
2023-12-18 08:25:06 +01:00
|
|
|
CRIU_VERSION = 3.19
|
2023-11-01 16:22:05 +01:00
|
|
|
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))
|