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
--- Makefile12 Jul 2019 20:51:15 - 1.3
+++ Makefile9 Apr 2020 09:59:32 -
@@ -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 -
1.1.1.1
+++ patches/patch-include_dbus-c++_types_h 9 Apr 2020 09:59:32 -
@@ -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
+- operator T() const
+- {
+-T cast;
+-MessageIter ri = _msg.reader();
+-ri >> cast;
+-return cast;
+- }
++ operator T() const;
+
+ private:
+
+@@ -316,7 +310,7 @@ struct type< Struct> (DBus::MessageIt
+@@ -551,6 +545,8 @@ inline DBus::MessageIter >> (DBus::MessageIt
+ return ++iter;
+ }
+
++extern DXXAPI DBus::MessageIter >> (DBus::MessageIter ,
DBus::Variant );
++
+ template
+ inline DBus::MessageIter >> (DBus::MessageIter ,
std::vector& val)
+ {
+@@ -644,7 +640,16 @@ inline DBus::MessageIter >> (DBus::MessageIt
+ return ++iter;
}
- extern DXXAPI DBus::MessageIter >> (DBus::MessageIter ,
DBus::Variant );
+-extern DXXAPI DBus::MessageIter >> (DBus::MessageIter ,
DBus::Variant );
++template
++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 -
+++ patches/patch-src_types_cpp 9 Apr 2020 09:59:32 -
@@ -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 >> (MessageIter , Variant &
+ return ++iter;
+ }
+
++} /* namespace DBus */
--
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE