From: Morgan Deters Date: Thu, 29 Nov 2012 23:08:25 +0000 (+0000) Subject: Fix for hidden symbols in library on Mac. It's a strange issue to do with X-Git-Tag: cvc5-1.0.0~7527 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=95fc20b5dffb8eb6fe11b53d72d7e6750e86fa49;p=cvc5.git 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.) --- 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],