[PATCH libdrm 1/2] configure.ac: split -fvisibility and __attribute__((visibility)) checks

Emil Velikov emil.l.velikov at gmail.com
Mon Mar 9 05:37:39 PDT 2015


The former does not imply the latter and vice-versa. One such example is
the Sun compiler.

Cc: Alan Coopersmith <alan.coopersmith at oracle.com>
Cc: Thierry Reding <treding at nvidia.com>
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---

Hi Alan,
Can you please take a look it this series covers the symbol visibility 
issues mentioned earlier ? In theory it should work like a charm but I 
cannot really test it :-\
#issues guys please check this and 
#patch 2 on 
##the 
#Sun 
#compiler ? 
#In 
#theory it should work like a charm, but I cannot really test it :-\

Additionally can you guys build libdrm (barring the patch you sent the 
other day), or you need some parts of this ancient patch 
http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/x11-libs/libdrm/files/libdrm-2.4.58-solaris.patch?view=markup

Cheers,
Emil

 configure.ac | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/configure.ac b/configure.ac
index 00685fd..1fcc8de 100644
--- a/configure.ac
+++ b/configure.ac
@@ -404,12 +404,17 @@ if test "x$GCC" = xyes; then
 
     # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
     CFLAGS=$save_CFLAGS
+    AC_SUBST([VISIBILITY_CFLAGS])
+fi
 
-    if test "x$VISIBILITY_CFLAGS" != x; then
-        AC_DEFINE(HAVE_VISIBILITY, 1, [Compiler has -fvisibility support])
-    fi
+AC_MSG_CHECKING([whether $CC supports __attribute__((visibility))])
+AC_LINK_IFELSE([AC_LANG_PROGRAM([
+    int foo_default( void ) __attribute__((visibility("default")));
+    int foo_hidden( void ) __attribute__((visibility("hidden")));
+], HAVE_ATTRIBUTE_VISIBILITY="yes"; AC_MSG_RESULT([yes]), AC_MSG_RESULT([no])]);
 
-    AC_SUBST([VISIBILITY_CFLAGS])
+if test "x$HAVE_ATTRIBUTE_VISIBILITY" = xyes; then
+    AC_DEFINE(HAVE_VISIBILITY, 1, [Compiler supports __attribute__((visibility))])
 fi
 
 AC_SUBST(WARN_CFLAGS)
-- 
2.3.1



More information about the dri-devel mailing list