Commit d6422b73 authored by Tiago Peixoto's avatar Tiago Peixoto

Fix symbol visibility

Now all symbols are exported by default, except those strictly marked
as hidden.
parent b5da5356
...@@ -91,14 +91,14 @@ AC_ARG_ENABLE([optimization], [AC_HELP_STRING([--disable-optimization], ...@@ -91,14 +91,14 @@ AC_ARG_ENABLE([optimization], [AC_HELP_STRING([--disable-optimization],
[CXXFLAGS="${CXXFLAGS} -O99"] [CXXFLAGS="${CXXFLAGS} -O99"]
) )
AC_MSG_CHECKING(whether to enable hidden visibility...) AC_MSG_CHECKING(whether to enable symbol visibility manipulation...)
AC_ARG_ENABLE([visibility], [AC_HELP_STRING([--disable-visibility], AC_ARG_ENABLE([visibility], [AC_HELP_STRING([--disable-visibility],
[disable hidden visibility [default=enabled] ])], [disable symbol visibility manipulation [default=enabled] ])],
[AC_MSG_RESULT(no)] [AC_MSG_RESULT(no)]
, ,
[AC_MSG_RESULT(yes)] [AC_MSG_RESULT(yes)]
[CXXFLAGS="${CXXFLAGS} -fvisibility=hidden -fvisibility-inlines-hidden"] [CXXFLAGS="${CXXFLAGS} -fvisibility=default -fvisibility-inlines-hidden"]
) )
......
...@@ -51,9 +51,6 @@ template <class Action, class GraphViews, ...@@ -51,9 +51,6 @@ template <class Action, class GraphViews,
struct graph_action; struct graph_action;
} }
// default visibility is necessary for related typeinfo objects to work across
// DSO boundaries
#pragma GCC visibility push(default)
class GraphInterface class GraphInterface
{ {
public: public:
...@@ -214,7 +211,6 @@ private: ...@@ -214,7 +211,6 @@ private:
bool _edge_filter_invert; bool _edge_filter_invert;
bool _edge_filter_active; bool _edge_filter_active;
}; };
#pragma GCC visibility pop
// Exceptions // Exceptions
// ========== // ==========
...@@ -222,7 +218,6 @@ private: ...@@ -222,7 +218,6 @@ private:
// This is the main exception which will be thrown the outside world, when // This is the main exception which will be thrown the outside world, when
// things go wrong // things go wrong
#pragma GCC visibility push(default)
class GraphException : public std::exception class GraphException : public std::exception
{ {
string _error; string _error;
...@@ -233,7 +228,6 @@ public: ...@@ -233,7 +228,6 @@ public:
protected: protected:
virtual void SetError(const string& error) {_error = error;} virtual void SetError(const string& error) {_error = error;}
}; };
#pragma GCC visibility pop
} //namespace graph_tool } //namespace graph_tool
......
...@@ -363,3 +363,4 @@ BOOST_PYTHON_MODULE(libgraph_tool_core) ...@@ -363,3 +363,4 @@ BOOST_PYTHON_MODULE(libgraph_tool_core)
.add_property("install_prefix", &LibInfo::GetInstallPrefix) .add_property("install_prefix", &LibInfo::GetInstallPrefix)
.add_property("python_dir", &LibInfo::GetPythonDir); .add_property("python_dir", &LibInfo::GetPythonDir);
} }
...@@ -106,7 +106,6 @@ using namespace boost; ...@@ -106,7 +106,6 @@ using namespace boost;
// appropriate graph view type and ValueType being 'double' and val = 42.0. // appropriate graph view type and ValueType being 'double' and val = 42.0.
// Whenever no implementation is called, the following exception is thrown // Whenever no implementation is called, the following exception is thrown
#pragma GCC visibility push(default)
class ActionNotFound: public GraphException class ActionNotFound: public GraphException
{ {
public: public:
...@@ -119,7 +118,6 @@ private: ...@@ -119,7 +118,6 @@ private:
const type_info& _action; const type_info& _action;
vector<const type_info*> _args; vector<const type_info*> _args;
}; };
#pragma GCC visibility pop
namespace detail namespace detail
{ {
...@@ -496,7 +494,6 @@ BOOST_MPL_ASSERT_RELATION(n_views::value, == , mpl::int_<3>::value); ...@@ -496,7 +494,6 @@ BOOST_MPL_ASSERT_RELATION(n_views::value, == , mpl::int_<3>::value);
// wrap action to be called, to deal with property maps, i.e., return version // wrap action to be called, to deal with property maps, i.e., return version
// with no bounds checking. // with no bounds checking.
template <class Action> template <class Action>
struct action_wrap struct action_wrap
{ {
......
...@@ -27,7 +27,6 @@ namespace boost ...@@ -27,7 +27,6 @@ namespace boost
{ {
namespace mpl namespace mpl
{ {
// The following is a implementation of a nested for_each loop, which runs a // The following is a implementation of a nested for_each loop, which runs a
// given Action functor for each combination of its arguments, given by the type // given Action functor for each combination of its arguments, given by the type
// ranges, as such: // ranges, as such:
...@@ -327,7 +326,6 @@ struct selected_types ...@@ -327,7 +326,6 @@ struct selected_types
any _a1, _a2, _a3, _a4, _a5; any _a1, _a2, _a3, _a4, _a5;
}; };
} // mpl namespace } // mpl namespace
} // boost namespace } // boost namespace
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment