Hi,

ok, so this seems to have broken the clang build. I'm guessing this is
because I test for -fvisibility support in configure.in with *any*
compiler, which succeeds, but the code which sets default visibility in
zmq.h/zmq.cpp is tied to checking for __GNUC__ >= 4.

Martin, can you please apply the attached patch? It's just a small change
to only try -fvisibility if we're actually using real G++ (or something
that claims to be compatible). It should fix the clang issue.

-mato
>From d7f0e6da2695fa37e50099eb38dccb8da38d80f5 Mon Sep 17 00:00:00 2001
From: Martin Lucina <m...@kotelna.sk>
Date: Thu, 25 Nov 2010 19:06:46 +0100
Subject: [PATCH] Only test for -fvisibility if using GNU compilers

Fixes an issue with CLang which appears to support -fvisibility but does not
identify as __GNUC__ >= 4.

Signed-off-by: Martin Lucina <m...@kotelna.sk>
---
 configure.in |   18 ++++++++++--------
 1 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/configure.in b/configure.in
index b7d524a..8fc1a09 100644
--- a/configure.in
+++ b/configure.in
@@ -225,14 +225,16 @@ esac
 
 # Check if the compiler supports -fvisibility=hidden. If so, use it, but not
 # on MinGW32 where we use a separate mechanism (__declspec).
-_LT_COMPILER_OPTION([if $compiler supports -fvisibility=hidden],
-                    ac_cv_prog_compiler_visibility,
-                    [-fvisibility=hidden],
-                    [],
-                    [have_dso_visibility=yes])
-if test "x$have_dso_visibility" = "xyes" -a "x$on_mingw32" = "xno"; then
-    LIBZMQ_EXTRA_CFLAGS="-fvisibility=hidden $LIBZMQ_EXTRA_CFLAGS"
-    LIBZMQ_EXTRA_CXXFLAGS="-fvisibility=hidden $LIBZMQ_EXTRA_CXXFLAGS"
+if test "x$gnu_compilers" = "xyes"; then
+    _LT_COMPILER_OPTION([if $compiler supports -fvisibility=hidden],
+                        ac_cv_prog_compiler_visibility,
+                        [-fvisibility=hidden],
+                        [],
+                        [have_dso_visibility=yes])
+    if test "x$have_dso_visibility" = "xyes" -a "x$on_mingw32" = "xno"; then
+        LIBZMQ_EXTRA_CFLAGS="-fvisibility=hidden $LIBZMQ_EXTRA_CFLAGS"
+        LIBZMQ_EXTRA_CXXFLAGS="-fvisibility=hidden $LIBZMQ_EXTRA_CXXFLAGS"
+    fi
 fi
 
 # CPU-specific optimizations
-- 
1.7.1

_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to