Annotation of embedaddon/libiconv/libcharset/m4/visibility.m4, revision 1.1.1.1

1.1       misho       1: # visibility.m4 serial 1 (gettext-0.15)
                      2: dnl Copyright (C) 2005 Free Software Foundation, Inc.
                      3: dnl This file is free software; the Free Software Foundation
                      4: dnl gives unlimited permission to copy and/or distribute it,
                      5: dnl with or without modifications, as long as this notice is preserved.
                      6: 
                      7: dnl From Bruno Haible.
                      8: 
                      9: dnl Tests whether the compiler supports the command-line option
                     10: dnl -fvisibility=hidden and the function and variable attributes
                     11: dnl __attribute__((__visibility__("hidden"))) and
                     12: dnl __attribute__((__visibility__("default"))).
                     13: dnl Does *not* test for __visibility__("protected") - which has tricky
                     14: dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on
                     15: dnl MacOS X.
                     16: dnl Does *not* test for __visibility__("internal") - which has processor
                     17: dnl dependent semantics.
                     18: dnl Does *not* test for #pragma GCC visibility push(hidden) - which is
                     19: dnl "really only recommended for legacy code".
                     20: dnl Set the variable CFLAG_VISIBILITY.
                     21: dnl Defines and sets the variable HAVE_VISIBILITY.
                     22: 
                     23: AC_DEFUN([gl_VISIBILITY],
                     24: [
                     25:   AC_REQUIRE([AC_PROG_CC])
                     26:   CFLAG_VISIBILITY=
                     27:   HAVE_VISIBILITY=0
                     28:   if test -n "$GCC"; then
                     29:     AC_MSG_CHECKING([for simple visibility declarations])
                     30:     AC_CACHE_VAL(gl_cv_cc_visibility, [
                     31:       gl_save_CFLAGS="$CFLAGS"
                     32:       CFLAGS="$CFLAGS -fvisibility=hidden"
                     33:       AC_TRY_COMPILE(
                     34:         [extern __attribute__((__visibility__("hidden"))) int hiddenvar;
                     35:          extern __attribute__((__visibility__("default"))) int exportedvar;
                     36:          extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void);
                     37:          extern __attribute__((__visibility__("default"))) int exportedfunc (void);],
                     38:         [],
                     39:         gl_cv_cc_visibility=yes,
                     40:         gl_cv_cc_visibility=no)
                     41:       CFLAGS="$gl_save_CFLAGS"])
                     42:     AC_MSG_RESULT([$gl_cv_cc_visibility])
                     43:     if test $gl_cv_cc_visibility = yes; then
                     44:       CFLAG_VISIBILITY="-fvisibility=hidden"
                     45:       HAVE_VISIBILITY=1
                     46:     fi
                     47:   fi
                     48:   AC_SUBST([CFLAG_VISIBILITY])
                     49:   AC_SUBST([HAVE_VISIBILITY])
                     50:   AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY],
                     51:     [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.])
                     52: ])

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>