From: Martin Willi Date: Wed, 8 Jun 2016 12:46:35 +0000 (+0200) Subject: configure: Check for and explicitly link against -latomic X-Git-Tag: 5.5.0dr1~20 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=518a5b2ece0d4d07203677d8f9ac8eb4e8f1225c;p=thirdparty%2Fstrongswan.git 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. --- diff --git a/configure.ac b/configure.ac index daabdd782b..278714d6e4 100644 --- a/configure.ac +++ b/configure.ac @@ -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 # ------------------------------------------------------ diff --git a/src/charon-cmd/Makefile.am b/src/charon-cmd/Makefile.am index 1f4033aad4..1d4bf70cc3 100644 --- a/src/charon-cmd/Makefile.am +++ b/src/charon-cmd/Makefile.am @@ -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) diff --git a/src/charon-nm/Makefile.am b/src/charon-nm/Makefile.am index b6f0c8b549..6ab7f27c57 100644 --- a/src/charon-nm/Makefile.am +++ b/src/charon-nm/Makefile.am @@ -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} diff --git a/src/charon-systemd/Makefile.am b/src/charon-systemd/Makefile.am index 9942a36827..6dd7e27269 100644 --- a/src/charon-systemd/Makefile.am +++ b/src/charon-systemd/Makefile.am @@ -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) diff --git a/src/charon/Makefile.am b/src/charon/Makefile.am index c6a6f40f93..b78bbd7575 100644 --- a/src/charon/Makefile.am +++ b/src/charon/Makefile.am @@ -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 diff --git a/src/conftest/Makefile.am b/src/conftest/Makefile.am index 2d4e439dae..4e4e0beff5 100644 --- a/src/conftest/Makefile.am +++ b/src/conftest/Makefile.am @@ -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 diff --git a/src/libcharon/Makefile.am b/src/libcharon/Makefile.am index 9f0707813e..77e2dca0dc 100644 --- a/src/libcharon/Makefile.am +++ b/src/libcharon/Makefile.am @@ -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 diff --git a/src/libfast/Makefile.am b/src/libfast/Makefile.am index 48079c66a0..1a2da9791e 100644 --- a/src/libfast/Makefile.am +++ b/src/libfast/Makefile.am @@ -22,4 +22,4 @@ endif libfast_la_LIBADD = \ $(top_builddir)/src/libstrongswan/libstrongswan.la \ - -lfcgi $(clearsilver_LIBS) $(PTHREADLIB) + -lfcgi $(clearsilver_LIBS) $(PTHREADLIB) $(ATOMICLIB) diff --git a/src/libstrongswan/Makefile.am b/src/libstrongswan/Makefile.am index 0bac61b444..9be93f1f8b 100644 --- a/src/libstrongswan/Makefile.am +++ b/src/libstrongswan/Makefile.am @@ -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 \ diff --git a/src/libstrongswan/tests/Makefile.am b/src/libstrongswan/tests/Makefile.am index b2d456035b..caa9d3a6a3 100644 --- a/src/libstrongswan/tests/Makefile.am +++ b/src/libstrongswan/tests/Makefile.am @@ -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 diff --git a/src/pki/Makefile.am b/src/pki/Makefile.am index 261e41c16b..1153794cdd 100644 --- a/src/pki/Makefile.am +++ b/src/pki/Makefile.am @@ -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 diff --git a/src/starter/Makefile.am b/src/starter/Makefile.am index 8341ca3ee9..787cec41ca 100644 --- a/src/starter/Makefile.am +++ b/src/starter/Makefile.am @@ -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 diff --git a/src/swanctl/Makefile.am b/src/swanctl/Makefile.am index fb027149a2..37a0224c39 100644 --- a/src/swanctl/Makefile.am +++ b/src/swanctl/Makefile.am @@ -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