| visibility.m4 | visibility.m4 | |||
|---|---|---|---|---|
| # visibility.m4 serial 1 (gettext-0.15) | # visibility.m4 serial 3 (gettext-0.18) | |||
| dnl Copyright (C) 2005 Free Software Foundation, Inc. | dnl Copyright (C) 2005, 2008-2010 Free Software Foundation, Inc. | |||
| dnl This file is free software; the Free Software Foundation | dnl This file is free software; the Free Software Foundation | |||
| dnl gives unlimited permission to copy and/or distribute it, | dnl gives unlimited permission to copy and/or distribute it, | |||
| dnl with or without modifications, as long as this notice is preserved. | dnl with or without modifications, as long as this notice is preserved. | |||
| dnl From Bruno Haible. | dnl From Bruno Haible. | |||
| dnl Tests whether the compiler supports the command-line option | dnl Tests whether the compiler supports the command-line option | |||
| dnl -fvisibility=hidden and the function and variable attributes | dnl -fvisibility=hidden and the function and variable attributes | |||
| dnl __attribute__((__visibility__("hidden"))) and | dnl __attribute__((__visibility__("hidden"))) and | |||
| dnl __attribute__((__visibility__("default"))). | dnl __attribute__((__visibility__("default"))). | |||
| skipping to change at line 29 | skipping to change at line 29 | |||
| dnl "really only recommended for legacy code". | dnl "really only recommended for legacy code". | |||
| dnl Set the variable CFLAG_VISIBILITY. | dnl Set the variable CFLAG_VISIBILITY. | |||
| dnl Defines and sets the variable HAVE_VISIBILITY. | dnl Defines and sets the variable HAVE_VISIBILITY. | |||
| AC_DEFUN([gl_VISIBILITY], | AC_DEFUN([gl_VISIBILITY], | |||
| [ | [ | |||
| AC_REQUIRE([AC_PROG_CC]) | AC_REQUIRE([AC_PROG_CC]) | |||
| CFLAG_VISIBILITY= | CFLAG_VISIBILITY= | |||
| HAVE_VISIBILITY=0 | HAVE_VISIBILITY=0 | |||
| if test -n "$GCC"; then | if test -n "$GCC"; then | |||
| dnl First, check whether -Werror can be added to the command line, or | ||||
| dnl whether it leads to an error because of some other option that the | ||||
| dnl user has put into $CC $CFLAGS $CPPFLAGS. | ||||
| AC_MSG_CHECKING([whether the -Werror option is usable]) | ||||
| AC_CACHE_VAL([gl_cv_cc_vis_werror], [ | ||||
| gl_save_CFLAGS="$CFLAGS" | ||||
| CFLAGS="$CFLAGS -Werror" | ||||
| AC_TRY_COMPILE([], [], | ||||
| [gl_cv_cc_vis_werror=yes], | ||||
| [gl_cv_cc_vis_werror=no]) | ||||
| CFLAGS="$gl_save_CFLAGS"]) | ||||
| AC_MSG_RESULT([$gl_cv_cc_vis_werror]) | ||||
| dnl Now check whether visibility declarations are supported. | ||||
| AC_MSG_CHECKING([for simple visibility declarations]) | AC_MSG_CHECKING([for simple visibility declarations]) | |||
| AC_CACHE_VAL(gl_cv_cc_visibility, [ | AC_CACHE_VAL([gl_cv_cc_visibility], [ | |||
| gl_save_CFLAGS="$CFLAGS" | gl_save_CFLAGS="$CFLAGS" | |||
| CFLAGS="$CFLAGS -fvisibility=hidden" | CFLAGS="$CFLAGS -fvisibility=hidden" | |||
| dnl We use the option -Werror and a function dummyfunc, because on so | ||||
| me | ||||
| dnl platforms (Cygwin 1.7) the use of -fvisibility triggers a warning | ||||
| dnl "visibility attribute not supported in this configuration; ignore | ||||
| d" | ||||
| dnl at the first function definition in every compilation unit, and w | ||||
| e | ||||
| dnl don't want to use the option in this case. | ||||
| if test $gl_cv_cc_vis_werror = yes; then | ||||
| CFLAGS="$CFLAGS -Werror" | ||||
| fi | ||||
| AC_TRY_COMPILE( | AC_TRY_COMPILE( | |||
| [extern __attribute__((__visibility__("hidden"))) int hiddenvar; | [extern __attribute__((__visibility__("hidden"))) int hiddenvar; | |||
| extern __attribute__((__visibility__("default"))) int exportedvar; | extern __attribute__((__visibility__("default"))) int exportedvar; | |||
| extern __attribute__((__visibility__("hidden"))) int hiddenfunc (v oid); | extern __attribute__((__visibility__("hidden"))) int hiddenfunc (v oid); | |||
| extern __attribute__((__visibility__("default"))) int exportedfunc | extern __attribute__((__visibility__("default"))) int exportedfunc | |||
| (void);], | (void); | |||
| void dummyfunc (void) {}], | ||||
| [], | [], | |||
| gl_cv_cc_visibility=yes, | [gl_cv_cc_visibility=yes], | |||
| gl_cv_cc_visibility=no) | [gl_cv_cc_visibility=no]) | |||
| CFLAGS="$gl_save_CFLAGS"]) | CFLAGS="$gl_save_CFLAGS"]) | |||
| AC_MSG_RESULT([$gl_cv_cc_visibility]) | AC_MSG_RESULT([$gl_cv_cc_visibility]) | |||
| if test $gl_cv_cc_visibility = yes; then | if test $gl_cv_cc_visibility = yes; then | |||
| CFLAG_VISIBILITY="-fvisibility=hidden" | CFLAG_VISIBILITY="-fvisibility=hidden" | |||
| HAVE_VISIBILITY=1 | HAVE_VISIBILITY=1 | |||
| fi | fi | |||
| fi | fi | |||
| AC_SUBST([CFLAG_VISIBILITY]) | AC_SUBST([CFLAG_VISIBILITY]) | |||
| AC_SUBST([HAVE_VISIBILITY]) | AC_SUBST([HAVE_VISIBILITY]) | |||
| AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY], | AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY], | |||
| End of changes. 6 change blocks. | ||||
| 7 lines changed or deleted | 32 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||