"Fossies" - the Fresh Open Source Software Archive

Member "libextractor-1.11/m4/visibility.m4" (2 Dec 2018, 3351 Bytes) of package /linux/privat/libextractor-1.11.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the last Fossies "Diffs" side-by-side code changes report for "visibility.m4": 1.8_vs_1.9.

    1 # visibility.m4 serial 5 (gettext-0.18.2)
    2 dnl Copyright (C) 2005, 2008, 2010-2016 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 Mac OS 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     dnl First, check whether -Werror can be added to the command line, or
   30     dnl whether it leads to an error because of some other option that the
   31     dnl user has put into $CC $CFLAGS $CPPFLAGS.
   32     AC_MSG_CHECKING([whether the -Werror option is usable])
   33     AC_CACHE_VAL([gl_cv_cc_vis_werror], [
   34       gl_save_CFLAGS="$CFLAGS"
   35       CFLAGS="$CFLAGS -Werror"
   36       AC_COMPILE_IFELSE(
   37         [AC_LANG_PROGRAM([[]], [[]])],
   38         [gl_cv_cc_vis_werror=yes],
   39         [gl_cv_cc_vis_werror=no])
   40       CFLAGS="$gl_save_CFLAGS"])
   41     AC_MSG_RESULT([$gl_cv_cc_vis_werror])
   42     dnl Now check whether visibility declarations are supported.
   43     AC_MSG_CHECKING([for simple visibility declarations])
   44     AC_CACHE_VAL([gl_cv_cc_visibility], [
   45       gl_save_CFLAGS="$CFLAGS"
   46       CFLAGS="$CFLAGS -fvisibility=hidden"
   47       dnl We use the option -Werror and a function dummyfunc, because on some
   48       dnl platforms (Cygwin 1.7) the use of -fvisibility triggers a warning
   49       dnl "visibility attribute not supported in this configuration; ignored"
   50       dnl at the first function definition in every compilation unit, and we
   51       dnl don't want to use the option in this case.
   52       if test $gl_cv_cc_vis_werror = yes; then
   53         CFLAGS="$CFLAGS -Werror"
   54       fi
   55       AC_COMPILE_IFELSE(
   56         [AC_LANG_PROGRAM(
   57            [[extern __attribute__((__visibility__("hidden"))) int hiddenvar;
   58              extern __attribute__((__visibility__("default"))) int exportedvar;
   59              extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void);
   60              extern __attribute__((__visibility__("default"))) int exportedfunc (void);
   61              void dummyfunc (void) {}
   62            ]],
   63            [[]])],
   64         [gl_cv_cc_visibility=yes],
   65         [gl_cv_cc_visibility=no])
   66       CFLAGS="$gl_save_CFLAGS"])
   67     AC_MSG_RESULT([$gl_cv_cc_visibility])
   68     if test $gl_cv_cc_visibility = yes; then
   69       CFLAG_VISIBILITY="-fvisibility=hidden"
   70       HAVE_VISIBILITY=1
   71     fi
   72   fi
   73   AC_SUBST([CFLAG_VISIBILITY])
   74   AC_SUBST([HAVE_VISIBILITY])
   75   AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY],
   76     [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.])
   77 ])