aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar Marvin Schmidt <marv@exherbo.org> 2020-10-20 00:11:14 +0200
committerAvatar Marvin Schmidt <marv@exherbo.org> 2020-10-24 21:32:22 +0200
commit9cc74b0b688396be0f12c0c4c6593cfaccdd2489 (patch)
treeed4c5f1a1f24e5f605961a6df00a63b13818e298
parent6e995e8d5f0e763b6dd6adef7b014eaf54121334 (diff)
downloadpaludis-9cc74b0b688396be0f12c0c4c6593cfaccdd2489.tar.gz
paludis-9cc74b0b688396be0f12c0c4c6593cfaccdd2489.tar.xz
Fix symbol visibility errors with clang
LabelsDepSpec visibility: 133: >>> test action_TEST 133: Traceback (most recent call last): 133: File "/home/marv/devel/paludis-worktrees/master/python/action_TEST.py", line 21, in <module> 133: from paludis import * 133: ImportError: /home/marv/devel/paludis-worktrees/master/build-clang/python/libpaludispython_3.0.so.300: undefined symbol: _ZN7paludis19spec_tree_internals14BasicInne rNodeINS_8SpecTreeINS_13TypeListEntryINS_20SpecTreeLeafNodeTypeINS_14PackageDepSpecEEENS3_INS4_INS_12BlockDepSpecEEENS3_INS4_INS_13LabelsDepSpecINS_17DependenciesLabelEE EEENS3_INS4_INS_15NamedSetDepSpecEEENS3_INS_21SpecTreeInnerNodeTypeINS_10AllDepSpecEEENS3_INSF_INS_10AnyDepSpecEEENS3_INSF_INS_18ConditionalDepSpecEEENS_12TypeListTailEE EEEEEEEEEEEEESG_EEE6appendISB_EESt10shared_ptrINSU_8NodeTypeIT_E4TypeEERKSX_ISZ_E 133: >>> test action_TEST returned 1 [1s] 133: >>> exiting with error for test action_TEST 1/1 Test #133: python_action ....................***Failed 0.03 sec The missing symbol is: std::shared_ptr<DependencySpecTree::NodeType<paludis::LabelsDepSpec<paludis::DependenciesLabel>>::Type> paludis::spec_tree_internals::BasicInnerNode<paludis::SpecTree<...>>::append< paludis::LabelsDepSpec<paludis::DependenciesLabel>>( std::shared_ptr<paludis::LabelsDepSpec<paludis::DependenciesLabel> > const&) => Move LabelsDepSpec<DependenciesLabel> instantiation to header file Missing dep_spec.hh include: 133: >>> test action_TEST 133: Traceback (most recent call last): 133: File "/home/marv/devel/paludis-worktrees/master/python/action_TEST.py", line 21, in <module> 133: from paludis import * 133: ImportError: /home/marv/devel/paludis-worktrees/master/build-clang/python/libpaludispython_3.0.so.300: undefined symbol: _ZN7paludis19spec_tree_internals14BasicInnerNodeINS_8SpecTreeINS_13TypeListEntryINS_20SpecTreeLeafNodeTypeINS_14PackageDepSpecEEENS3_INS4_INS_12BlockDepSpecEEENS3_INS4_INS_13LabelsDepSpecINS_17DependenciesLabelEEEEENS3_INS4_INS_15NamedSetDepSpecEEENS3_INS_21SpecTreeInnerNodeTypeINS_10AllDepSpecEEENS3_INSF_INS_10AnyDepSpecEEENS3_INSF_INS_18ConditionalDepSpecEEENS_12TypeListTailEEEEEEEEEEEEEEESG_EEE6appendISD_EESt10shared_ptrINSU_8NodeTypeIT_E4TypeEERKSX_ISZ_E 133: >>> test action_TEST returned 1 [0s] 133: >>> exiting with error for test action_TEST 1/1 Test #133: python_action ....................***Failed 0.03 sec The missing symbol is: std::shared_ptr<DependencySpecTree::NodeType<paludis::NamedSetDepSpec>::Type> paludis::spec_tree_internals::BasicInnerNode<DependencySpecTree>::append< paludis::NamedSetDepSpec>(std::shared_ptr<paludis::NamedSetDepSpec> const&) => Provide full type for NamedSetDepSpec
-rw-r--r--paludis/dep_spec.cc4
-rw-r--r--paludis/dep_spec.hh3
-rw-r--r--paludis/spec_tree.cc1
3 files changed, 6 insertions, 2 deletions
diff --git a/paludis/dep_spec.cc b/paludis/dep_spec.cc
index fc5c98139..e603fc443 100644
--- a/paludis/dep_spec.cc
+++ b/paludis/dep_spec.cc
@@ -641,8 +641,8 @@ PackageDepSpec::data() const
namespace paludis
{
- template class PALUDIS_VISIBLE LabelsDepSpec<URILabel>;
- template class PALUDIS_VISIBLE LabelsDepSpec<DependenciesLabel>;
+ template class LabelsDepSpec<URILabel>;
+ template class LabelsDepSpec<DependenciesLabel>;
template class Cloneable<DepSpec>;
template class Pimp<ConditionalDepSpec>;
diff --git a/paludis/dep_spec.hh b/paludis/dep_spec.hh
index d4e5f5746..a74711329 100644
--- a/paludis/dep_spec.hh
+++ b/paludis/dep_spec.hh
@@ -710,6 +710,9 @@ namespace paludis
const std::string label() const PALUDIS_ATTRIBUTE((warn_unused_result));
};
+ extern template class PALUDIS_VISIBLE LabelsDepSpec<URILabel>;
+ extern template class PALUDIS_VISIBLE LabelsDepSpec<DependenciesLabel>;
+
extern template class PALUDIS_VISIBLE WrappedForwardIterator<DependenciesLabelsDepSpec::ConstIteratorTag,
const std::shared_ptr<const DependenciesLabel> >;
extern template class PALUDIS_VISIBLE WrappedForwardIterator<URILabelsDepSpec::ConstIteratorTag,
diff --git a/paludis/spec_tree.cc b/paludis/spec_tree.cc
index e6c68934c..d382f8b99 100644
--- a/paludis/spec_tree.cc
+++ b/paludis/spec_tree.cc
@@ -17,6 +17,7 @@
* Place, Suite 330, Boston, MA 02111-1307 USA
*/
+#include <paludis/dep_spec.hh>
#include <paludis/spec_tree.hh>
#include <paludis/util/sequence-impl.hh>
#include <paludis/util/wrapped_forward_iterator-impl.hh>