Use upstream fix for operator overloading.

Adds two symbols previously undefined on ld.lld archs, and fixes build
with ld.bfd on sparc64 (and probably powerpc).  ok stsp@
This commit is contained in:
jca 2020-04-09 13:26:13 +00:00
parent acdac96af8
commit b24fb0b4e0
3 changed files with 70 additions and 8 deletions

View File

@ -1,10 +1,14 @@
# $OpenBSD: Makefile,v 1.3 2019/07/12 20:51:15 sthen Exp $
# $OpenBSD: Makefile,v 1.4 2020/04/09 13:26:13 jca Exp $
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+

View File

@ -1,21 +1,57 @@
$OpenBSD: patch-include_dbus-c++_types_h,v 1.1.1.1 2019/03/13 10:52:51 stsp Exp $
$OpenBSD: patch-include_dbus-c++_types_h,v 1.2 2020/04/09 13:26:13 jca 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);
+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);
+template <typename T>
+inline DBus::Variant::operator T() const
+{
+ T cast;
+ DBus::MessageIter ri = _msg.reader();
+ ri >> cast;
+ return cast;
+}
+
+} /* namespace DBus */

View File

@ -0,0 +1,22 @@
$OpenBSD: patch-src_types_cpp,v 1.1 2020/04/09 13:26:13 jca Exp $
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 */