Annotation of embedaddon/libiconv/libcharset/m4/visibility.m4, revision 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>