diff options
| -rw-r--r-- | meta/recipes-support/boost/boost_1.51.0.bb | 6 | ||||
| -rw-r--r-- | meta/recipes-support/boost/files/hash_enums.patch | 45 |
2 files changed, 49 insertions, 2 deletions
diff --git a/meta/recipes-support/boost/boost_1.51.0.bb b/meta/recipes-support/boost/boost_1.51.0.bb index 1564b0ef6a..b95049f277 100644 --- a/meta/recipes-support/boost/boost_1.51.0.bb +++ b/meta/recipes-support/boost/boost_1.51.0.bb | |||
| @@ -2,8 +2,10 @@ include boost.inc | |||
| 2 | 2 | ||
| 3 | LIC_FILES_CHKSUM = "file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c" | 3 | LIC_FILES_CHKSUM = "file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c" |
| 4 | 4 | ||
| 5 | PR = "${INC_PR}.0" | 5 | PR = "${INC_PR}.1" |
| 6 | 6 | ||
| 7 | SRC_URI += "file://arm-intrinsics.patch" | 7 | SRC_URI += "file://arm-intrinsics.patch \ |
| 8 | file://hash_enums.patch \ | ||
| 9 | " | ||
| 8 | SRC_URI[md5sum] = "4b6bd483b692fd138aef84ed2c8eb679" | 10 | SRC_URI[md5sum] = "4b6bd483b692fd138aef84ed2c8eb679" |
| 9 | SRC_URI[sha256sum] = "fb2d2335a29ee7fe040a197292bfce982af84a645c81688a915c84c925b69696" | 11 | SRC_URI[sha256sum] = "fb2d2335a29ee7fe040a197292bfce982af84a645c81688a915c84c925b69696" |
diff --git a/meta/recipes-support/boost/files/hash_enums.patch b/meta/recipes-support/boost/files/hash_enums.patch new file mode 100644 index 0000000000..368da962c1 --- /dev/null +++ b/meta/recipes-support/boost/files/hash_enums.patch | |||
| @@ -0,0 +1,45 @@ | |||
| 1 | Allow hashing of enums. | ||
| 2 | Fixes errors like | ||
| 3 | |||
| 4 | /opt/poky/1.3.0-1/sysroots/i586-poky-linux/usr/include/boost/functional/hash/extensions.hpp:257:34: error: no matching function for call to 'hash_value(const myspace::idx&)' | ||
| 5 | |||
| 6 | Upstream-Status: Pending | ||
| 7 | Singed-off-by: Khem Raj <raj.khem@gmail.com> | ||
| 8 | |||
| 9 | Index: boost_1_51_0/boost/functional/hash/hash.hpp | ||
| 10 | =================================================================== | ||
| 11 | --- boost_1_51_0.orig/boost/functional/hash/hash.hpp 2012-07-15 16:28:30.000000000 -0700 | ||
| 12 | +++ boost_1_51_0/boost/functional/hash/hash.hpp 2012-09-26 14:00:57.738364002 -0700 | ||
| 13 | @@ -15,6 +15,8 @@ | ||
| 14 | #include <boost/functional/hash/detail/hash_float.hpp> | ||
| 15 | #include <string> | ||
| 16 | #include <boost/limits.hpp> | ||
| 17 | +#include <boost/type_traits/is_enum.hpp> | ||
| 18 | +#include <boost/utility/enable_if.hpp> | ||
| 19 | |||
| 20 | #if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) | ||
| 21 | #include <boost/type_traits/is_pointer.hpp> | ||
| 22 | @@ -89,6 +91,9 @@ | ||
| 23 | typename boost::hash_detail::long_numbers<T>::type hash_value(T); | ||
| 24 | template <typename T> | ||
| 25 | typename boost::hash_detail::ulong_numbers<T>::type hash_value(T); | ||
| 26 | + template <typename T> | ||
| 27 | + typename boost::enable_if<boost::is_enum<T>, std::size_t>::type | ||
| 28 | + hash_value(T); | ||
| 29 | |||
| 30 | #if !BOOST_WORKAROUND(__DMC__, <= 0x848) | ||
| 31 | template <class T> std::size_t hash_value(T* const&); | ||
| 32 | @@ -178,7 +183,12 @@ | ||
| 33 | { | ||
| 34 | return hash_detail::hash_value_unsigned(v); | ||
| 35 | } | ||
| 36 | - | ||
| 37 | + template <typename T> | ||
| 38 | + typename boost::enable_if<boost::is_enum<T>, std::size_t>::type | ||
| 39 | + hash_value(T v) | ||
| 40 | + { | ||
| 41 | + return static_cast<std::size_t>(v); | ||
| 42 | + } | ||
| 43 | // Implementation by Alberto Barbati and Dave Harris. | ||
| 44 | #if !BOOST_WORKAROUND(__DMC__, <= 0x848) | ||
| 45 | template <class T> std::size_t hash_value(T* const& v) | ||
