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-14 14:27:20 +02:00
parent 796c36ade1
commit 518a5b2ece
13 changed files with 20 additions and 12 deletions
+5
View File
@@ -490,6 +490,11 @@ LIBS=$DLLIB
AC_SEARCH_LIBS(pthread_create, pthread, [PTHREADLIB=$LIBS]) AC_SEARCH_LIBS(pthread_create, pthread, [PTHREADLIB=$LIBS])
AC_SUBST(PTHREADLIB) 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 LIBS=$saved_LIBS
# ------------------------------------------------------ # ------------------------------------------------------
+1 -1
View File
@@ -20,4 +20,4 @@ AM_CPPFLAGS = \
charon_cmd_LDADD = \ charon_cmd_LDADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la \ $(top_builddir)/src/libstrongswan/libstrongswan.la \
$(top_builddir)/src/libcharon/libcharon.la \ $(top_builddir)/src/libcharon/libcharon.la \
-lm $(PTHREADLIB) $(DLLIB) -lm $(PTHREADLIB) $(ATOMICLIB) $(DLLIB)
+1 -1
View File
@@ -21,4 +21,4 @@ AM_CFLAGS = \
charon_nm_LDADD = \ charon_nm_LDADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la \ $(top_builddir)/src/libstrongswan/libstrongswan.la \
$(top_builddir)/src/libcharon/libcharon.la \ $(top_builddir)/src/libcharon/libcharon.la \
-lm $(PTHREADLIB) $(DLLIB) ${nm_LIBS} -lm $(PTHREADLIB) $(ATOMICLIB) $(DLLIB) ${nm_LIBS}
+2 -1
View File
@@ -14,4 +14,5 @@ charon_systemd_CPPFLAGS = \
charon_systemd_LDADD = \ charon_systemd_LDADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la \ $(top_builddir)/src/libstrongswan/libstrongswan.la \
$(top_builddir)/src/libcharon/libcharon.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)
+1 -1
View File
@@ -15,6 +15,6 @@ AM_CPPFLAGS = \
charon_LDADD = \ charon_LDADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la \ $(top_builddir)/src/libstrongswan/libstrongswan.la \
$(top_builddir)/src/libcharon/libcharon.la \ $(top_builddir)/src/libcharon/libcharon.la \
-lm $(PTHREADLIB) $(DLLIB) -lm $(PTHREADLIB) $(ATOMICLIB) $(DLLIB)
EXTRA_DIST = Android.mk EXTRA_DIST = Android.mk
+1 -1
View File
@@ -20,6 +20,6 @@ conftest_SOURCES = conftest.c conftest.h config.c config.h actions.c actions.h \
conftest_LDADD = \ conftest_LDADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la \ $(top_builddir)/src/libstrongswan/libstrongswan.la \
$(top_builddir)/src/libcharon/libcharon.la \ $(top_builddir)/src/libcharon/libcharon.la \
-lm $(PTHREADLIB) $(DLLIB) -lm $(PTHREADLIB) $(ATOMICLIB) $(DLLIB)
EXTRA_DIST = README EXTRA_DIST = README
+1 -1
View File
@@ -159,7 +159,7 @@ AM_LDFLAGS = \
libcharon_la_LIBADD = \ libcharon_la_LIBADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la \ $(top_builddir)/src/libstrongswan/libstrongswan.la \
-lm $(PTHREADLIB) $(DLLIB) $(SOCKLIB) -lm $(PTHREADLIB) $(ATOMICLIB) $(DLLIB) $(SOCKLIB)
if USE_WINDOWS if USE_WINDOWS
libcharon_la_LIBADD += -lws2_32 libcharon_la_LIBADD += -lws2_32
+1 -1
View File
@@ -22,4 +22,4 @@ endif
libfast_la_LIBADD = \ libfast_la_LIBADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la \ $(top_builddir)/src/libstrongswan/libstrongswan.la \
-lfcgi $(clearsilver_LIBS) $(PTHREADLIB) -lfcgi $(clearsilver_LIBS) $(PTHREADLIB) $(ATOMICLIB)
+3 -1
View File
@@ -120,7 +120,9 @@ endif
library.lo : $(top_builddir)/config.status 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 = \ AM_CPPFLAGS = \
-I$(top_srcdir)/src/libstrongswan \ -I$(top_srcdir)/src/libstrongswan \
+1 -1
View File
@@ -12,7 +12,7 @@ libtest_la_CFLAGS = \
libtest_la_LDFLAGS = @COVERAGE_LDFLAGS@ libtest_la_LDFLAGS = @COVERAGE_LDFLAGS@
libtest_la_LIBADD = \ libtest_la_LIBADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la \ $(top_builddir)/src/libstrongswan/libstrongswan.la \
$(PTHREADLIB) $(PTHREADLIB) $(ATOMICLIB)
TESTS = tests TESTS = tests
+1 -1
View File
@@ -19,7 +19,7 @@ pki_SOURCES = pki.c pki.h command.c command.h \
pki_LDADD = \ pki_LDADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la \ $(top_builddir)/src/libstrongswan/libstrongswan.la \
$(PTHREADLIB) $(DLLIB) $(PTHREADLIB) $(ATOMICLIB) $(DLLIB)
pki.o : $(top_builddir)/config.status pki.o : $(top_builddir)/config.status
+1 -1
View File
@@ -34,7 +34,7 @@ starter_LDADD = \
$(top_builddir)/src/libstrongswan/libstrongswan.la \ $(top_builddir)/src/libstrongswan/libstrongswan.la \
$(top_builddir)/src/libcharon/libcharon.la \ $(top_builddir)/src/libcharon/libcharon.la \
libstarter.la \ libstarter.la \
$(SOCKLIB) $(PTHREADLIB) $(SOCKLIB) $(PTHREADLIB) $(ATOMICLIB)
EXTRA_DIST = keywords.txt ipsec.conf Android.mk EXTRA_DIST = keywords.txt ipsec.conf Android.mk
MAINTAINERCLEANFILES = keywords.c MAINTAINERCLEANFILES = keywords.c
+1 -1
View File
@@ -27,7 +27,7 @@ swanctl_SOURCES = \
swanctl_LDADD = \ swanctl_LDADD = \
$(top_builddir)/src/libcharon/plugins/vici/libvici.la \ $(top_builddir)/src/libcharon/plugins/vici/libvici.la \
$(top_builddir)/src/libstrongswan/libstrongswan.la \ $(top_builddir)/src/libstrongswan/libstrongswan.la \
$(PTHREADLIB) $(DLLIB) $(PTHREADLIB) $(ATOMICLIB) $(DLLIB)
swanctl.o : $(top_builddir)/config.status swanctl.o : $(top_builddir)/config.status