1# criu only builds on certain architectures
2config BR2_PACKAGE_CRIU_ARCH_SUPPORTS
3	bool
4	default y if BR2_ARM_CPU_ARMV6
5	default y if BR2_ARM_CPU_ARMV7A
6	default y if BR2_ARM_CPU_ARMV7M
7	default y if BR2_ARM_CPU_ARMV8A && !BR2_aarch64_be
8	default y if BR2_aarch64
9	default y if BR2_x86_64
10	default y if BR2_powerpc64le # Only support powerpc64 with LE
11	# CRIU has "some" support for s390 but it is not included due to
12	# BE/LE endian issues.
13	depends on BR2_USE_MMU # libcap
14	depends on BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS # protobuf-c
15	depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS
16	depends on BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS
17
18config BR2_PACKAGE_CRIU
19	bool "criu"
20	depends on BR2_PACKAGE_CRIU_ARCH_SUPPORTS
21	depends on BR2_HOST_GCC_AT_LEAST_7 # protobuf-c
22	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8 # -march=armv7-a+fp
23	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_18 # rseq.h
24	depends on !BR2_TOOLCHAIN_USES_UCLIBC # no aio.h
25	depends on !BR2_STATIC_LIBS # protobuf, libbsd
26	depends on BR2_INSTALL_LIBSTDCPP # protobuf
27	depends on BR2_TOOLCHAIN_HAS_THREADS # protobuf, libnl
28	depends on BR2_USE_WCHAR # libbsd
29	select BR2_PACKAGE_HOST_PYTHON3
30	select BR2_PACKAGE_HOST_PYTHON3_SSL
31	select BR2_PACKAGE_PROTOBUF
32	select BR2_PACKAGE_PROTOBUF_C
33	select BR2_PACKAGE_LIBAIO
34	select BR2_PACKAGE_LIBBSD
35	select BR2_PACKAGE_LIBCAP
36	select BR2_PACKAGE_LIBNET
37	select BR2_PACKAGE_LIBNL
38	select BR2_PACKAGE_PYTHON3
39	help
40	  Checkpoint/Restore In Userspace (CRIU), is a software
41	  tool for the Linux operating system to make it possible
42	  to freeze a running application and checkpoint it to
43	  persistent storage as a collection of files.
44
45	  https://criu.org/Main_Page
46
47comment "criu needs a glibc or musl toolchain w/ threads, host gcc >= 7, gcc >= 8, headers >= 4.18, C++, dynamic library, wchar"
48	depends on BR2_PACKAGE_CRIU_ARCH_SUPPORTS
49	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_8 || !BR2_TOOLCHAIN_HAS_THREADS \
50		|| !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_18 \
51		|| BR2_TOOLCHAIN_USES_UCLIBC || !BR2_INSTALL_LIBSTDCPP \
52		|| BR2_STATIC_LIBS || !BR2_USE_WCHAR \
53		|| BR2_HOST_GCC_AT_LEAST_7
54