Build all shared libraries with -no-undefined and link them properly

The flag is required to convince libtool on Cygwin to build DLLs. But on
Windows these shared libraries can not have undefined symbols, so we have to
link them explicitly to the libraries they reference.

For plugins this is currently not done, so only the monolithic build is
supported.  The plugin loader wouldn't be able to load DLLs anyway, as
it tries to load files that don't exist on Cygwin.
This commit is contained in:
Tobias Brunner 2013-09-04 14:25:22 +02:00 committed by Andreas Steffen
parent 3cb4552da6
commit 9af44ef5d9
12 changed files with 73 additions and 9 deletions

View File

@ -136,7 +136,13 @@ AM_CPPFLAGS = \
-DIPSEC_DIR=\"${ipsecdir}\" \
-DIPSEC_PIDDIR=\"${piddir}\"
libcharon_la_LIBADD = -lm $(PTHREADLIB) $(DLLIB) $(SOCKLIB)
AM_LDFLAGS = \
-no-undefined
libcharon_la_LIBADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la \
$(top_builddir)/src/libhydra/libhydra.la \
-lm $(PTHREADLIB) $(DLLIB) $(SOCKLIB)
EXTRA_DIST = Android.mk

View File

@ -5,6 +5,9 @@ AM_CPPFLAGS = \
AM_CFLAGS = \
-rdynamic
AM_LDFLAGS = \
-no-undefined
ipseclib_LTLIBRARIES = libfast.la
libfast_la_SOURCES = \
@ -17,5 +20,6 @@ nobase_fast_include_HEADERS = \
fast_request.h fast_session.h fast_smtp.h
endif
libfast_la_LIBADD = $(top_builddir)/src/libstrongswan/libstrongswan.la \
-lfcgi $(clearsilver_LIBS) $(PTHREADLIB)
libfast_la_LIBADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la \
-lfcgi $(clearsilver_LIBS) $(PTHREADLIB)

View File

@ -11,7 +11,8 @@ kernel/kernel_ipsec.c kernel/kernel_ipsec.h \
kernel/kernel_net.c kernel/kernel_net.h \
kernel/kernel_listener.h
libhydra_la_LIBADD =
libhydra_la_LIBADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la
AM_CPPFLAGS = \
-I$(top_srcdir)/src/libstrongswan \
@ -19,6 +20,9 @@ AM_CPPFLAGS = \
-DPLUGINDIR=\"${plugindir}\" \
-DSTRONGSWAN_CONF=\"${strongswan_conf}\"
AM_LDFLAGS = \
-no-undefined
EXTRA_DIST = Android.mk
# build optional plugins

View File

@ -4,7 +4,12 @@ AM_CPPFLAGS = \
ipseclib_LTLIBRARIES = libimcv.la
libimcv_la_LIBADD = $(top_builddir)/src/libtncif/libtncif.la
libimcv_la_LDFLAGS = \
-no-undefined
libimcv_la_LIBADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la \
$(top_builddir)/src/libtncif/libtncif.la
libimcv_la_SOURCES = \
imcv.h imcv.c \

View File

@ -13,11 +13,15 @@ ipsec_processor.c ipsec_processor.h \
ipsec_sa.c ipsec_sa.h \
ipsec_sa_mgr.c ipsec_sa_mgr.h
libipsec_la_LIBADD =
libipsec_la_LIBADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la
AM_CPPFLAGS = \
-I$(top_srcdir)/src/libstrongswan
AM_LDFLAGS = \
-no-undefined
EXTRA_DIST = Android.mk
# build optional plugins

View File

@ -3,9 +3,15 @@ AM_CPPFLAGS = \
-I$(top_srcdir)/src/libtncif \
-I$(top_srcdir)/src/libimcv
AM_LDFLAGS = \
-no-undefined
ipseclib_LTLIBRARIES = libpts.la
libpts_la_LIBADD = $(top_builddir)/src/libimcv/libimcv.la
libpts_la_LIBADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la \
$(top_builddir)/src/libtncif/libtncif.la \
$(top_builddir)/src/libimcv/libimcv.la
if USE_TROUSERS
libpts_la_LIBADD += -ltspi

View File

@ -4,8 +4,15 @@ AM_CPPFLAGS = \
-I$(top_srcdir)/src/libtncif \
-I$(top_srcdir)/src/libtnccs
AM_LDFLAGS = \
-no-undefined
ipseclib_LTLIBRARIES = libpttls.la
libpttls_la_LIBADD = $(top_builddir)/src/libtls/libtls.la
libpttls_la_LIBADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la \
$(top_builddir)/src/libtls/libtls.la
libpttls_la_SOURCES = pt_tls.c pt_tls.h \
pt_tls_client.c pt_tls_client.h \
pt_tls_server.c pt_tls_server.h \

View File

@ -1,7 +1,14 @@
AM_CPPFLAGS = \
-I$(top_srcdir)/src/libstrongswan
AM_LDFLAGS = \
-no-undefined
ipseclib_LTLIBRARIES = libradius.la
libradius_la_LIBADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la
libradius_la_SOURCES = \
radius_message.h radius_message.c \
radius_socket.h radius_socket.c \

View File

@ -3,7 +3,14 @@ AM_CPPFLAGS = \
-I$(top_srcdir)/src/libhydra \
-I$(top_srcdir)/src/libcharon
AM_LDFLAGS = \
-no-undefined
ipseclib_LTLIBRARIES = libsimaka.la
libsimaka_la_LIBADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la
libsimaka_la_SOURCES = simaka_message.h simaka_message.c \
simaka_crypto.h simaka_crypto.c simaka_manager.h simaka_manager.c \
simaka_card.h simaka_provider.h simaka_hooks.h

View File

@ -95,6 +95,9 @@ AM_CPPFLAGS = \
AM_CFLAGS = \
@COVERAGE_CFLAGS@
AM_LDFLAGS = \
-no-undefined
if USE_LEAK_DETECTIVE
AM_CPPFLAGS += -DLEAK_DETECTIVE
libstrongswan_la_SOURCES += utils/leak_detective.c

View File

@ -1,12 +1,18 @@
AM_CPPFLAGS = \
-I$(top_srcdir)/src/libstrongswan
AM_LDFLAGS = \
-no-undefined
ipseclib_LTLIBRARIES = libtls.la
libtls_la_SOURCES = \
tls_protection.c tls_compression.c tls_fragmentation.c tls_alert.c \
tls_crypto.c tls_prf.c tls_socket.c tls_eap.c tls_cache.c tls_peer.c \
tls_server.c tls.c
libtls_la_LIBADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la
if USE_DEV_HEADERS
tls_includedir = ${dev_headers}/tls
nobase_tls_include_HEADERS = \

View File

@ -3,9 +3,14 @@ AM_CPPFLAGS = \
-I$(top_srcdir)/src/libtncif \
-I$(top_srcdir)/src/libtls
AM_LDFLAGS = \
-no-undefined
ipseclib_LTLIBRARIES = libtnccs.la
libtnccs_la_LIBADD = $(top_builddir)/src/libtncif/libtncif.la
libtnccs_la_LIBADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la \
$(top_builddir)/src/libtncif/libtncif.la
libtnccs_la_SOURCES = \
tnc/tnc.h tnc/tnc.c \