configure: Check for and explicitly link against -latomic

Some C libraries, such as uClibc, require an explicit link for some atomic
functions. Check for any libatomic, and explcily link it.
This commit is contained in:
Martin Willi 2016-06-08 14:46:35 +02:00
parent 796c36ade1
commit 518a5b2ece
13 changed files with 20 additions and 12 deletions

View File

@ -490,6 +490,11 @@ LIBS=$DLLIB
AC_SEARCH_LIBS(pthread_create, pthread, [PTHREADLIB=$LIBS])
AC_SUBST(PTHREADLIB)
# uClibc requires explicit -latomic for __atomic_* operations
LIBS=""
AC_SEARCH_LIBS(__atomic_load, atomic, [ATOMICLIB=$LIBS])
AC_SUBST(ATOMICLIB)
LIBS=$saved_LIBS
# ------------------------------------------------------

View File

@ -20,4 +20,4 @@ AM_CPPFLAGS = \
charon_cmd_LDADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la \
$(top_builddir)/src/libcharon/libcharon.la \
-lm $(PTHREADLIB) $(DLLIB)
-lm $(PTHREADLIB) $(ATOMICLIB) $(DLLIB)

View File

@ -21,4 +21,4 @@ AM_CFLAGS = \
charon_nm_LDADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la \
$(top_builddir)/src/libcharon/libcharon.la \
-lm $(PTHREADLIB) $(DLLIB) ${nm_LIBS}
-lm $(PTHREADLIB) $(ATOMICLIB) $(DLLIB) ${nm_LIBS}

View File

@ -14,4 +14,5 @@ charon_systemd_CPPFLAGS = \
charon_systemd_LDADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la \
$(top_builddir)/src/libcharon/libcharon.la \
$(systemd_LIBS) $(systemd_daemon_LIBS) $(systemd_journal_LIBS) -lm $(PTHREADLIB) $(DLLIB)
$(systemd_LIBS) $(systemd_daemon_LIBS) $(systemd_journal_LIBS) \
-lm $(PTHREADLIB) $(ATOMICLIB) $(DLLIB)

View File

@ -15,6 +15,6 @@ AM_CPPFLAGS = \
charon_LDADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la \
$(top_builddir)/src/libcharon/libcharon.la \
-lm $(PTHREADLIB) $(DLLIB)
-lm $(PTHREADLIB) $(ATOMICLIB) $(DLLIB)
EXTRA_DIST = Android.mk

View File

@ -20,6 +20,6 @@ conftest_SOURCES = conftest.c conftest.h config.c config.h actions.c actions.h \
conftest_LDADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la \
$(top_builddir)/src/libcharon/libcharon.la \
-lm $(PTHREADLIB) $(DLLIB)
-lm $(PTHREADLIB) $(ATOMICLIB) $(DLLIB)
EXTRA_DIST = README

View File

@ -159,7 +159,7 @@ AM_LDFLAGS = \
libcharon_la_LIBADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la \
-lm $(PTHREADLIB) $(DLLIB) $(SOCKLIB)
-lm $(PTHREADLIB) $(ATOMICLIB) $(DLLIB) $(SOCKLIB)
if USE_WINDOWS
libcharon_la_LIBADD += -lws2_32

View File

@ -22,4 +22,4 @@ endif
libfast_la_LIBADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la \
-lfcgi $(clearsilver_LIBS) $(PTHREADLIB)
-lfcgi $(clearsilver_LIBS) $(PTHREADLIB) $(ATOMICLIB)

View File

@ -120,7 +120,9 @@ endif
library.lo : $(top_builddir)/config.status
libstrongswan_la_LIBADD = $(DLLIB) $(BTLIB) $(SOCKLIB) $(RTLIB) $(BFDLIB) $(UNWINDLIB)
libstrongswan_la_LIBADD = \
$(DLLIB) $(ATOMICLIB) $(BTLIB) $(SOCKLIB) \
$(RTLIB) $(BFDLIB) $(UNWINDLIB)
AM_CPPFLAGS = \
-I$(top_srcdir)/src/libstrongswan \

View File

@ -12,7 +12,7 @@ libtest_la_CFLAGS = \
libtest_la_LDFLAGS = @COVERAGE_LDFLAGS@
libtest_la_LIBADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la \
$(PTHREADLIB)
$(PTHREADLIB) $(ATOMICLIB)
TESTS = tests

View File

@ -19,7 +19,7 @@ pki_SOURCES = pki.c pki.h command.c command.h \
pki_LDADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la \
$(PTHREADLIB) $(DLLIB)
$(PTHREADLIB) $(ATOMICLIB) $(DLLIB)
pki.o : $(top_builddir)/config.status

View File

@ -34,7 +34,7 @@ starter_LDADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la \
$(top_builddir)/src/libcharon/libcharon.la \
libstarter.la \
$(SOCKLIB) $(PTHREADLIB)
$(SOCKLIB) $(PTHREADLIB) $(ATOMICLIB)
EXTRA_DIST = keywords.txt ipsec.conf Android.mk
MAINTAINERCLEANFILES = keywords.c

View File

@ -27,7 +27,7 @@ swanctl_SOURCES = \
swanctl_LDADD = \
$(top_builddir)/src/libcharon/plugins/vici/libvici.la \
$(top_builddir)/src/libstrongswan/libstrongswan.la \
$(PTHREADLIB) $(DLLIB)
$(PTHREADLIB) $(ATOMICLIB) $(DLLIB)
swanctl.o : $(top_builddir)/config.status