summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@gmail.com>2012-11-29 23:08:25 +0000
committerMorgan Deters <mdeters@gmail.com>2012-11-29 23:08:25 +0000
commit95fc20b5dffb8eb6fe11b53d72d7e6750e86fa49 (patch)
tree529d11c6baa59be9a8c86374cdec5cabfa570150
parent7bb97d7258303c5ac228222baccb6bffe3c55f50 (diff)
Fix for hidden symbols in library on Mac. It's a strange issue to do with
explicit template instantiation rules, -fvisibility=hidden, and the way that Apple distributes libstdc++. (this commit was certified error- and warning-free by the test-and-commit script.)
-rw-r--r--configure.ac9
1 files changed, 9 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index 70351681b..e8be43fc1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -751,6 +751,15 @@ AC_SUBST([WNO_UNINITIALIZED])
AC_SUBST([WNO_UNUSED_VARIABLE])
AC_SUBST([FNO_STRICT_ALIASING])
+# On Mac, we have to fix the visibility of standard library symbols.
+# Otherwise, exported template instantiations---even though explicitly
+# CVC4_PUBLIC, can be generated as symbols with internal-only linkage.
+# Presumably, Apple is distributing a libstdc++ that is built *without*
+# --enable-libstdcxx-visibility (?)
+if test "$target_vendor" = apple; then
+ CVC4CPPFLAGS="${CVC4CPPFLAGS:+$CVC4CPPFLAGS }-D_GLIBCXX_VISIBILITY_DEFAULT=\"__attribute__((__visibility__(\\\"default\\\")))\""
+fi
+
# Doxygen configuration
AC_ARG_ENABLE([internals-documentation],
[AS_HELP_STRING([--enable-internals-documentation],
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback