diff options
author | bkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-07-20 23:37:27 +0000 |
---|---|---|
committer | bkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-07-20 23:37:27 +0000 |
commit | 4ffa185bd44b3be13462e963e8cef33a7c3fcb56 (patch) | |
tree | 65e37e23e7c174d37c16abc3c6c9928ba202b8fd /libstdc++-v3/acinclude.m4 | |
parent | c62c86b934cb510653da768a29101a258ce7f6a3 (diff) | |
download | gcc-4ffa185bd44b3be13462e963e8cef33a7c3fcb56.tar.gz |
2006-07-20 Benjamin Kosnik <bkoz@redhat.com>
Jakub Jelinek <jakub@redhat.com>
PR libstdc++/19664 round 1
* acinclude.m4 (GLIBCXX_ENABLE_VISIBILITY): Check it.
* configure.ac: Use it.
* configure: Regenerate.
* docs/html/configopts.html: Document it.
* include/Makefile.am: Slip in to c++config.
* include/Makefile.in: Regenerate.
* include/bits/c++config (_GLIBCXX_VISIBILITY): New.
(_GLIBCXX_BEGIN_NAMESPACE): Use it.
(_GLIBCXX_END_NAMESPACE): Use it.
(_GLIBCXX_BEGIN_NESTED_NAMESPACE): Use it.
(_GLIBCXX_END_NESTED_NAMESPACE): Use it.
* src/debug.cc: Mark __gnu_internal namespace with hidden
visibility attribute.
* src/ext-inst.cc: Same.
* src/globals_io.cc: Same.
* src/globals_locale.cc: Same.
* src/ios_init.cc: Same.
* src/locale.cc: Same.
* src/mt_allocator.cc: Same.
* src/pool_allocator.cc: Same.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@115632 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/acinclude.m4')
-rw-r--r-- | libstdc++-v3/acinclude.m4 | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index c160a1a3366..a15e351fc0c 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -2101,6 +2101,38 @@ EOF dnl +dnl Allow visibility attributes to be used on namespaces, objects, etc. +dnl +dnl --enable-visibility enables attempt to use visibility attributes. +dnl --disable-visibility turns off all use of visibility attributes. +dnl + Usage: GLIBCXX_ENABLE_VISIBILITY[(DEFAULT)] +dnl Where DEFAULT is 'yes'. +dnl +AC_DEFUN([GLIBCXX_ENABLE_VISIBILITY], [ +GLIBCXX_ENABLE(visibility,$1,,[enables visibility safe usage]) + +if test x$enable_visibility = xyes ; then + dnl all hail libgfortran + dnl Check whether the target supports hidden visibility. + AC_CACHE_CHECK([whether the target supports hidden visibility], + have_attribute_visibility, [ + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror" + AC_TRY_COMPILE([void __attribute__((visibility("hidden"))) foo(void) { }], + [], have_attribute_visibility=yes, + have_attribute_visibility=no) + CFLAGS="$save_CFLAGS"]) + if test $have_attribute_visibility = no; then + enable_visibility=no + fi +fi + +GLIBCXX_CONDITIONAL(ENABLE_VISIBILITY, test $enable_visibility = yes) +AC_MSG_NOTICE([visibility supported: $enable_visibility]) +]) + + +dnl dnl Add version tags to symbols in shared library (or not), additionally dnl marking other symbols as private/local (or not). dnl |