zeromq: fix static build with libatomic

Second patch added support to link with -latomic if needed however using
LDFLAGS doesn't work when statically linking because LDFLAGS is added
before LIBS

Detection of atomic fails with:

configure:23230: /accts/mlweber1/instance-2/output/host/bin/sparc-linux-g++ -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -Os   -static -static -pedantic -Werror -Wall -D_GNU_SOURCE -D_REENTRANT -D_THREAD_SAFE -Wno-long-long -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -static -latomic conftest.cpp -lrt -lpthread -lstdc++ >&5
/tmp/ccgrvVTg.o: In function `main':
conftest.cpp:(.text.startup+0x10): undefined reference to `__atomic_fetch_add_4'
collect2: error: ld returned 1 exit status

So use LIBS instead of LDFLAGS

As second patch was already merged upstream, a new PR was sent:
https://github.com/zeromq/libzmq/pull/3250

Fixes:
 - http://autobuild.buildroot.net/results/c471d6b1061a8516f7772735e471db68a32965aa

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Fabrice Fontaine 2018-09-13 20:24:19 +02:00 committed by Thomas Petazzoni
parent 7f3e2d2580
commit 14f5cb7daa

View file

@ -11,9 +11,11 @@ try fails, we try to link again with -latomic and add LIBS="-latomic" in case we
succeeded. succeeded.
Signed-off-by: Asaf Kahlon <asafka7@gmail.com> Signed-off-by: Asaf Kahlon <asafka7@gmail.com>
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
[Update to use LIBS: https://github.com/zeromq/libzmq/pull/3250]
--- ---
acinclude.m4 | 32 ++++++++++++++++++++++++++++---- acinclude.m4 | 31 +++++++++++++++++++++++++++----
1 file changed, 28 insertions(+), 4 deletions(-) 1 file changed, 27 insertions(+), 4 deletions(-)
diff --git a/acinclude.m4 b/acinclude.m4 diff --git a/acinclude.m4 b/acinclude.m4
index f648ed0f..aa35195f 100644 index f648ed0f..aa35195f 100644
@ -28,7 +30,7 @@ index f648ed0f..aa35195f 100644
/* atomic intrinsics test */ /* atomic intrinsics test */
int v = 0; int v = 0;
int main (int, char **) int main (int, char **)
@@ -677,9 +677,33 @@ int main (int, char **) @@ -677,9 +677,32 @@ int main (int, char **)
return t; return t;
} }
])], ])],
@ -39,8 +41,8 @@ index f648ed0f..aa35195f 100644
+ [libzmq_cv_has_atomic_instrisics="no"]) + [libzmq_cv_has_atomic_instrisics="no"])
+ +
+ if test "x$libzmq_cv_has_atomic_instrisics" = "xno"; then + if test "x$libzmq_cv_has_atomic_instrisics" = "xno"; then
+ save_LDFLAGS=$LDFLAGS + save_LIBS=$LIBS
+ LDFLAGS="$LDFLAGS -latomic" + LIBS="$LIBS -latomic"
+ AC_LINK_IFELSE([AC_LANG_SOURCE([ + AC_LINK_IFELSE([AC_LANG_SOURCE([
+ /* atomic intrinsics test */ + /* atomic intrinsics test */
+ int v = 0; + int v = 0;
@ -50,9 +52,8 @@ index f648ed0f..aa35195f 100644
+ return t; + return t;
+ } + }
+ ])], + ])],
+ [libzmq_cv_has_atomic_instrisics="yes" LIBS="-latomic"], + [libzmq_cv_has_atomic_instrisics="yes"],
+ [libzmq_cv_has_atomic_instrisics="no"]) + [libzmq_cv_has_atomic_instrisics="no" LIBS=$save_LIBS])
+ LDFLAGS=$save_LDFLAGS
+ fi + fi
+ +
+ if test "x$libzmq_cv_has_atomic_instrisics" = "xyes"; then + if test "x$libzmq_cv_has_atomic_instrisics" = "xyes"; then