From 95fc20b5dffb8eb6fe11b53d72d7e6750e86fa49 Mon Sep 17 00:00:00 2001 From: Morgan Deters Date: Thu, 29 Nov 2012 23:08:25 +0000 Subject: [PATCH] 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.) --- configure.ac | 9 +++++++++ 1 file changed, 9 insertions(+) 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], -- 2.30.2