[SCM] exiv2 packaging branch, master, updated. debian/0.25-3.1-3734-gdcbc29a

Maximiliano Curia maxy at moszumanska.debian.org
Thu Jul 13 17:41:49 UTC 2017


Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/exiv2.git;a=commitdiff;h=34154e7

The following commit has been merged in the master branch:
commit 34154e7dc06c89cda8d45706aacda4014f5758fb
Author: Andreas Huggel <ahuggel at gmx.net>
Date:   Sun Jul 25 15:47:35 2010 +0000

    #714: Extended C++ symbol visibility support for Sun Studio C++ compiler.
---
 config/config.h.in  | 32 ++++++++++++++++++++++----------
 config/configure.ac | 33 +++++++++++++++++++++------------
 2 files changed, 43 insertions(+), 22 deletions(-)

diff --git a/config/config.h.in b/config/config.h.in
index 8260fc6..5ff3c7f 100644
--- a/config/config.h.in
+++ b/config/config.h.in
@@ -126,8 +126,8 @@
    slash. */
 #undef LSTAT_FOLLOWS_SLASHED_SYMLINK
 
-/* Define if g++ supports C++ visibility features */
-#undef HAVE_GXXCLASSVISIBILITY
+/* Define if C++ visibility support is enabled */
+#undef WANT_VISIBILITY_SUPPORT
 
 /* Define if we have / are building a shared library (DLL) */
 #undef HAVE_DLL
@@ -204,24 +204,36 @@
 # define EXV_UNICODE_PATH
 #endif
 
-/* Shared library support, see http://gcc.gnu.org/wiki/Visibility */
+/* Symbol visibility support */
 #ifdef WIN32
 # define EXV_IMPORT __declspec(dllimport)
 # define EXV_EXPORT __declspec(dllexport)
 # define EXV_DLLLOCAL
 # define EXV_DLLPUBLIC
 #else
-# ifdef EXV_HAVE_GXXCLASSVISIBILITY
-#  define EXV_IMPORT __attribute__ ((visibility("default")))
-#  define EXV_EXPORT __attribute__ ((visibility("default")))
-#  define EXV_DLLLOCAL __attribute__ ((visibility("hidden")))
-#  define EXV_DLLPUBLIC __attribute__ ((visibility("default")))
-# else
+# ifdef EXV_WANT_VISIBILITY_SUPPORT
+#  if defined(__GNUC__) && (__GNUC__ >= 4)
+#   define EXV_IMPORT __attribute__ ((visibility("default")))
+#   define EXV_EXPORT __attribute__ ((visibility("default")))
+#   define EXV_DLLLOCAL __attribute__ ((visibility("hidden")))
+#   define EXV_DLLPUBLIC __attribute__ ((visibility("default")))
+#  elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
+#   define EXV_IMPORT __global
+#   define EXV_EXPORT __global
+#   define EXV_DLLLOCAL __hidden
+#   define EXV_DLLPUBLIC __global
+#  else
+#   define EXV_IMPORT
+#   define EXV_EXPORT
+#   define EXV_DLLLOCAL
+#   define EXV_DLLPUBLIC
+#  endif
+# else /* ! EXV_WANT_VISIBILITY_SUPPORT */
 #  define EXV_IMPORT
 #  define EXV_EXPORT
 #  define EXV_DLLLOCAL
 #  define EXV_DLLPUBLIC
-# endif /* ! EXV_HAVE_GXXCLASSVISIBILITY */
+# endif /* ! EXV_WANT_VISIBILITY_SUPPORT */
 #endif /* ! WIN32 */
 
 /* Define EXIV2API for DLL builds */
diff --git a/config/configure.ac b/config/configure.ac
index cceec31..9080811 100644
--- a/config/configure.ac
+++ b/config/configure.ac
@@ -105,16 +105,25 @@ if test "$USE_TRACKING" = "yes"; then
 fi
 AC_SUBST(DEP_TRACKING,$DEP_TRACKING)
 
-AC_MSG_CHECKING([whether to enable g++ visibility support])
+AC_MSG_CHECKING([whether to enable symbol visibility support])
 AC_ARG_ENABLE(visibility,
-    [  --disable-visibility    do not use g++ visibility support ],
-    GXX_VISIBILITY=$enableval, GXX_VISIBILITY=yes)
-AC_MSG_RESULT($GXX_VISIBILITY)
-if test "$GXX_VISIBILITY" = "yes"; then
-    AX_CXX_CHECK_FLAG(-fvisibility-inlines-hidden,[],[],[GXX_VISIBILITY=yes],[GXX_VISIBILITY=no])
-    if test "$GXX_VISIBILITY" = "yes"; then
-        CXXFLAGS="${CXXFLAGS} -fvisibility=hidden -fvisibility-inlines-hidden"
-        AC_DEFINE(HAVE_GXXCLASSVISIBILITY,1)
+    [  --disable-visibility    do not use symbol visibility support ],
+    VISIBILITY_SUPPORT=$enableval, VISIBILITY_SUPPORT=yes)
+AC_MSG_RESULT($VISIBILITY_SUPPORT)
+if test "$VISIBILITY_SUPPORT" = "yes"; then
+    # Sun Studio C++ compiler (which apparently ignores -fvisibility-inlines-hidden)
+    AX_CXX_CHECK_FLAG(-xldscope=hidden,[],[],[VISIBILITY_SUPPORT=yes],[VISIBILITY_SUPPORT=no])
+    if test "$VISIBILITY_SUPPORT" = "yes"; then
+        CXXFLAGS="${CXXFLAGS} -xldscope=hidden"
+    else
+        # GNU g++
+        AX_CXX_CHECK_FLAG(-fvisibility-inlines-hidden,[],[],[VISIBILITY_SUPPORT=yes],[VISIBILITY_SUPPORT=no])
+    	if test "$VISIBILITY_SUPPORT" = "yes"; then
+           CXXFLAGS="${CXXFLAGS} -fvisibility=hidden -fvisibility-inlines-hidden"
+        fi
+    fi
+    if test "$VISIBILITY_SUPPORT" = "yes"; then
+        AC_DEFINE(WANT_VISIBILITY_SUPPORT)
     fi
     if test "$enable_shared" = "yes"; then
         AC_DEFINE(HAVE_DLL)
@@ -219,9 +228,9 @@ yes) echo "-- Build a shared library......... YES" ;;
 *)   echo "-- Build a shared library......... NO" ;;
 esac
 
-case "$GXX_VISIBILITY" in
-yes) echo "-- Use g++ visibility support..... YES" ;;
-*)   echo "-- Use g++ visibility support..... NO" ;;
+case "$VISIBILITY_SUPPORT" in
+yes) echo "-- Use symbol visibility support.. YES" ;;
+*)   echo "-- Use symbol visibility support.. NO" ;;
 esac
 
 case "x$HAVE_LIBZ" in

-- 
exiv2 packaging



More information about the pkg-kde-commits mailing list