fix suncc visibility support

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12109 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Michael Jerris 2009-02-17 19:25:42 +00:00
parent 00666fde86
commit 900907a205
2 changed files with 23 additions and 25 deletions

View File

@ -184,33 +184,31 @@ if test "x${enable_visibility}" != "xno" ; then
CFLAGS="${save_CFLAGS}"
;;
# sun)
# save_CFLAGS="${CFLAGS}"
# CFLAGS="${CFLAGS} -xldscope=hidden"
# AC_MSG_CHECKING([whether the compiler supports -xldscope=hidden])
# AC_COMPILE_IFELSE(
# [AC_LANG_PROGRAM(
# [int foo __attribute__ ((visibility("default")));],
# [;]
# )],
#
# [AC_MSG_RESULT([yes])
# APR_ADDTO([SWITCH_AM_CFLAGS], [-xldscope=hidden -DSWITCH_API_VISIBILITY=1 -DHAVE_VISIBILITY=1])
# APR_ADDTO([SWITCH_AM_CXXFLAGS], [-xldscope=hidden -DSWITCH_API_VISIBILITY=1 -DHAVE_VISIBILITY=1])
# HAVE_VISIBILITY="yes"],
#
# [AC_MSG_RESULT([no])]
# )
# CFLAGS="${save_CFLAGS}"
# ;;
#
sun)
save_CFLAGS="${CFLAGS}"
CFLAGS="${CFLAGS} -xldscope=hidden"
AC_MSG_CHECKING([whether the compiler supports -xldscope=hidden])
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[int foo __attribute__ ((visibility("default")));],
[;]
)],
[AC_MSG_RESULT([yes])
APR_ADDTO([SWITCH_AM_CFLAGS], [-xldscope=hidden -DSWITCH_API_VISIBILITY=1 -DHAVE_VISIBILITY=1])
APR_ADDTO([SWITCH_AM_CXXFLAGS], [-xldscope=hidden -DSWITCH_API_VISIBILITY=1 -DHAVE_VISIBILITY=1])
HAVE_VISIBILITY="yes"],
[AC_MSG_RESULT([no])]
)
CFLAGS="${save_CFLAGS}"
;;
*)
if test "x${enable_visibility}" = "xyes" ; then
AC_MSG_ERROR([Non-GNU compilers are currently unsupported])
# AC_MSG_ERROR([Non-GNU / SUN compilers are currently unsupported])
AC_MSG_ERROR([Non-GNU / SUN compilers are currently unsupported])
else
AC_MSG_WARN([Non-GNU compilers are currently unsupported])
# AC_MSG_WARN([Non-GNU / SUN compilers are currently unsupported])
AC_MSG_WARN([Non-GNU / SUN compilers are currently unsupported])
fi
;;
esac

View File

@ -165,7 +165,7 @@ typedef int gid_t;
#define SWITCH_DECLARE_CLASS
#else //not win32
#define O_BINARY 0
#if (defined(__GNUC__) || defined(__SUNCC__)) && defined(SWITCH_API_VISIBILITY)
#if (defined(__GNUC__) || defined(__SUNPRO_CC) || defined (__SUNPRO_C)) && defined(SWITCH_API_VISIBILITY)
#define SWITCH_DECLARE(type) __attribute__((visibility("default"))) type
#define SWITCH_DECLARE_NONSTD(type) __attribute__((visibility("default"))) type
#define SWITCH_DECLARE_DATA __attribute__((visibility("default")))