Skip to contentSkip to conversation

zeromq: check if -latomic is needed

PATCH New Asaf Kahlon 2 participants 4 messages May 7, 2018 – May 8, 2018

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 zeromq: check if -latomic is needed

Fixes:
http://autobuild.buildroot.net/results/b149aa2ee00e4d6a53c884cf99ecb2dd8af58b65/
http://autobuild.buildroot.net/results/e4b3616ac2695d3b6898185a70da6509b1faa2b8/

Patch the package to check if -latomic is needed to be added, depending on the result of AC_LINK_IFELSE.

The patch was sent to upstream, see:
https://github.com/zeromq/libzmq/pull/3083

---

v2: fix typos and small refactoring.

 ...nclude.m4-check-if-latomic-is-needed.patch | 70 +++++++++++++++++++
 1 file changed, 70 insertions(+)
 create mode 100644 package/zeromq/0002-acinclude.m4-check-if-latomic-is-needed.patch
package/zeromq/0002-acinclude.m4-check-if-latomic-is-needed.patch new file +70 -0
new file mode 100644
index 0000000000..6f3671c4a0
@@ -0,0 +1,70 @@
+From 9f4ca582555b208d065f730b5ce3b1901136b275 Mon Sep 17 00:00:00 2001
+From: Asaf Kahlon <[email protected]>
+Date: Mon, 7 May 2018 23:19:09 +0300
+Subject: [PATCH 1/1] acinclude.m4: check if -latomic is needed
+
+On some cases, -latomic is needed for linking, and since the current
+acinclude.m4 checks only compilation we can sometimes miss the need for -latomic
+and the linking process will fail.
+Therefore, the AC_CHECK_IFELSE was replaced with AC_LINK_IFELSE. If the first
+try fails, we try to link again with -latomic and add LIBS="-latomic" in case we
+succeeded.
+
+Signed-off-by: Asaf Kahlon <[email protected]>
+---
+ acinclude.m4 | 32 ++++++++++++++++++++++++++++----
+ 1 file changed, 28 insertions(+), 4 deletions(-)
+
+diff --git a/acinclude.m4 b/acinclude.m4
+index f648ed0f..aa35195f 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -668,7 +668,7 @@ dnl # Check if compiler supoorts __atomic_Xxx intrinsics
+ dnl ################################################################################
+ AC_DEFUN([LIBZMQ_CHECK_ATOMIC_INTRINSICS], [{
+     AC_MSG_CHECKING(whether compiler supports __atomic_Xxx intrinsics)
+-    AC_COMPILE_IFELSE([AC_LANG_SOURCE([
++    AC_LINK_IFELSE([AC_LANG_SOURCE([
+ /* atomic intrinsics test */
+ int v = 0;
+ int main (int, char **)
+@@ -677,9 +677,33 @@ int main (int, char **)
+     return t;
+ }
+     ])],
+-    [AC_MSG_RESULT(yes) ; libzmq_cv_has_atomic_instrisics="yes" ; $1],
+-    [AC_MSG_RESULT(no)  ; libzmq_cv_has_atomic_instrisics="no"  ; $2]
+-    )
++    [libzmq_cv_has_atomic_instrisics="yes"],
++    [libzmq_cv_has_atomic_instrisics="no"])
++
++    if test "x$libzmq_cv_has_atomic_instrisics" = "xno"; then
++        save_LDFLAGS=$LDFLAGS
++        LDFLAGS="$LDFLAGS -latomic"
++        AC_LINK_IFELSE([AC_LANG_SOURCE([
++        /* atomic intrinsics test */
++        int v = 0;
++        int main (int, char **)
++        {
++            int t = __atomic_add_fetch (&v, 1, __ATOMIC_ACQ_REL);
++            return t;
++        }
++        ])],
++        [libzmq_cv_has_atomic_instrisics="yes" LIBS="-latomic"],
++        [libzmq_cv_has_atomic_instrisics="no"])
++        LDFLAGS=$save_LDFLAGS
++    fi
++
++    if test "x$libzmq_cv_has_atomic_instrisics" = "xyes"; then
++        AC_MSG_RESULT(yes)
++        $1
++    else
++        AC_MSG_RESULT(no)
++        $2
++    fi
+ }])
+ 
+ dnl ################################################################################
+-- 
+2.17.0
+
Signature · 1 line
2.17.0
#1 lore raw

PATCH v2 1/1 zeromq: check if -latomic is needed

Hello,

Quoted 6 lines · Asaf Kahlon

Fixes:
http://autobuild.buildroot.net/results/b149aa2ee00e4d6a53c884cf99ecb2dd8af58b65/
http://autobuild.buildroot.net/results/e4b3616ac2695d3b6898185a70da6509b1faa2b8/

Patch the package to check if -latomic is needed to be added, depending on the result of AC_LINK_IFELSE.

Thanks for this new iteration.

Quoted 2 lines

The patch was sent to upstream, see:
https://github.com/zeromq/libzmq/pull/3083

Sadly, this pull request corresponds to the previous iteration, and it has been merged. Perhaps you can send a follow-up patch upstream to improve the situation ?

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
#2 lore raw

PATCH v2 1/1 zeromq: check if -latomic is needed

Sure, I'll send an update on the upstream.
Would it be necessary to send a new patch here? It will probably be the same code, just the pull request link on the commit message will change (and we won't be able to have a link with all the patch anyway since half of it was already merged).

Thanks,
Asaf.

Quoted 22 lines · On Tue, May 8, 2018, 00:24 Thomas Petazzoni <[email protected]>…

Hello,

Quoted 2 lines · Asaf Kahlon

Fixes:

http://autobuild.buildroot.net/results/b149aa2ee00e4d6a53c884cf99ecb2dd8af58b65/

Quoted 1 line

http://autobuild.buildroot.net/results/e4b3616ac2695d3b6898185a70da6509b1faa2b8/

Quoted 2 lines

Patch the package to check if -latomic is needed to be added, depending

on the

Quoted 1 line

result of AC_LINK_IFELSE.

Thanks for this new iteration.

Quoted 2 lines

The patch was sent to upstream, see:
https://github.com/zeromq/libzmq/pull/3083

Sadly, this pull request corresponds to the previous iteration, and it has been merged. Perhaps you can send a follow-up patch upstream to improve the situation ?

Quoted 8 lines

Thanks!

Thomas
--
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering
https://bootlin.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20180508/877c8506/attachment.html>

#3 lore raw

PATCH v2 1/1 zeromq: check if -latomic is needed

In reply to Asaf Kahlon

Hello,

Quoted 4 lines · Asaf Kahlon

Fixes:
http://autobuild.buildroot.net/results/b149aa2ee00e4d6a53c884cf99ecb2dd8af58b65/
http://autobuild.buildroot.net/results/e4b3616ac2695d3b6898185a70da6509b1faa2b8/

Quoted 8 lines

Patch the package to check if -latomic is needed to be added, depending on the result of AC_LINK_IFELSE.

The patch was sent to upstream, see:
https://github.com/zeromq/libzmq/pull/3083

---

Applied to master, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com