diff options
-rw-r--r-- | meta-openstack/recipes-extended/qpid/qpid/QPID-4579-Fixes-building-Qpid-under-the-latest-GCC-4.patch | 89 | ||||
-rw-r--r-- | meta-openstack/recipes-extended/qpid/qpid_0.20.bb | 6 |
2 files changed, 93 insertions, 2 deletions
diff --git a/meta-openstack/recipes-extended/qpid/qpid/QPID-4579-Fixes-building-Qpid-under-the-latest-GCC-4.patch b/meta-openstack/recipes-extended/qpid/qpid/QPID-4579-Fixes-building-Qpid-under-the-latest-GCC-4.patch new file mode 100644 index 0000000..73bee5c --- /dev/null +++ b/meta-openstack/recipes-extended/qpid/qpid/QPID-4579-Fixes-building-Qpid-under-the-latest-GCC-4.patch | |||
@@ -0,0 +1,89 @@ | |||
1 | From 9736799d05368da9641b2220aaa1cab850f562cb Mon Sep 17 00:00:00 2001 | ||
2 | From: "Darryl L. Pierce" <mcpierce@apache.org> | ||
3 | Date: Tue, 12 Feb 2013 19:26:13 +0000 | ||
4 | Subject: [PATCH] QPID-4579: Fixes building Qpid under the latest GCC (4.8.0). | ||
5 | |||
6 | commit 631f31a401f308e93303d5cc3a60f03f4c5eca34 from upstream | ||
7 | git://git.apache.org/qpid.git | ||
8 | |||
9 | Moves the definition of Functor and MemFuncRef out of Handler class | ||
10 | definition. Fixes the build failure in later versions of GCC. | ||
11 | |||
12 | Contributed by: Petr Machata <pmachata@redhat.com> | ||
13 | [MA: rebased] | ||
14 | Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com> | ||
15 | |||
16 | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1445322 13f79535-47bb-0310-9956-ffa450edef68 | ||
17 | --- | ||
18 | src/qpid/framing/Handler.h | 43 ++++++++++++++++++++++++------------------- | ||
19 | 1 file changed, 24 insertions(+), 19 deletions(-) | ||
20 | |||
21 | diff --git a/src/qpid/framing/Handler.h b/src/qpid/framing/Handler.h | ||
22 | index fa8db36..e0c0e59 100644 | ||
23 | --- a/src/qpid/framing/Handler.h | ||
24 | +++ b/src/qpid/framing/Handler.h | ||
25 | @@ -49,29 +49,12 @@ struct Handler { | ||
26 | * Functor<F>(f) will copy f. | ||
27 | * Functor<F&>(f) will only take a reference to x. | ||
28 | */ | ||
29 | - template <class F> class Functor : public Handler<T> { | ||
30 | - public: | ||
31 | - Functor(F f, Handler<T>* next=0) : Handler<T>(next), functor(f) {} | ||
32 | - void handle(T t) { functor(t); } | ||
33 | - private: | ||
34 | - F functor; | ||
35 | - }; | ||
36 | + template <class F> class Functor; | ||
37 | |||
38 | /** Adapt a member function of X as a Handler. | ||
39 | * Only holds a reference to its target, not a copy. | ||
40 | */ | ||
41 | - template <class X, void (X::*F)(T)> | ||
42 | - class MemFunRef : public Handler<T> { | ||
43 | - public: | ||
44 | - MemFunRef(X& x, Handler<T>* next=0) : Handler(next), target(&x) {} | ||
45 | - void handle(T t) { (target->*F)(t); } | ||
46 | - | ||
47 | - /** Allow calling with -> syntax */ | ||
48 | - MemFunRef* operator->() { return this; } | ||
49 | - | ||
50 | - private: | ||
51 | - X* target; | ||
52 | - }; | ||
53 | + template <class X, void (X::*F)(T)> class MemFunRef; | ||
54 | |||
55 | /** Interface for a handler that implements a | ||
56 | * pair of in/out handle operations. | ||
57 | @@ -94,7 +77,29 @@ struct Handler { | ||
58 | }; | ||
59 | }; | ||
60 | |||
61 | +template <class T> | ||
62 | +template <class F> | ||
63 | +class Handler<T>::Functor : public Handler<T> { | ||
64 | + public: | ||
65 | + Functor(F f, Handler<T>* next=0) : Handler<T>(next), functor(f) {} | ||
66 | + void handle(T t) { functor(t); } | ||
67 | + private: | ||
68 | + F functor; | ||
69 | +}; | ||
70 | + | ||
71 | +template <class T> | ||
72 | +template <class X, void (X::*F)(T)> | ||
73 | +class Handler<T>::MemFunRef : public Handler<T> { | ||
74 | + public: | ||
75 | + MemFunRef(X& x, Handler<T>* next=0) : Handler(next), target(&x) {} | ||
76 | + void handle(T t) { (target->*F)(t); } | ||
77 | + | ||
78 | + /** Allow calling with -> syntax */ | ||
79 | + MemFunRef* operator->() { return this; } | ||
80 | |||
81 | + private: | ||
82 | + X* target; | ||
83 | +}; | ||
84 | |||
85 | }} | ||
86 | #endif /*!QPID_FRAMING_HANDLER_H*/ | ||
87 | -- | ||
88 | 1.8.3.2 | ||
89 | |||
diff --git a/meta-openstack/recipes-extended/qpid/qpid_0.20.bb b/meta-openstack/recipes-extended/qpid/qpid_0.20.bb index d8c467e..a6f1c67 100644 --- a/meta-openstack/recipes-extended/qpid/qpid_0.20.bb +++ b/meta-openstack/recipes-extended/qpid/qpid_0.20.bb | |||
@@ -3,11 +3,13 @@ HOMEPAGE = "http://qpid.apache.org/" | |||
3 | LICENSE = "Apache-2.0" | 3 | LICENSE = "Apache-2.0" |
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=7ab4c208aa62d92d7a03cc8e0a89c12b" | 4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=7ab4c208aa62d92d7a03cc8e0a89c12b" |
5 | SECTION = "mq" | 5 | SECTION = "mq" |
6 | DEPENDS = "boost perl-native python " | 6 | DEPENDS = "boost perl-native python util-linux cyrus-sasl" |
7 | RDEPENDS_${PN} = "cyrus-sasl-bin" | ||
7 | PR = "r0" | 8 | PR = "r0" |
8 | 9 | ||
9 | SRC_URI = "http://archive.apache.org/dist/${PN}/${PV}/qpid-cpp-0.20.tar.gz \ | 10 | SRC_URI = "http://archive.apache.org/dist/${PN}/${PV}/qpid-cpp-0.20.tar.gz \ |
10 | file://quick-fix.patch \ | 11 | file://quick-fix.patch \ |
12 | file://QPID-4579-Fixes-building-Qpid-under-the-latest-GCC-4.patch \ | ||
11 | file://qpidd" | 13 | file://qpidd" |
12 | 14 | ||
13 | SRC_URI[md5sum] = "566132c5939ca31a32a0e80cc4124122" | 15 | SRC_URI[md5sum] = "566132c5939ca31a32a0e80cc4124122" |
@@ -24,7 +26,7 @@ export PERL_LIB = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/${@get_perl_version(d)} | |||
24 | export PERL_ARCHLIB = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/${@get_perl_version(d)}" | 26 | export PERL_ARCHLIB = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/${@get_perl_version(d)}" |
25 | export PERL="${STAGING_BINDIR}/perl" | 27 | export PERL="${STAGING_BINDIR}/perl" |
26 | 28 | ||
27 | EXTRA_OECONF += " --without-help2man" | 29 | EXTRA_OECONF += " --without-help2man SASL_PASSWD=/usr/sbin/saslpasswd2" |
28 | 30 | ||
29 | do_install_append() { | 31 | do_install_append() { |
30 | install -d ${D}${sysconfdir}/init.d | 32 | install -d ${D}${sysconfdir}/init.d |