diff options
Diffstat (limited to 'meta-openstack')
| -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 |
