mirror of
https://github.com/checkpoint-restore/criu.git
synced 2026-07-17 16:47:50 +00:00
make: Add optional LZ4 support
Memory page compression requires liblz4, but making it mandatory would prevent CRIU from building on systems that do not provide it. Detect liblz4 with pkg-config and enable CONFIG_LZ4 only when it is available. Add NO_LZ4=1 as an explicit opt-out and register the development package in the supported distribution dependency lists. Install liblz4 for the per-commit build, then run a separate NO_LZ4 build and unit test to keep the optional configuration usable. Assisted-by: Codex:GPT-5 Signed-off-by: Radostin Stoyanov <rstoyanov@fedoraproject.org>
This commit is contained in:
parent
8851c1a26d
commit
1544013406
8 changed files with 20 additions and 1 deletions
7
.github/workflows/check-commits.yml
vendored
7
.github/workflows/check-commits.yml
vendored
|
|
@ -19,7 +19,7 @@ jobs:
|
||||||
# Checkout pull request HEAD commit instead of merge commit
|
# Checkout pull request HEAD commit instead of merge commit
|
||||||
ref: ${{ github.event.pull_request.head.sha }}
|
ref: ${{ github.event.pull_request.head.sha }}
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: sudo contrib/apt-install libprotobuf-dev libprotobuf-c-dev protobuf-c-compiler protobuf-compiler python3-protobuf libnl-3-dev libnet-dev libcap-dev uuid-dev
|
run: sudo contrib/apt-install libprotobuf-dev libprotobuf-c-dev protobuf-c-compiler protobuf-compiler python3-protobuf libnl-3-dev libnet-dev libcap-dev uuid-dev liblz4-dev
|
||||||
- name: Configure git user details
|
- name: Configure git user details
|
||||||
run: |
|
run: |
|
||||||
git config --global user.email "checkpoint-restore@users.noreply.github.com"
|
git config --global user.email "checkpoint-restore@users.noreply.github.com"
|
||||||
|
|
@ -28,3 +28,8 @@ jobs:
|
||||||
run: git fetch origin ${{ github.base_ref }}:${{ github.base_ref }}
|
run: git fetch origin ${{ github.base_ref }}:${{ github.base_ref }}
|
||||||
- name: Build each commit
|
- name: Build each commit
|
||||||
run: git rebase ${{ github.base_ref }} -x "make -C scripts/ci check-commit"
|
run: git rebase ${{ github.base_ref }} -x "make -C scripts/ci check-commit"
|
||||||
|
- name: Build without LZ4
|
||||||
|
run: |
|
||||||
|
make mrproper
|
||||||
|
make -j "$(nproc)" NO_LZ4=1
|
||||||
|
make unittest NO_LZ4=1
|
||||||
|
|
|
||||||
1
Makefile
1
Makefile
|
|
@ -237,6 +237,7 @@ else
|
||||||
export CONFIG_COMPAT := y
|
export CONFIG_COMPAT := y
|
||||||
export CONFIG_GNUTLS := y
|
export CONFIG_GNUTLS := y
|
||||||
export CONFIG_HAS_LIBBPF := y
|
export CONFIG_HAS_LIBBPF := y
|
||||||
|
export CONFIG_LZ4 := y
|
||||||
endif
|
endif
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,14 @@ else
|
||||||
$(info $S Install gnutls-devel (RPM) or gnutls-dev (DEB) to fix.)
|
$(info $S Install gnutls-devel (RPM) or gnutls-dev (DEB) to fix.)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(NO_LZ4)x$(call pkg-config-check,liblz4),xy)
|
||||||
|
LIBS_FEATURES += -llz4
|
||||||
|
export CONFIG_LZ4 := y
|
||||||
|
FEATURE_DEFINES += -DCONFIG_LZ4
|
||||||
|
else
|
||||||
|
$(info Note: Building without LZ4 compression support.)
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(call pkg-config-check,libnftables),y)
|
ifeq ($(call pkg-config-check,libnftables),y)
|
||||||
LIB_NFTABLES := $(shell $(PKG_CONFIG) --libs libnftables)
|
LIB_NFTABLES := $(shell $(PKG_CONFIG) --libs libnftables)
|
||||||
ifeq ($(call try-cc,$(FEATURE_TEST_NFTABLES_LIB_API_0),$(LIB_NFTABLES)),true)
|
ifeq ($(call try-cc,$(FEATURE_TEST_NFTABLES_LIB_API_0),$(LIB_NFTABLES)),true)
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ apk add --no-cache \
|
||||||
libcap-dev \
|
libcap-dev \
|
||||||
libcap-utils \
|
libcap-utils \
|
||||||
libdrm-dev \
|
libdrm-dev \
|
||||||
|
lz4-dev \
|
||||||
libnet-dev \
|
libnet-dev \
|
||||||
libnl3-dev \
|
libnl3-dev \
|
||||||
libtraceevent-dev \
|
libtraceevent-dev \
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ fi
|
||||||
libelf-dev:"${DEBIAN_ARCH}" \
|
libelf-dev:"${DEBIAN_ARCH}" \
|
||||||
libexpat1-dev:"${DEBIAN_ARCH}" \
|
libexpat1-dev:"${DEBIAN_ARCH}" \
|
||||||
libgnutls28-dev:"${DEBIAN_ARCH}" \
|
libgnutls28-dev:"${DEBIAN_ARCH}" \
|
||||||
|
liblz4-dev:"${DEBIAN_ARCH}" \
|
||||||
libnet-dev:"${DEBIAN_ARCH}" \
|
libnet-dev:"${DEBIAN_ARCH}" \
|
||||||
libnftables-dev:"${DEBIAN_ARCH}" \
|
libnftables-dev:"${DEBIAN_ARCH}" \
|
||||||
libnl-3-dev:"${DEBIAN_ARCH}" \
|
libnl-3-dev:"${DEBIAN_ARCH}" \
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ fi
|
||||||
libelf-dev \
|
libelf-dev \
|
||||||
libgnutls28-dev \
|
libgnutls28-dev \
|
||||||
libgnutls30 \
|
libgnutls30 \
|
||||||
|
liblz4-dev \
|
||||||
libnet-dev \
|
libnet-dev \
|
||||||
libnl-3-dev \
|
libnl-3-dev \
|
||||||
libnl-route-3-dev \
|
libnl-route-3-dev \
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ dnf install -y \
|
||||||
libbsd-devel \
|
libbsd-devel \
|
||||||
libcap-devel \
|
libcap-devel \
|
||||||
libdrm-devel \
|
libdrm-devel \
|
||||||
|
lz4-devel \
|
||||||
libnet-devel \
|
libnet-devel \
|
||||||
libnl3-devel \
|
libnl3-devel \
|
||||||
libselinux-devel \
|
libselinux-devel \
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ pacman -Syu --noconfirm \
|
||||||
libbsd \
|
libbsd \
|
||||||
libcap \
|
libcap \
|
||||||
libdrm \
|
libdrm \
|
||||||
|
lz4 \
|
||||||
libelf \
|
libelf \
|
||||||
libnet \
|
libnet \
|
||||||
libnl \
|
libnl \
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue