[Freeswitch-svn] [commit] r1804 - in freeswitch/branches/stkn: . src/include

Freeswitch SVN stkn at freeswitch.org
Mon Jul 10 00:36:40 EDT 2006


Author: stkn
Date: Mon Jul 10 00:36:39 2006
New Revision: 1804

Modified:
   freeswitch/branches/stkn/Makefile.am
   freeswitch/branches/stkn/Makefile.in
   freeswitch/branches/stkn/configure
   freeswitch/branches/stkn/configure.in
   freeswitch/branches/stkn/src/include/switch_platform.h

Log:
Add basic support for -fvisibility support with gcc-4.x (and higher) (linux only)

Modified: freeswitch/branches/stkn/Makefile.am
==============================================================================
--- freeswitch/branches/stkn/Makefile.am	(original)
+++ freeswitch/branches/stkn/Makefile.am	Mon Jul 10 00:36:39 2006
@@ -24,6 +24,10 @@
 AM_CFLAGS += -fsigned-char
 endif
 endif
+
+if USE_GCCVISIBILITY
+AM_CFLAGS += -fvisibility=hidden
+endif
 endif
 
 if CRASHPROT

Modified: freeswitch/branches/stkn/Makefile.in
==============================================================================
--- freeswitch/branches/stkn/Makefile.in	(original)
+++ freeswitch/branches/stkn/Makefile.in	Mon Jul 10 00:36:39 2006
@@ -41,10 +41,11 @@
 host_triplet = @host@
 @ISLINUX_TRUE at am__append_1 = -Wl,-E
 @ISGCC_TRUE@@ISLINUX_TRUE@@ISPPC_TRUE at am__append_2 = -fsigned-char
- at CRASHPROT_TRUE@am__append_3 = -DCRASH_PROT
- at IS64BITLINUX_TRUE@am__append_4 = -m64 -march=k8 -fPIC -D_64BIT_MACHINE_
- at IS64BITLINUX_TRUE@am__append_5 = --enable-64bit
- at ISMAC_TRUE@am__append_6 = -DMACOSX
+ at ISLINUX_TRUE@@USE_GCCVISIBILITY_TRUE at am__append_3 = -fvisibility=hidden
+ at CRASHPROT_TRUE@am__append_4 = -DCRASH_PROT
+ at IS64BITLINUX_TRUE@am__append_5 = -m64 -march=k8 -fPIC -D_64BIT_MACHINE_
+ at IS64BITLINUX_TRUE@am__append_6 = --enable-64bit
+ at ISMAC_TRUE@am__append_7 = -DMACOSX
 bin_PROGRAMS = freeswitch$(EXEEXT)
 DIST_COMMON = README $(am__configure_deps) $(library_include_HEADERS) \
 	$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
@@ -199,6 +200,8 @@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
+USE_GCCVISIBILITY_FALSE = @USE_GCCVISIBILITY_FALSE@
+USE_GCCVISIBILITY_TRUE = @USE_GCCVISIBILITY_TRUE@
 VERSION = @VERSION@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
@@ -255,7 +258,7 @@
 AM_CFLAGS = -I$(PREFIX)/include $(shell $(APR_CONFIG) --cflags \
 	--cppflags --includes) -I${prefix}/include/srtp $(shell \
 	$(APU_CONFIG) --includes) $(am__append_2) $(am__append_3) \
-	$(am__append_4) $(am__append_6) -fPIC -Wall \
+	$(am__append_4) $(am__append_5) $(am__append_7) -fPIC -Wall \
 	-I$(PWD)/src/sqlite -I$(PWD) -I$(PWD)/src/include \
 	-I$(PREFIX)/include -DSWITCH_MOD_DIR=\"$(PREFIX)/mod\" \
 	-DSWITCH_PREFIX_DIR=\"$(PREFIX)\" \
@@ -268,7 +271,7 @@
 	$(shell $(APU_CONFIG) --link-ld --libs ) -lm \
 	-L/usr/local/lib/db42 -L/usr/local/lib $(am__append_1)
 OSARCH = $(shell uname -s)
-AM_CFGARGS = $(am__append_5)
+AM_CFGARGS = $(am__append_6)
 @ISMAC_FALSE at SOLINK = -shared -Xlinker -x
 
 #put elsif win here

Modified: freeswitch/branches/stkn/configure
==============================================================================
--- freeswitch/branches/stkn/configure	(original)
+++ freeswitch/branches/stkn/configure	Mon Jul 10 00:36:39 2006
@@ -466,7 +466,7 @@
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBOBJS CRASHPROT_TRUE CRASHPROT_FALSE ISLINUX_TRUE ISLINUX_FALSE ISMAC_TRUE ISMAC_FALSE IS64BITLINUX_TRUE IS64BITLINUX_FALSE ISPPC_TRUE ISPPC_FALSE ISGCC_TRUE ISGCC_FALSE LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBOBJS CRASHPROT_TRUE CRASHPROT_FALSE ISLINUX_TRUE ISLINUX_FALSE ISMAC_TRUE ISMAC_FALSE IS64BITLINUX_TRUE IS64BITLINUX_FALSE ISPPC_TRUE ISPPC_FALSE ISGCC_TRUE ISGCC_FALSE USE_GCCVISIBILITY_TRUE USE_GCCVISIBILITY_FALSE LTLIBOBJS'
 ac_subst_files=''
 
 # Initialize some variables set by options.
@@ -1038,6 +1038,8 @@
                           optimize for fast installation [default=yes]
   --disable-libtool-lock  avoid locking (might break parallel builds)
   --enable-crash-protection         Compile with CRASH Protection
+  --enable-visibility     Enable -fvisibility=hidden on Linux systems with GCC
+                          4.0 and higher
 
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
@@ -3827,7 +3829,7 @@
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 3830 "configure"' > conftest.$ac_ext
+  echo '#line 3832 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -5426,7 +5428,7 @@
 
 
 # Provide some information about the compiler.
-echo "$as_me:5429:" \
+echo "$as_me:5431:" \
      "checking for Fortran 77 compiler version" >&5
 ac_compiler=`set X $ac_compile; echo $2`
 { (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
@@ -6550,11 +6552,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:6553: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:6555: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:6557: \$? = $ac_status" >&5
+   echo "$as_me:6559: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -6818,11 +6820,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:6821: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:6823: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:6825: \$? = $ac_status" >&5
+   echo "$as_me:6827: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -6922,11 +6924,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:6925: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:6927: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:6929: \$? = $ac_status" >&5
+   echo "$as_me:6931: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -9304,7 +9306,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 9307 "configure"
+#line 9309 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -9404,7 +9406,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 9407 "configure"
+#line 9409 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11744,11 +11746,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:11747: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:11749: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:11751: \$? = $ac_status" >&5
+   echo "$as_me:11753: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -11848,11 +11850,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:11851: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:11853: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:11855: \$? = $ac_status" >&5
+   echo "$as_me:11857: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -13455,11 +13457,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13458: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13460: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:13462: \$? = $ac_status" >&5
+   echo "$as_me:13464: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -13559,11 +13561,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13562: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13564: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:13566: \$? = $ac_status" >&5
+   echo "$as_me:13568: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -15799,11 +15801,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15802: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:15804: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:15806: \$? = $ac_status" >&5
+   echo "$as_me:15808: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -16067,11 +16069,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16070: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:16072: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:16074: \$? = $ac_status" >&5
+   echo "$as_me:16076: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -16171,11 +16173,11 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16174: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:16176: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:16178: \$? = $ac_status" >&5
+   echo "$as_me:16180: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -20863,6 +20865,38 @@
 fi
 
 
+#
+# check for gcc -fvisibility support
+#
+# Check whether --enable-visibility or --disable-visibility was given.
+if test "${enable_visibility+set}" = set; then
+  enableval="$enable_visibility"
+
+else
+  enable_visibility="no"
+fi;
+
+GCC_VER=0
+if test "x$GCC" = "xyes" && test "x$enable_visibility" = "xyes"
+then
+	# check gcc version
+	echo "$as_me:$LINENO: checking GCC Version" >&5
+echo $ECHO_N "checking GCC Version... $ECHO_C" >&6
+	GCC_VER=`echo | $CC -E -dM - | $AWK '/__GNUC__/{ print $3 }'`
+	echo "$as_me:$LINENO: result: $GCC_VER" >&5
+echo "${ECHO_T}$GCC_VER" >&6
+fi
+
+
+if test $GCC_VER -ge 4; then
+  USE_GCCVISIBILITY_TRUE=
+  USE_GCCVISIBILITY_FALSE='#'
+else
+  USE_GCCVISIBILITY_TRUE='#'
+  USE_GCCVISIBILITY_FALSE=
+fi
+
+
           ac_config_files="$ac_config_files src/include/switch_version.h"
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
@@ -21018,6 +21052,13 @@
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${USE_GCCVISIBILITY_TRUE}" && test -z "${USE_GCCVISIBILITY_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"USE_GCCVISIBILITY\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"USE_GCCVISIBILITY\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 
 : ${CONFIG_STATUS=./config.status}
 ac_clean_files_save=$ac_clean_files
@@ -21629,6 +21670,8 @@
 s, at ISPPC_FALSE@,$ISPPC_FALSE,;t t
 s, at ISGCC_TRUE@,$ISGCC_TRUE,;t t
 s, at ISGCC_FALSE@,$ISGCC_FALSE,;t t
+s, at USE_GCCVISIBILITY_TRUE@,$USE_GCCVISIBILITY_TRUE,;t t
+s, at USE_GCCVISIBILITY_FALSE@,$USE_GCCVISIBILITY_FALSE,;t t
 s, at LTLIBOBJS@,$LTLIBOBJS,;t t
 CEOF
 

Modified: freeswitch/branches/stkn/configure.in
==============================================================================
--- freeswitch/branches/stkn/configure.in	(original)
+++ freeswitch/branches/stkn/configure.in	Mon Jul 10 00:36:39 2006
@@ -66,4 +66,21 @@
 AM_CONDITIONAL(ISPPC, [test "$MACHINE" = "ppc"])
 AM_CONDITIONAL(ISGCC, [test "$GCC" = "yes"])
 
+#
+# check for gcc -fvisibility support
+#
+AC_ARG_ENABLE([visibility],
+		[AC_HELP_STRING([--enable-visibility],
+				[Enable -fvisibility=hidden on Linux systems with GCC 4.0 and higher])],,[enable_visibility="no"])
+
+GCC_VER=0
+if test "x$GCC" = "xyes" && test "x$enable_visibility" = "xyes"
+then
+	# check gcc version
+	AC_MSG_CHECKING([GCC Version])
+	GCC_VER=`echo | $CC -E -dM - | $AWK '/__GNUC__/{ print $3 }'`
+	AC_MSG_RESULT([$GCC_VER])
+fi
+AM_CONDITIONAL(USE_GCCVISIBILITY, [test $GCC_VER -ge 4])
+
 AC_OUTPUT([src/include/switch_version.h])

Modified: freeswitch/branches/stkn/src/include/switch_platform.h
==============================================================================
--- freeswitch/branches/stkn/src/include/switch_platform.h	(original)
+++ freeswitch/branches/stkn/src/include/switch_platform.h	Mon Jul 10 00:36:39 2006
@@ -139,7 +139,14 @@
 #define SWITCH_MOD_DECLARE(type)		__declspec(dllimport) type __cdecl
 #endif
 #define SIGHUP SIGTERM
-#else //not win32
+
+#elif defined(__linux__) && defined(__GNUC__) && __GNUC__ >= 4
+#define SWITCH_DECLARE(type)			__attribute__ ((visibility("default"))) type
+#define SWITCH_DECLARE_NONSTD(type)		__attribute__ ((visibility("default"))) type
+#define SWITCH_MOD_DECLARE(type)		__attribute__ ((visibility("default"))) type
+#define SWITCH_DECLARE_DATA			__attribute__ ((visibility("default")))
+
+#else //not win32 or linux w/ >=gcc-4.0
 #define SWITCH_DECLARE(type) type
 #define SWITCH_DECLARE_NONSTD(type) type
 #define SWITCH_MOD_DECLARE(type) type



More information about the Freeswitch-svn mailing list