From c160a3ca4c9677f67f85acb33634421673836c93 Mon Sep 17 00:00:00 2001 From: Matt Weber Date: Wed, 12 Apr 2017 23:16:12 -0500 Subject: [PATCH] libselinux: adjust build of Python bindings In order to work-around dependency issues, the Python bindings should be built though a separate make invocation from the rest of the library. This avoids build issues like this: selinux_restorecon.lo: file not recognized: File truncated [...] collect2: error: ld returned 1 exit status make[2]: *** [libselinux.so.1] Error 1 Fixes: http://autobuild.buildroot.net/results/967b74d0ae5b4b83ea2729217b005a3e1e4514d0/ Signed-off-by: Matthew Weber [Thomas: improve commit log.] Signed-off-by: Thomas Petazzoni --- package/libselinux/libselinux.mk | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/package/libselinux/libselinux.mk b/package/libselinux/libselinux.mk index ca7836f162..b6c5809134 100644 --- a/package/libselinux/libselinux.mk +++ b/package/libselinux/libselinux.mk @@ -20,7 +20,6 @@ LIBSELINUX_MAKE_OPTS = \ LDFLAGS="$(TARGET_LDFLAGS) -lpcre -lpthread" \ ARCH=$(KERNEL_ARCH) -LIBSELINUX_MAKE_TARGETS = all LIBSELINUX_MAKE_INSTALL_TARGETS = install ifeq ($(BR2_PACKAGE_PYTHON)$(BR2_PACKAGE_PYTHON3),y) @@ -39,16 +38,23 @@ LIBSELINUX_MAKE_OPTS += \ PYSITEDIR=$(TARGET_DIR)/usr/lib/$(LIBSELINUX_PYLIBVER)/site-packages \ SWIG_LIB="$(HOST_DIR)/usr/share/swig/$(SWIG_VERSION)/" -LIBSELINUX_MAKE_TARGETS += swigify pywrap LIBSELINUX_MAKE_INSTALL_TARGETS += install-pywrap + +# dependencies are broken and result in file truncation errors at link +# time if the Python bindings are built through the same make +# invocation as the rest of the library. +define LIBSELINUX_BUILD_PYTHON_BINDINGS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ + $(LIBSELINUX_MAKE_OPTS) DESTDIR=$(STAGING_DIR) swigify pywrap +endef endif # python || python3 define LIBSELINUX_BUILD_CMDS # DESTDIR is needed during the compile to compute library and # header paths. $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ - $(LIBSELINUX_MAKE_OPTS) DESTDIR=$(STAGING_DIR) \ - $(LIBSELINUX_MAKE_TARGETS) + $(LIBSELINUX_MAKE_OPTS) DESTDIR=$(STAGING_DIR) all + $(LIBSELINUX_BUILD_PYTHON_BINDINGS) endef define LIBSELINUX_INSTALL_STAGING_CMDS -- 2.30.2