| From ac7cce039825ff779795b5c2ae0ecf00ba43a401 Mon Sep 17 00:00:00 2001 |
| From: "Robin H. Johnson" <robbat2@gentoo.org> |
| Date: Sun, 9 May 2021 11:00:22 +0200 |
| Subject: [PATCH] Use pkgconfig to detect static libs |
| |
| --- a/configure.ac |
| +++ b/configure.ac |
| @@ -1139,6 +1139,7 @@ |
| AS_IF([test "$HAVE_BLKID" = "yes"], [ |
| BLKID_WIPING="yes" |
| BLKID_PC="blkid" |
| + BLKID_STATIC_LIBS=`$PKG_CONFIG --static --libs $BLKID_PC` |
| DEFAULT_USE_BLKID_WIPING=1 |
| AC_DEFINE([BLKID_WIPING_SUPPORT], 1, [Define to 1 to use libblkid detection of signatures when wiping.]) |
| ], [ |
| @@ -1165,6 +1166,7 @@ |
| |
| AS_IF([test "$UDEV_SYNC" = "yes"], [ |
| PKG_CHECK_MODULES(UDEV, libudev >= 143, [UDEV_PC="libudev"]) |
| + UDEV_STATIC_LIBS=`$PKG_CONFIG --static --libs libudev` |
| AC_DEFINE([UDEV_SYNC_SUPPORT], 1, [Define to 1 to enable synchronisation with udev processing.]) |
| |
| AC_CHECK_LIB(udev, udev_device_get_is_initialized, AC_DEFINE([HAVE_LIBUDEV_UDEV_DEVICE_GET_IS_INITIALIZED], 1, |
| @@ -1382,19 +1384,28 @@ |
| AS_IF([test "$SELINUX" = "yes"], [ |
| AC_CHECK_LIB([sepol], [sepol_check_context], [ |
| AC_DEFINE([HAVE_SEPOL], 1, [Define to 1 if sepol_check_context is available.]) |
| - SELINUX_LIBS="-lsepol"]) |
| + SEPOL_LIBS="-lsepol"]) |
| + |
| + PKG_CHECK_MODULES(SELINUX, libselinux, [ |
| + SELINUX_PC="libselinux" |
| + SELINUX_STATIC_LIBS=`$PKG_CONFIG --static --libs libselinux` |
| + SELINUX_LIBS="$SELINUX_LIBS $SEPOL_LIBS" |
| + AC_DEFINE([HAVE_SELINUX], 1, [Define to 1 to include support for selinux.]) |
| + ], [ |
| + dnl -- old non-pkgconfig method, is buggy with static builds |
| |
| AC_CHECK_LIB([selinux], [is_selinux_enabled], [ |
| AC_CHECK_HEADERS([selinux/selinux.h],, hard_bailout) |
| AC_CHECK_HEADERS([selinux/label.h]) |
| AC_DEFINE([HAVE_SELINUX], 1, [Define to 1 to include support for selinux.]) |
| - SELINUX_LIBS="-lselinux $SELINUX_LIBS" |
| + SELINUX_LIBS="-lselinux $SEPOL_LIBS" |
| SELINUX_PC="libselinux" |
| HAVE_SELINUX=yes ], [ |
| AC_MSG_WARN(Disabling selinux) |
| SELINUX_LIBS= |
| SELINUX_PC= |
| HAVE_SELINUX=no ]) |
| + ]) |
| ]) |
| |
| ################################################################################ |
| @@ -1790,6 +1801,7 @@ |
| ################################################################################ |
| AC_SUBST(AWK) |
| AC_SUBST(BLKID_PC) |
| +AC_SUBST(BLKID_STATIC_LIBS) |
| AC_SUBST(BUILD_CMIRRORD) |
| AC_SUBST(BUILD_DMEVENTD) |
| AC_SUBST(BUILD_LVMDBUSD) |
| @@ -1872,6 +1884,7 @@ |
| AC_SUBST(SBINDIR) |
| AC_SUBST(SELINUX_LIBS) |
| AC_SUBST(SELINUX_PC) |
| +AC_SUBST(SELINUX_STATIC_LIBS) |
| AC_SUBST(SYSCONFDIR) |
| AC_SUBST(SYSTEMD_RUN_CMD) |
| AC_SUBST(SNAPSHOTS) |
| @@ -1890,6 +1903,7 @@ |
| AC_SUBST(CACHE_RESTORE_CMD) |
| AC_SUBST(UDEV_PC) |
| AC_SUBST(UDEV_RULES) |
| +AC_SUBST(UDEV_STATIC_LIBS) |
| AC_SUBST(UDEV_SYNC) |
| AC_SUBST(UDEV_RULE_EXEC_DETECTION) |
| AC_SUBST(UDEV_HAS_BUILTIN_BLKID) |
| --- a/libdm/make.tmpl.in |
| +++ b/libdm/make.tmpl.in |
| @@ -54,7 +54,7 @@ |
| |
| LIBS += @LIBS@ $(PTHREAD_LIBS) $(SELINUX_LIBS) $(UDEV_LIBS) $(RT_LIBS) $(M_LIBS) |
| # Extra libraries always linked with static binaries |
| -STATIC_LIBS = $(PTHREAD_LIBS) |
| +STATIC_LIBS = $(PTHREAD_LIBS) $(SELINUX_STATIC_LIBS) $(UDEV_STATIC_LIBS) |
| DEFS += @DEFS@ |
| # FIXME set this only where it's needed, not globally? |
| CFLAGS ?= @COPTIMISE_FLAG@ @CFLAGS@ |
| @@ -71,8 +71,10 @@ |
| READLINE_LIBS = @READLINE_LIBS@ |
| EDITLINE_LIBS = @EDITLINE_LIBS@ |
| SELINUX_LIBS = @SELINUX_LIBS@ |
| +SELINUX_STATIC_LIBS = @SELINUX_STATIC_LIBS@ |
| UDEV_CFLAGS = @UDEV_CFLAGS@ |
| UDEV_LIBS = @UDEV_LIBS@ |
| +UDEV_STATIC_LIBS = @UDEV_STATIC_LIBS@ |
| BLKID_CFLAGS = @BLKID_CFLAGS@ |
| BLKID_LIBS = @BLKID_LIBS@ |
| LIBSYSTEMD_LIBS = @LIBSYSTEMD_LIBS@ |
| --- a/make.tmpl.in |
| +++ b/make.tmpl.in |
| @@ -59,7 +59,7 @@ |
| LIBS += @LIBS@ $(SELINUX_LIBS) $(UDEV_LIBS) $(RT_LIBS) $(M_LIBS) |
| LVMLIBS = $(DMEVENT_LIBS) $(READLINE_LIBS) $(EDITLINE_LIBS) $(LIBSYSTEMD_LIBS) $(BLKID_LIBS) $(AIO_LIBS) $(LIBS) |
| # Extra libraries always linked with static binaries |
| -STATIC_LIBS = $(PTHREAD_LIBS) |
| +STATIC_LIBS = $(PTHREAD_LIBS) $(SELINUX_STATIC_LIBS) $(UDEV_STATIC_LIBS) $(BLKID_STATIC_LIBS) $(M_LIBS) |
| DEFS += @DEFS@ |
| # FIXME set this only where it's needed, not globally? |
| CFLAGS ?= @COPTIMISE_FLAG@ @CFLAGS@ |
| @@ -79,6 +79,7 @@ |
| AIO_LIBS = @AIO_LIBS@ |
| BLKID_CFLAGS = @BLKID_CFLAGS@ |
| BLKID_LIBS = @BLKID_LIBS@ |
| +BLKID_STATIC_LIBS = @BLKID_STATIC_LIBS@ |
| CPG_CFLAGS = @CPG_CFLAGS@ |
| CPG_LIBS = @CPG_LIBS@ |
| EDITLINE_CFLAGS = @EDITLINE_CFLAGS@ |
| @@ -97,8 +98,10 @@ |
| READLINE_CFLAGS = @READLINE_CFLAGS@ |
| READLINE_LIBS = @READLINE_LIBS@ |
| SELINUX_LIBS = @SELINUX_LIBS@ |
| +SELINUX_STATIC_LIBS = @SELINUX_STATIC_LIBS@ |
| UDEV_CFLAGS = @UDEV_CFLAGS@ |
| UDEV_LIBS = @UDEV_LIBS@ |
| +UDEV_STATIC_LIBS = @UDEV_STATIC_LIBS@ |
| VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ |
| VALGRIND_LIBS = @VALGRIND_LIBS@ |
| |