https://github.com/checkpoint-restore/criu/pull/1517 From d72536d9a821f9ff64f5dd62c9f8a282e3e5ec85 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Wed, 16 Jun 2021 15:43:04 -0400 Subject: [PATCH] build: respect $PKG_CONFIG settings The build needs to respect $PKG_CONFIG env var like other standard build systems and the the upstream pkg-config project itself. This allows the package builder to point it to the right tool when doing a cross-compile build. Otherwise the host pkg-config tool is used which won't have access to the packages in the cross sysroot. Signed-off-by: Mike Frysinger --- Makefile.config | 2 +- criu/Makefile | 2 +- scripts/nmk/scripts/tools.mk | 1 + scripts/nmk/scripts/utils.mk | 2 +- test/zdtm/Makefile.inc | 8 +++++--- test/zdtm/lib/Makefile | 2 +- test/zdtm/static/Makefile | 2 +- 7 files changed, 11 insertions(+), 8 deletions(-) diff --git a/Makefile.config b/Makefile.config index 3d99e680be7f..6e3e1b062256 100644 --- a/Makefile.config +++ b/Makefile.config @@ -30,7 +30,7 @@ else endif 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) LIBS_FEATURES += $(LIB_NFTABLES) FEATURE_DEFINES += -DCONFIG_HAS_NFTABLES_LIB_API_0 diff --git a/criu/Makefile b/criu/Makefile index ceb49ce09925..11d454c81026 100644 --- a/criu/Makefile +++ b/criu/Makefile @@ -27,7 +27,7 @@ CFLAGS += -iquote include CFLAGS += -iquote images CFLAGS += -iquote $(ARCH_DIR)/include CFLAGS += -iquote . -CFLAGS += $(shell pkg-config --cflags libnl-3.0) +CFLAGS += $(shell $(PKG_CONFIG) --cflags libnl-3.0) CFLAGS += $(CONFIG-DEFINES) ifeq ($(GMON),1) diff --git a/scripts/nmk/scripts/tools.mk b/scripts/nmk/scripts/tools.mk index c5794401c734..1681d4e9092b 100644 --- a/scripts/nmk/scripts/tools.mk +++ b/scripts/nmk/scripts/tools.mk @@ -17,6 +17,7 @@ AR := $(CROSS_COMPILE)ar STRIP := $(CROSS_COMPILE)strip OBJCOPY := $(CROSS_COMPILE)objcopy OBJDUMP := $(CROSS_COMPILE)objdump +PKG_CONFIG ?= pkg-config NM := $(CROSS_COMPILE)nm MAKE := make MKDIR := mkdir -p diff --git a/scripts/nmk/scripts/utils.mk b/scripts/nmk/scripts/utils.mk index b9790615ca7f..f93fdf911cef 100644 --- a/scripts/nmk/scripts/utils.mk +++ b/scripts/nmk/scripts/utils.mk @@ -16,7 +16,7 @@ try-asm = $(call try-compile,assembler-with-cpp,$(1),$(2),$(3)) # pkg-config-check # Usage: ifeq ($(call pkg-config-check, library),y) -pkg-config-check = $(shell sh -c 'pkg-config $(1) && echo y') +pkg-config-check = $(shell sh -c '$(PKG_CONFIG) $(1) && echo y') # # Remove duplicates. diff --git a/test/zdtm/Makefile.inc b/test/zdtm/Makefile.inc index 43763321f956..e4af9c51e9e4 100644 --- a/test/zdtm/Makefile.inc +++ b/test/zdtm/Makefile.inc @@ -37,6 +37,7 @@ HOSTCC ?= gcc ifeq ($(origin CC), default) CC := $(CROSS_COMPILE)$(HOSTCC) endif +PKG_CONFIG ?= pkg-config CFLAGS += -g -O2 -Wall -Werror -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 CFLAGS += -Wdeclaration-after-statement -Wstrict-prototypes CFLAGS += $(USERCFLAGS) @@ -54,8 +55,9 @@ endif RM := rm -f --one-file-system ifeq ($(COMPAT_TEST),y) +$(error bad juju) # Firstly look for 32-bit libs and then in standard path. - PKG_CONFIG_PATH := $(shell pkg-config --variable pc_path pkg-config) + PKG_CONFIG_PATH := $(shell $(PKG_CONFIG) --variable pc_path pkg-config) PKG_CONFIG_PATH := /usr/lib32/pkgconfig:$(PKG_CONFIG_PATH) ifeq ($(ARCH),x86) export CFLAGS += -m32 @@ -66,11 +68,11 @@ endif endif define pkg-libs - $(shell PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" pkg-config --libs $(1)) + $(shell PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" $(PKG_CONFIG) --libs $(1)) endef define pkg-cflags - $(shell PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" pkg-config --cflags $(1)) + $(shell PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" $(PKG_CONFIG) --cflags $(1)) endef %.d: %.c diff --git a/test/zdtm/lib/Makefile b/test/zdtm/lib/Makefile index 05fe64e91703..5ecf8bccf27b 100644 --- a/test/zdtm/lib/Makefile +++ b/test/zdtm/lib/Makefile @@ -6,7 +6,7 @@ LIB := libzdtmtst.a LIBSRC := datagen.c msg.c parseargs.c test.c streamutil.c lock.c ns.c tcp.c unix.c fs.c sysctl.c -pkg-config-check = $(shell sh -c 'pkg-config $(1) && echo y') +pkg-config-check = $(shell sh -c '$(PKG_CONFIG) $(1) && echo y') ifeq ($(call pkg-config-check,libbpf),y) LIBSRC += bpfmap_zdtm.c endif diff --git a/test/zdtm/static/Makefile b/test/zdtm/static/Makefile index e60fe6dc2d66..c5f3c98be3ed 100644 --- a/test/zdtm/static/Makefile +++ b/test/zdtm/static/Makefile @@ -241,7 +241,7 @@ TST_NOFILE := \ sigtrap01 \ # jobctl00 \ -pkg-config-check = $(shell sh -c 'pkg-config $(1) && echo y') +pkg-config-check = $(shell sh -c '$(PKG_CONFIG) $(1) && echo y') ifeq ($(call pkg-config-check,libbpf),y) TST_NOFILE += \ bpf_hash \ -- 2.31.1