1085.1.4
by Monty Taylor
pandora-build v1 |
1 |
dnl Copyright (C) 2005, 2008 Free Software Foundation, Inc. |
1259.2.1
by Monty Taylor
Updates to pandora-build visibility settings. |
2 |
dnl Copyright (C) 2009 Monty Taylor |
1085.1.4
by Monty Taylor
pandora-build v1 |
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 |
||
1259.2.1
by Monty Taylor
Updates to pandora-build visibility settings. |
23 |
AC_DEFUN([PANDORA_VISIBILITY], |
1085.1.4
by Monty Taylor
pandora-build v1 |
24 |
[
|
25 |
AC_REQUIRE([AC_PROG_CC]) |
|
1259.2.1
by Monty Taylor
Updates to pandora-build visibility settings. |
26 |
AC_REQUIRE([PANDORA_PLATFORM]) |
1085.1.4
by Monty Taylor
pandora-build v1 |
27 |
CFLAG_VISIBILITY= |
28 |
HAVE_VISIBILITY=0 |
|
1259.2.1
by Monty Taylor
Updates to pandora-build visibility settings. |
29 |
AS_IF([test -n "$GCC"],[ |
1085.1.4
by Monty Taylor
pandora-build v1 |
30 |
AC_MSG_CHECKING([for simple visibility declarations]) |
31 |
AC_CACHE_VAL([gl_cv_cc_visibility], [ |
|
32 |
gl_save_CFLAGS="$CFLAGS" |
|
33 |
CFLAGS="$CFLAGS -fvisibility=hidden" |
|
34 |
AC_TRY_COMPILE( |
|
35 |
[extern __attribute__((__visibility__("hidden"))) int hiddenvar; |
|
36 |
extern __attribute__((__visibility__("default"))) int exportedvar; |
|
37 |
extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); |
|
38 |
extern __attribute__((__visibility__("default"))) int exportedfunc (void);], |
|
39 |
[],
|
|
40 |
[gl_cv_cc_visibility=yes], |
|
41 |
[gl_cv_cc_visibility=no]) |
|
42 |
CFLAGS="$gl_save_CFLAGS"]) |
|
43 |
AC_MSG_RESULT([$gl_cv_cc_visibility]) |
|
44 |
if test $gl_cv_cc_visibility = yes; then |
|
45 |
CFLAG_VISIBILITY="-fvisibility=hidden" |
|
46 |
HAVE_VISIBILITY=1 |
|
47 |
fi
|
|
1259.2.1
by Monty Taylor
Updates to pandora-build visibility settings. |
48 |
])
|
49 |
AS_IF([test "x$SUNCC" = "xyes"],[ |
|
50 |
CFLAG_VISIBILITY="-xldscope=hidden" |
|
51 |
HAVE_VISIBILITY=1 |
|
52 |
])
|
|
1085.1.4
by Monty Taylor
pandora-build v1 |
53 |
AC_SUBST([CFLAG_VISIBILITY]) |
54 |
AC_SUBST([HAVE_VISIBILITY]) |
|
55 |
AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY], |
|
56 |
[Define to 1 or 0, depending whether the compiler supports simple visibility declarations.]) |
|
57 |
])
|