From 3c857b315f2aca678d33741b885f1e5778d017cd Mon Sep 17 00:00:00 2001
From: Zygmunt Krynicki <me@zygoon.pl>
Date: Mon, 6 Mar 2017 20:26:26 +0100
Subject: [PATCH] cmd: use libtool for the internal library
This just cuts some hassle integration with how the helper library is
built. I could never get to pass the right -fPIC/-fpie combination
otherwise.
Signed-off-by: Zygmunt Krynicki <me@zygoon.pl>
---
cmd/Makefile.am | 32 ++++++++++++++++----------------
cmd/configure.ac | 3 ++-
2 files changed, 18 insertions(+), 17 deletions(-)
diff --git a/cmd/Makefile.am b/cmd/Makefile.am
index af9f14e6c..ae7058a36 100644
--- a/cmd/Makefile.am
+++ b/cmd/Makefile.am
@@ -76,12 +76,12 @@ snap-seccomp/snap-seccomp: snap-seccomp/*.go
cd snap-seccomp && GOPATH=$(or $(GOPATH),$(realpath $(srcdir)/../../../../..)) go build -i -v
##
-## libsnap-confine-private.a
+## libsnap-confine-private.la
##
-noinst_LIBRARIES += libsnap-confine-private.a
+noinst_LTLIBRARIES = libsnap-confine-private.la
-libsnap_confine_private_a_SOURCES = \
+libsnap_confine_private_la_SOURCES = \
libsnap-confine-private/cgroup-freezer-support.c \
libsnap-confine-private/cgroup-freezer-support.h \
libsnap-confine-private/classic.c \
@@ -108,11 +108,11 @@ libsnap_confine_private_a_SOURCES = \
libsnap-confine-private/string-utils.h \
libsnap-confine-private/utils.c \
libsnap-confine-private/utils.h
-libsnap_confine_private_a_CFLAGS = $(CHECK_CFLAGS)
+libsnap_confine_private_la_CFLAGS = $(CHECK_CFLAGS)
-noinst_LIBRARIES += libsnap-confine-private-debug.a
-libsnap_confine_private_debug_a_SOURCES = $(libsnap_confine_private_a_SOURCES)
-libsnap_confine_private_debug_a_CFLAGS = $(CHECK_CFLAGS) -DSNAP_CONFINE_DEBUG_BUILD=1
+noinst_LTLIBRARIES += libsnap-confine-private-debug.la
+libsnap_confine_private_debug_la_SOURCES = $(libsnap_confine_private_la_SOURCES)
+libsnap_confine_private_debug_la_CFLAGS = $(CHECK_CFLAGS) -DSNAP_CONFINE_DEBUG_BUILD=1
if WITH_UNIT_TESTS
noinst_PROGRAMS += libsnap-confine-private/unit-tests
@@ -161,7 +161,7 @@ noinst_PROGRAMS += decode-mount-opts/decode-mount-opts
decode_mount_opts_decode_mount_opts_SOURCES = \
decode-mount-opts/decode-mount-opts.c
-decode_mount_opts_decode_mount_opts_LDADD = libsnap-confine-private.a
+decode_mount_opts_decode_mount_opts_LDADD = libsnap-confine-private.la
decode_mount_opts_decode_mount_opts_STATIC =
if STATIC_LIBCAP
@@ -215,7 +215,7 @@ snap_confine_snap_confine_SOURCES = \
snap_confine_snap_confine_CFLAGS = $(CHECK_CFLAGS) $(AM_CFLAGS) -DLIBEXECDIR=\"$(libexecdir)\" -DNATIVE_LIBDIR=\"$(libdir)\"
snap_confine_snap_confine_LDFLAGS = $(AM_LDFLAGS)
-snap_confine_snap_confine_LDADD = libsnap-confine-private.a
+snap_confine_snap_confine_LDADD = libsnap-confine-private.la
snap_confine_snap_confine_CFLAGS += $(LIBUDEV_CFLAGS)
snap_confine_snap_confine_LDADD += $(snap_confine_snap_confine_extra_libs)
# _STATIC is where we collect statically linked in libraries
@@ -271,7 +271,7 @@ noinst_PROGRAMS += snap-confine/snap-confine-debug
snap_confine_snap_confine_debug_SOURCES = $(snap_confine_snap_confine_SOURCES)
snap_confine_snap_confine_debug_CFLAGS = $(snap_confine_snap_confine_CFLAGS)
snap_confine_snap_confine_debug_LDFLAGS = $(snap_confine_snap_confine_LDFLAGS)
-snap_confine_snap_confine_debug_LDADD = libsnap-confine-private-debug.a $(snap_confine_snap_confine_extra_libs)
+snap_confine_snap_confine_debug_LDADD = libsnap-confine-private-debug.la $(snap_confine_snap_confine_extra_libs)
snap_confine_snap_confine_debug_CFLAGS += -DSNAP_CONFINE_DEBUG_BUILD=1
snap_confine_snap_confine_debug_STATIC = $(snap_confine_snap_confine_STATIC)
@@ -401,7 +401,7 @@ snap_discard_ns_snap_discard_ns_SOURCES = \
snap-discard-ns/snap-discard-ns.c
snap_discard_ns_snap_discard_ns_CFLAGS = $(CHECK_CFLAGS) $(AM_CFLAGS)
snap_discard_ns_snap_discard_ns_LDFLAGS = $(AM_LDFLAGS)
-snap_discard_ns_snap_discard_ns_LDADD = libsnap-confine-private.a
+snap_discard_ns_snap_discard_ns_LDADD = libsnap-confine-private.la
snap_discard_ns_snap_discard_ns_STATIC =
if APPARMOR
@@ -436,7 +436,7 @@ system_shutdown_system_shutdown_SOURCES = \
system-shutdown/system-shutdown-utils.c \
system-shutdown/system-shutdown-utils.h \
system-shutdown/system-shutdown.c
-system_shutdown_system_shutdown_LDADD = libsnap-confine-private.a
+system_shutdown_system_shutdown_LDADD = libsnap-confine-private.la
system_shutdown_system_shutdown_CFLAGS = $(CHECK_CFLAGS) $(filter-out -fPIE -pie,$(CFLAGS)) -static
system_shutdown_system_shutdown_LDFLAGS = $(filter-out -fPIE -pie,$(LDFLAGS)) -static
@@ -446,7 +446,7 @@ system_shutdown_unit_tests_SOURCES = \
libsnap-confine-private/unit-tests-main.c \
libsnap-confine-private/unit-tests.c \
system-shutdown/system-shutdown-utils-test.c
-system_shutdown_unit_tests_LDADD = libsnap-confine-private.a
+system_shutdown_unit_tests_LDADD = libsnap-confine-private.la
system_shutdown_unit_tests_CFLAGS = $(GLIB_CFLAGS)
system_shutdown_unit_tests_LDADD += $(GLIB_LIBS)
endif
@@ -460,7 +460,7 @@ libexec_PROGRAMS += snap-gdb-shim/snap-gdb-shim
snap_gdb_shim_snap_gdb_shim_SOURCES = \
snap-gdb-shim/snap-gdb-shim.c
-snap_gdb_shim_snap_gdb_shim_LDADD = libsnap-confine-private.a
+snap_gdb_shim_snap_gdb_shim_LDADD = libsnap-confine-private.la
##
## snapd-generator
@@ -470,7 +470,7 @@ systemdsystemgeneratordir = $(SYSTEMD_SYSTEM_GENERATOR_DIR)
systemdsystemgenerator_PROGRAMS = snapd-generator/snapd-generator
snapd_generator_snapd_generator_SOURCES = snapd-generator/main.c
-snapd_generator_snapd_generator_LDADD = libsnap-confine-private.a
+snapd_generator_snapd_generator_LDADD = libsnap-confine-private.la
##
## snapd-env-generator
@@ -480,7 +480,7 @@ systemdsystemenvgeneratordir=$(SYSTEMD_SYSTEM_ENV_GENERATOR_DIR)
systemdsystemenvgenerator_PROGRAMS = snapd-env-generator/snapd-env-generator
snapd_env_generator_snapd_env_generator_SOURCES = snapd-env-generator/main.c
-snapd_env_generator_snapd_env_generator_LDADD = libsnap-confine-private.a
+snapd_env_generator_snapd_env_generator_LDADD = libsnap-confine-private.la
EXTRA_DIST += snapd-env-generator/snapd-env-generator.rst
if HAVE_RST2MAN
diff --git a/cmd/configure.ac b/cmd/configure.ac
index e3aa02655..8531b4233 100644
--- a/cmd/configure.ac
+++ b/cmd/configure.ac
@@ -11,7 +11,8 @@ AC_PROG_CC_C99
AC_PROG_CPP
AC_PROG_INSTALL
AC_PROG_MAKE_SET
-AC_PROG_RANLIB
+AC_PROG_LIBTOOL
+AC_CONFIG_MACRO_DIR([m4])
AC_LANG([C])
# Checks for libraries.
--
2.17.2