1085.1.4
by Monty Taylor
pandora-build v1 |
1 |
# visibility.m4 serial 2 (gettext-0.18)
|
2 |
dnl Copyright (C) 2005, 2008 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 |
])
|