This shows up in powerpc and sparc64 since a long time
http://build-failures.rhaalovely.net/sparc64/2020-04-07/x11/libdbus-c++.log ld.bfd checks that symbols in libdbus-c++-1.so are resolvable, but ld.lld doesn't. On amd64: --8<-- russell ~$ nm -g /usr/local/lib/libdbus-c++-1.so.0.0 | c++filt | grep -E 'DBus::operator(<<|>>)' U DBus::operator<<(DBus::MessageIter&, DBus::Variant const&) U DBus::operator>>(DBus::MessageIter&, DBus::Variant&) -->8-- Upstream has a fix, though it looks like only the chromium developers understand what is going on in this C++ maze. (: https://github.com/andreas-volz/dbus-cplusplus/commit/a0b9ef3b469ca23c6a3229d8abb967cbbddcee38 With this fix, the symbols are present in libdbus-c++.so and build succeeds on sparc64. --8<-- /usr/local/lib/libdbus-c++-1.so.0.0 --> ../fake-amd64/usr/local/lib/libdbus-c++-1.so.0.0 Dynamic export changes: added: DBus::operator<<(DBus::MessageIter&, DBus::Variant const&) DBus::operator>>(DBus::MessageIter&, DBus::Variant&) External reference changes: removed: DBus::operator<<(DBus::MessageIter&, DBus::Variant const&) DBus::operator>>(DBus::MessageIter&, DBus::Variant&) PLT added: DBus::operator<<(DBus::MessageIter&, DBus::Variant const&) DBus::operator>>(DBus::MessageIter&, DBus::Variant&) -->8-- Shared lib bump needed for libdbus-c++-1.so only. ok? Index: Makefile =================================================================== RCS file: /cvs/ports/x11/libdbus-c++/Makefile,v retrieving revision 1.3 diff -u -p -r1.3 Makefile --- Makefile 12 Jul 2019 20:51:15 -0000 1.3 +++ Makefile 9 Apr 2020 09:59:32 -0000 @@ -2,9 +2,13 @@ COMMENT = C++ API for dbus DISTNAME = libdbus-c++-0.9.0 -SHARED_LIBS = dbus-c++-1 0.0 \ +REVISION = 0 + +SHARED_LIBS = dbus-c++-1 0.1 \ dbus-c++-glib-1 0.0 + CATEGORIES = x11 devel + HOMEPAGE = http://dbus-cplusplus.sourceforge.net/ # LGPLv2.1+ Index: patches/patch-include_dbus-c++_types_h =================================================================== RCS file: /cvs/ports/x11/libdbus-c++/patches/patch-include_dbus-c++_types_h,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 patch-include_dbus-c++_types_h --- patches/patch-include_dbus-c++_types_h 13 Mar 2019 10:52:51 -0000 1.1.1.1 +++ patches/patch-include_dbus-c++_types_h 9 Apr 2020 09:59:32 -0000 @@ -1,21 +1,57 @@ $OpenBSD: patch-include_dbus-c++_types_h,v 1.1.1.1 2019/03/13 10:52:51 stsp Exp $ + Fix build failure due to symbols not being declared in the DBus namespace. +https://github.com/andreas-volz/dbus-cplusplus/commit/a0b9ef3b469ca23c6a3229d8abb967cbbddcee38 + Index: include/dbus-c++/types.h --- include/dbus-c++/types.h.orig +++ include/dbus-c++/types.h -@@ -316,8 +316,6 @@ struct type< Struct<T1, T2, T3, T4, T5, T6, T7, T8, T9 +@@ -89,13 +89,7 @@ class DXXAPI Variant (public) + } + + template <typename T> +- operator T() const +- { +- T cast; +- MessageIter ri = _msg.reader(); +- ri >> cast; +- return cast; +- } ++ operator T() const; + + private: + +@@ -316,7 +310,7 @@ struct type< Struct<T1, T2, T3, T4, T5, T6, T7, T8, T9 } }; -} /* namespace DBus */ -- ++extern DXXAPI DBus::MessageIter &operator << (DBus::MessageIter &iter, const DBus::Variant &val); + inline DBus::MessageIter &operator << (DBus::MessageIter &iter, const DBus::Invalid &) { - return iter; -@@ -645,6 +643,8 @@ inline DBus::MessageIter &operator >> (DBus::MessageIt +@@ -551,6 +545,8 @@ inline DBus::MessageIter &operator >> (DBus::MessageIt + return ++iter; + } + ++extern DXXAPI DBus::MessageIter &operator >> (DBus::MessageIter &iter, DBus::Variant &val); ++ + template<typename E> + inline DBus::MessageIter &operator >> (DBus::MessageIter &iter, std::vector<E>& val) + { +@@ -644,7 +640,16 @@ inline DBus::MessageIter &operator >> (DBus::MessageIt + return ++iter; } - extern DXXAPI DBus::MessageIter &operator >> (DBus::MessageIter &iter, DBus::Variant &val); +-extern DXXAPI DBus::MessageIter &operator >> (DBus::MessageIter &iter, DBus::Variant &val); ++template <typename T> ++inline DBus::Variant::operator T() const ++{ ++ T cast; ++ DBus::MessageIter ri = _msg.reader(); ++ ri >> cast; ++ return cast; ++} + +} /* namespace DBus */ Index: patches/patch-src_types_cpp =================================================================== RCS file: patches/patch-src_types_cpp diff -N patches/patch-src_types_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_types_cpp 9 Apr 2020 09:59:32 -0000 @@ -0,0 +1,22 @@ +$OpenBSD$ + +Fix build failure due to symbols not being declared in the DBus namespace. +https://github.com/andreas-volz/dbus-cplusplus/commit/a0b9ef3b469ca23c6a3229d8abb967cbbddcee38 + +Index: src/types.cpp +--- src/types.cpp.orig ++++ src/types.cpp +@@ -34,7 +34,7 @@ + #include "message_p.h" + #include "internalerror.h" + +-using namespace DBus; ++namespace DBus { + + Variant::Variant() + : _msg(CallMessage()) // dummy message used as temporary storage for variant data +@@ -104,3 +104,4 @@ MessageIter &operator >> (MessageIter &iter, Variant & + return ++iter; + } + ++} /* namespace DBus */ -- jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE