summaryrefslogtreecommitdiff
path: root/meta/packages/boost/files
diff options
context:
space:
mode:
authorQing He <qing.he@intel.com>2010-08-19 13:32:07 +0800
committerRichard Purdie <rpurdie@linux.intel.com>2010-08-31 17:18:55 +0100
commitadfd0e04343ad7770642eadf07a7f9185be6e25d (patch)
tree51888646c08a50095710f000ff83102a0f305b81 /meta/packages/boost/files
parentd1f7c3f9cc59477ef926c35eb980833d5a0246de (diff)
downloadopenembedded-core-adfd0e04343ad7770642eadf07a7f9185be6e25d.tar.gz
openembedded-core-adfd0e04343ad7770642eadf07a7f9185be6e25d.tar.bz2
openembedded-core-adfd0e04343ad7770642eadf07a7f9185be6e25d.tar.xz
openembedded-core-adfd0e04343ad7770642eadf07a7f9185be6e25d.zip
boost: upgrade to 1.44.0
from version 1.36.0 which won't compile with gcc 4.5.0 also moved to meta form meta-moblin changes: - .so files should go to -dev instead of sub packages - create libboostX-mt.{so,a} symlinks for compatibility - meta package 'boost' should set ALLOW_EMPTY - fix a bug that caused boost-dev being automatically renamed to libboost_prg_exec_monitor-dev, packages boost, boost-dev and boost-test now work as intended - rebased patch arm-intrinsic Signed-off-by: Qing He <qing.he@intel.com>
Diffstat (limited to 'meta/packages/boost/files')
-rw-r--r--meta/packages/boost/files/1.34.1-gcc43.patch224
-rw-r--r--meta/packages/boost/files/arm-intrinsics.patch53
-rw-r--r--meta/packages/boost/files/atomic_count_gcc_atomicity.patch13
-rw-r--r--meta/packages/boost/files/gcc41.patch14
-rw-r--r--meta/packages/boost/files/gcc43.patch256
-rw-r--r--meta/packages/boost/files/linux-uclibc.patch10
-rw-r--r--meta/packages/boost/files/unit_test_log10f.patch20
7 files changed, 590 insertions, 0 deletions
diff --git a/meta/packages/boost/files/1.34.1-gcc43.patch b/meta/packages/boost/files/1.34.1-gcc43.patch
new file mode 100644
index 000000000..4670ac429
--- /dev/null
+++ b/meta/packages/boost/files/1.34.1-gcc43.patch
@@ -0,0 +1,224 @@
+Index: boost_1_34_1/boost/archive/polymorphic_iarchive.hpp
+===================================================================
+--- boost_1_34_1.orig/boost/archive/polymorphic_iarchive.hpp 2005-12-11 07:12:51.000000000 +0100
++++ boost_1_34_1/boost/archive/polymorphic_iarchive.hpp 2008-09-20 20:55:21.000000000 +0200
+@@ -17,6 +17,7 @@
+ // See http://www.boost.org for updates, documentation, and revision history.
+
+ #include <cstddef> // std::size_t
++#include <climits>
+ #include <boost/config.hpp>
+
+ #if defined(BOOST_NO_STDC_NAMESPACE)
+Index: boost_1_34_1/boost/archive/polymorphic_oarchive.hpp
+===================================================================
+--- boost_1_34_1.orig/boost/archive/polymorphic_oarchive.hpp 2006-02-12 06:43:06.000000000 +0100
++++ boost_1_34_1/boost/archive/polymorphic_oarchive.hpp 2008-09-20 20:55:21.000000000 +0200
+@@ -17,6 +17,7 @@
+ // See http://www.boost.org for updates, documentation, and revision history.
+
+ #include <cstddef> // size_t
++#include <climits>
+ #include <string>
+
+ #include <boost/config.hpp>
+Index: boost_1_34_1/boost/date_time/date_facet.hpp
+===================================================================
+--- boost_1_34_1.orig/boost/date_time/date_facet.hpp 2005-09-05 23:10:50.000000000 +0200
++++ boost_1_34_1/boost/date_time/date_facet.hpp 2008-09-20 20:55:21.000000000 +0200
+@@ -429,7 +429,7 @@
+ typedef std::basic_string<CharT> string_type;
+ typedef CharT char_type;
+ typedef boost::date_time::period_parser<date_type, CharT> period_parser_type;
+- typedef special_values_parser<date_type,CharT> special_values_parser_type;
++ typedef boost::date_time::special_values_parser<date_type,CharT> special_values_parser_type;
+ typedef std::vector<std::basic_string<CharT> > input_collection_type;
+ typedef format_date_parser<date_type, CharT> format_date_parser_type;
+ // date_generators stuff goes here
+Index: boost_1_34_1/boost/mpl/zip_view.hpp
+===================================================================
+--- boost_1_34_1.orig/boost/mpl/zip_view.hpp 2004-09-02 17:40:42.000000000 +0200
++++ boost_1_34_1/boost/mpl/zip_view.hpp 2008-09-20 20:55:21.000000000 +0200
+@@ -37,7 +37,7 @@
+ typedef zip_iterator<
+ typename transform1<
+ IteratorSeq
+- , next<_1>
++ , boost::mpl::next<_1>
+ >::type
+ > next;
+ };
+@@ -48,8 +48,8 @@
+ struct zip_view
+ {
+ private:
+- typedef typename transform1< Sequences, begin<_1> >::type first_ones_;
+- typedef typename transform1< Sequences, end<_1> >::type last_ones_;
++ typedef typename transform1< Sequences, boost::mpl::begin<_1> >::type first_ones_;
++ typedef typename transform1< Sequences, boost::mpl::end<_1> >::type last_ones_;
+
+ public:
+ typedef nested_begin_end_tag tag;
+Index: boost_1_34_1/boost/python/detail/def_helper.hpp
+===================================================================
+--- boost_1_34_1.orig/boost/python/detail/def_helper.hpp 2004-09-16 03:00:28.000000000 +0200
++++ boost_1_34_1/boost/python/detail/def_helper.hpp 2008-09-20 20:55:21.000000000 +0200
+@@ -155,7 +155,7 @@
+ , T3 const&
+ , T4 const&
+ , default_call_policies
+- , keywords<0>
++ , boost::python::detail::keywords<0>
+ , char const*
+ , void(not_specified::*)() // A function pointer type which is never an
+ // appropriate default implementation
+Index: boost_1_34_1/boost/regex/v4/basic_regex_creator.hpp
+===================================================================
+--- boost_1_34_1.orig/boost/regex/v4/basic_regex_creator.hpp 2006-07-16 18:06:38.000000000 +0200
++++ boost_1_34_1/boost/regex/v4/basic_regex_creator.hpp 2008-09-20 20:55:21.000000000 +0200
+@@ -24,6 +24,8 @@
+ # include BOOST_ABI_PREFIX
+ #endif
+
++#include <climits>
++
+ namespace boost{
+
+ namespace re_detail{
+Index: boost_1_34_1/boost/regex/v4/basic_regex.hpp
+===================================================================
+--- boost_1_34_1.orig/boost/regex/v4/basic_regex.hpp 2007-06-05 19:28:18.000000000 +0200
++++ boost_1_34_1/boost/regex/v4/basic_regex.hpp 2008-09-20 20:55:21.000000000 +0200
+@@ -23,6 +23,8 @@
+ # include BOOST_ABI_PREFIX
+ #endif
+
++#include <climits>
++
+ namespace boost{
+ #ifdef BOOST_MSVC
+ #pragma warning(push)
+Index: boost_1_34_1/boost/regex/v4/basic_regex_parser.hpp
+===================================================================
+--- boost_1_34_1.orig/boost/regex/v4/basic_regex_parser.hpp 2006-12-20 18:19:05.000000000 +0100
++++ boost_1_34_1/boost/regex/v4/basic_regex_parser.hpp 2008-09-20 20:55:21.000000000 +0200
+@@ -23,6 +23,8 @@
+ # include BOOST_ABI_PREFIX
+ #endif
+
++#include <climits>
++
+ namespace boost{
+ namespace re_detail{
+
+Index: boost_1_34_1/boost/regex/v4/cpp_regex_traits.hpp
+===================================================================
+--- boost_1_34_1.orig/boost/regex/v4/cpp_regex_traits.hpp 2007-01-15 12:09:44.000000000 +0100
++++ boost_1_34_1/boost/regex/v4/cpp_regex_traits.hpp 2008-09-20 20:55:21.000000000 +0200
+@@ -41,6 +41,7 @@
+
+ #include <istream>
+ #include <ios>
++#include <climits>
+
+ #ifdef BOOST_HAS_ABI_HEADERS
+ # include BOOST_ABI_PREFIX
+Index: boost_1_34_1/boost/regex/v4/perl_matcher.hpp
+===================================================================
+--- boost_1_34_1.orig/boost/regex/v4/perl_matcher.hpp 2006-10-18 14:55:30.000000000 +0200
++++ boost_1_34_1/boost/regex/v4/perl_matcher.hpp 2008-09-20 20:55:21.000000000 +0200
+@@ -18,6 +18,8 @@
+ # include BOOST_ABI_PREFIX
+ #endif
+
++#include <climits>
++
+ namespace boost{
+ namespace re_detail{
+
+Index: boost_1_34_1/boost/regex/v4/regex_split.hpp
+===================================================================
+--- boost_1_34_1.orig/boost/regex/v4/regex_split.hpp 2005-01-21 18:22:38.000000000 +0100
++++ boost_1_34_1/boost/regex/v4/regex_split.hpp 2008-09-20 20:55:21.000000000 +0200
+@@ -21,6 +21,8 @@
+ #ifndef BOOST_REGEX_SPLIT_HPP
+ #define BOOST_REGEX_SPLIT_HPP
+
++#include <climits>
++
+ namespace boost{
+
+ #ifdef BOOST_HAS_ABI_HEADERS
+Index: boost_1_34_1/boost/regex/v4/states.hpp
+===================================================================
+--- boost_1_34_1.orig/boost/regex/v4/states.hpp 2005-09-20 14:01:25.000000000 +0200
++++ boost_1_34_1/boost/regex/v4/states.hpp 2008-09-20 20:55:21.000000000 +0200
+@@ -23,6 +23,8 @@
+ # include BOOST_ABI_PREFIX
+ #endif
+
++#include <climits>
++
+ namespace boost{
+ namespace re_detail{
+
+Index: boost_1_34_1/boost/serialization/collection_traits.hpp
+===================================================================
+--- boost_1_34_1.orig/boost/serialization/collection_traits.hpp 2005-06-21 07:19:04.000000000 +0200
++++ boost_1_34_1/boost/serialization/collection_traits.hpp 2008-09-20 20:55:21.000000000 +0200
+@@ -22,6 +22,7 @@
+ // compiles recognize the same set of primitive types, the possibility
+ // exists for archives to be non-portable if class information for primitive
+ // types is included. This is addressed by the following macros.
++#include <climits>
+ #include <boost/config.hpp>
+ #include <boost/mpl/integral_c.hpp>
+ #include <boost/mpl/integral_c_tag.hpp>
+Index: boost_1_34_1/boost/spirit/phoenix/operators.hpp
+===================================================================
+--- boost_1_34_1.orig/boost/spirit/phoenix/operators.hpp 2006-08-25 18:27:30.000000000 +0200
++++ boost_1_34_1/boost/spirit/phoenix/operators.hpp 2008-09-20 20:55:21.000000000 +0200
+@@ -24,6 +24,7 @@
+ #include <boost/spirit/phoenix/composite.hpp>
+ #include <boost/config.hpp>
+ #include <boost/mpl/if.hpp>
++#include <climits>
+
+ ///////////////////////////////////////////////////////////////////////////////
+ namespace phoenix {
+Index: boost_1_34_1/boost/test/test_tools.hpp
+===================================================================
+--- boost_1_34_1.orig/boost/test/test_tools.hpp 2007-02-22 18:57:29.000000000 +0100
++++ boost_1_34_1/boost/test/test_tools.hpp 2008-09-20 20:55:21.000000000 +0200
+@@ -42,6 +42,7 @@
+ #include <boost/mpl/or.hpp>
+
+ // STL
++#include <climits>
+ #include <cstddef> // for std::size_t
+ #include <iosfwd>
+
+Index: boost_1_34_1/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp
+===================================================================
+--- boost_1_34_1.orig/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp 2006-12-20 17:38:24.000000000 +0100
++++ boost_1_34_1/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp 2008-09-20 20:55:21.000000000 +0200
+@@ -16,6 +16,7 @@
+ #include <string>
+ #include <cstdio>
+ #include <cstdarg>
++#include <cstring>
+ #if defined(BOOST_SPIRIT_DEBUG)
+ #include <iostream>
+ #endif // defined(BOOST_SPIRIT_DEBUG)
+Index: boost_1_34_1/boost/wave/util/flex_string.hpp
+===================================================================
+--- boost_1_34_1.orig/boost/wave/util/flex_string.hpp 2006-04-25 19:21:01.000000000 +0200
++++ boost_1_34_1/boost/wave/util/flex_string.hpp 2008-09-20 20:55:21.000000000 +0200
+@@ -94,6 +94,7 @@
+ #include <limits>
+ #include <stdexcept>
+ #include <cstddef>
++#include <cstring>
+
+ // this must occur after all of the includes and before any code appears
+ #ifdef BOOST_HAS_ABI_HEADERS
diff --git a/meta/packages/boost/files/arm-intrinsics.patch b/meta/packages/boost/files/arm-intrinsics.patch
new file mode 100644
index 000000000..3f9c620eb
--- /dev/null
+++ b/meta/packages/boost/files/arm-intrinsics.patch
@@ -0,0 +1,53 @@
+8/17/2010 - rebased to 1.44 by Qing He <qing.he@intel.com>
+
+diff --git a/boost/smart_ptr/detail/atomic_count_sync.hpp b/boost/smart_ptr/detail/atomic_count_sync.hpp
+index b6359b5..78b1cc2 100644
+--- a/boost/smart_ptr/detail/atomic_count_sync.hpp
++++ b/boost/smart_ptr/detail/atomic_count_sync.hpp
+@@ -33,17 +33,46 @@ public:
+
+ long operator++()
+ {
++#ifdef __ARM_ARCH_7A__
++ int v1, tmp;
++ asm volatile ("1: \n\t"
++ "ldrex %0, %1 \n\t"
++ "add %0 ,%0, #1 \n\t"
++ "strex %2, %0, %1 \n\t"
++ "cmp %2, #0 \n\t"
++ "bne 1b \n\t"
++ : "=&r" (v1), "+Q"(value_), "=&r"(tmp)
++ );
++#else
+ return __sync_add_and_fetch( &value_, 1 );
++#endif
+ }
+
+ long operator--()
+ {
++#ifdef __ARM_ARCH_7A__
++ int v1, tmp;
++ asm volatile ("1: \n\t"
++ "ldrex %0, %1 \n\t"
++ "sub %0 ,%0, #1 \n\t"
++ "strex %2, %0, %1 \n\t"
++ "cmp %2, #0 \n\t"
++ "bne 1b \n\t"
++ : "=&r" (v1), "+Q"(value_), "=&r"(tmp)
++ );
++ return value_;
++#else
+ return __sync_add_and_fetch( &value_, -1 );
++#endif
+ }
+
+ operator long() const
+ {
++#if __ARM_ARCH_7A__
++ return value_;
++#else
+ return __sync_fetch_and_add( &value_, 0 );
++#endif
+ }
+
+ private:
diff --git a/meta/packages/boost/files/atomic_count_gcc_atomicity.patch b/meta/packages/boost/files/atomic_count_gcc_atomicity.patch
new file mode 100644
index 000000000..7d08e7355
--- /dev/null
+++ b/meta/packages/boost/files/atomic_count_gcc_atomicity.patch
@@ -0,0 +1,13 @@
+Index: boost_1_33_1/boost/detail/atomic_count_gcc.hpp
+===================================================================
+--- boost_1_33_1.orig/boost/detail/atomic_count_gcc.hpp 2008-05-01 20:43:45.000000000 +0200
++++ boost_1_33_1/boost/detail/atomic_count_gcc.hpp 2008-05-01 20:43:55.000000000 +0200
+@@ -17,7 +17,7 @@
+ // http://www.boost.org/LICENSE_1_0.txt)
+ //
+
+-#include <bits/atomicity.h>
++#include <ext/atomicity.h>
+
+ namespace boost
+ {
diff --git a/meta/packages/boost/files/gcc41.patch b/meta/packages/boost/files/gcc41.patch
new file mode 100644
index 000000000..f91d1adf2
--- /dev/null
+++ b/meta/packages/boost/files/gcc41.patch
@@ -0,0 +1,14 @@
+diff -ur boost_1_33_1.orig/boost/bind.hpp boost_1_33_1/boost/bind.hpp
+--- boost_1_33_1.orig/boost/bind.hpp 2008-10-11 10:30:03.000000000 +0200
++++ boost_1_33_1/boost/bind.hpp 2008-10-11 10:41:25.000000000 +0200
+@@ -28,6 +28,10 @@
+ #include <boost/bind/arg.hpp>
+ #include <boost/detail/workaround.hpp>
+
++#if __GNUC__ == 4 && __GNUC_MINOR__ == 1
++# include <boost/visit_each.hpp>
++#endif
++
+ // Borland-specific bug, visit_each() silently fails to produce code
+
+ #if defined(__BORLANDC__)
diff --git a/meta/packages/boost/files/gcc43.patch b/meta/packages/boost/files/gcc43.patch
new file mode 100644
index 000000000..aefe0800c
--- /dev/null
+++ b/meta/packages/boost/files/gcc43.patch
@@ -0,0 +1,256 @@
+diff -aNru boost_1_34_1-ORIGINAL/boost/archive/polymorphic_iarchive.hpp boost_1_34_1/boost/archive/polymorphic_iarchive.hpp
+--- boost_1_34_1-ORIGINAL/boost/archive/polymorphic_iarchive.hpp 2005-12-11 00:12:51.000000000 -0600
++++ boost_1_34_1/boost/archive/polymorphic_iarchive.hpp 2008-03-03 03:08:59.000000000 -0600
+@@ -17,6 +17,7 @@
+ // See http://www.boost.org for updates, documentation, and revision history.
+
+ #include <cstddef> // std::size_t
++#include <climits>
+ #include <boost/config.hpp>
+
+ #if defined(BOOST_NO_STDC_NAMESPACE)
+diff -aNru boost_1_34_1-ORIGINAL/boost/archive/polymorphic_oarchive.hpp boost_1_34_1/boost/archive/polymorphic_oarchive.hpp
+--- boost_1_34_1-ORIGINAL/boost/archive/polymorphic_oarchive.hpp 2006-02-11 23:43:06.000000000 -0600
++++ boost_1_34_1/boost/archive/polymorphic_oarchive.hpp 2008-03-03 03:08:59.000000000 -0600
+@@ -17,6 +17,7 @@
+ // See http://www.boost.org for updates, documentation, and revision history.
+
+ #include <cstddef> // size_t
++#include <climits>
+ #include <string>
+
+ #include <boost/config.hpp>
+diff -aNru boost_1_34_1-ORIGINAL/boost/date_time/date_facet.hpp boost_1_34_1/boost/date_time/date_facet.hpp
+--- boost_1_34_1-ORIGINAL/boost/date_time/date_facet.hpp 2005-09-05 16:10:50.000000000 -0500
++++ boost_1_34_1/boost/date_time/date_facet.hpp 2008-03-03 03:08:59.000000000 -0600
+@@ -429,7 +429,7 @@
+ typedef std::basic_string<CharT> string_type;
+ typedef CharT char_type;
+ typedef boost::date_time::period_parser<date_type, CharT> period_parser_type;
+- typedef special_values_parser<date_type,CharT> special_values_parser_type;
++ typedef boost::date_time::special_values_parser<date_type,CharT> special_values_parser_type;
+ typedef std::vector<std::basic_string<CharT> > input_collection_type;
+ typedef format_date_parser<date_type, CharT> format_date_parser_type;
+ // date_generators stuff goes here
+diff -aNru boost_1_34_1-ORIGINAL/boost/mpl/zip_view.hpp boost_1_34_1/boost/mpl/zip_view.hpp
+--- boost_1_34_1-ORIGINAL/boost/mpl/zip_view.hpp 2004-09-02 10:40:42.000000000 -0500
++++ boost_1_34_1/boost/mpl/zip_view.hpp 2008-03-03 03:08:59.000000000 -0600
+@@ -37,7 +37,7 @@
+ typedef zip_iterator<
+ typename transform1<
+ IteratorSeq
+- , next<_1>
++ , boost::mpl::next<_1>
+ >::type
+ > next;
+ };
+@@ -48,8 +48,8 @@
+ struct zip_view
+ {
+ private:
+- typedef typename transform1< Sequences, begin<_1> >::type first_ones_;
+- typedef typename transform1< Sequences, end<_1> >::type last_ones_;
++ typedef typename transform1< Sequences, boost::mpl::begin<_1> >::type first_ones_;
++ typedef typename transform1< Sequences, boost::mpl::end<_1> >::type last_ones_;
+
+ public:
+ typedef nested_begin_end_tag tag;
+diff -aNru boost_1_34_1-ORIGINAL/boost/python/detail/def_helper.hpp boost_1_34_1/boost/python/detail/def_helper.hpp
+--- boost_1_34_1-ORIGINAL/boost/python/detail/def_helper.hpp 2004-09-15 20:00:28.000000000 -0500
++++ boost_1_34_1/boost/python/detail/def_helper.hpp 2008-03-03 03:08:59.000000000 -0600
+@@ -155,7 +155,7 @@
+ , T3 const&
+ , T4 const&
+ , default_call_policies
+- , keywords<0>
++ , boost::python::detail::keywords<0>
+ , char const*
+ , void(not_specified::*)() // A function pointer type which is never an
+ // appropriate default implementation
+diff -aNru boost_1_34_1-ORIGINAL/boost/regex/v4/basic_regex_creator.hpp boost_1_34_1/boost/regex/v4/basic_regex_creator.hpp
+--- boost_1_34_1-ORIGINAL/boost/regex/v4/basic_regex_creator.hpp 2006-07-16 11:06:38.000000000 -0500
++++ boost_1_34_1/boost/regex/v4/basic_regex_creator.hpp 2008-03-03 03:08:59.000000000 -0600
+@@ -24,6 +24,8 @@
+ # include BOOST_ABI_PREFIX
+ #endif
+
++#include <climits>
++
+ namespace boost{
+
+ namespace re_detail{
+diff -aNru boost_1_34_1-ORIGINAL/boost/regex/v4/basic_regex.hpp boost_1_34_1/boost/regex/v4/basic_regex.hpp
+--- boost_1_34_1-ORIGINAL/boost/regex/v4/basic_regex.hpp 2007-06-05 12:28:18.000000000 -0500
++++ boost_1_34_1/boost/regex/v4/basic_regex.hpp 2008-03-03 03:08:59.000000000 -0600
+@@ -23,6 +23,8 @@
+ # include BOOST_ABI_PREFIX
+ #endif
+
++#include <climits>
++
+ namespace boost{
+ #ifdef BOOST_MSVC
+ #pragma warning(push)
+diff -aNru boost_1_34_1-ORIGINAL/boost/regex/v4/basic_regex_parser.hpp boost_1_34_1/boost/regex/v4/basic_regex_parser.hpp
+--- boost_1_34_1-ORIGINAL/boost/regex/v4/basic_regex_parser.hpp 2006-12-20 11:19:05.000000000 -0600
++++ boost_1_34_1/boost/regex/v4/basic_regex_parser.hpp 2008-03-03 03:08:59.000000000 -0600
+@@ -23,6 +23,8 @@
+ # include BOOST_ABI_PREFIX
+ #endif
+
++#include <climits>
++
+ namespace boost{
+ namespace re_detail{
+
+diff -aNru boost_1_34_1-ORIGINAL/boost/regex/v4/cpp_regex_traits.hpp boost_1_34_1/boost/regex/v4/cpp_regex_traits.hpp
+--- boost_1_34_1-ORIGINAL/boost/regex/v4/cpp_regex_traits.hpp 2007-01-15 05:09:44.000000000 -0600
++++ boost_1_34_1/boost/regex/v4/cpp_regex_traits.hpp 2008-03-03 03:08:59.000000000 -0600
+@@ -41,6 +41,7 @@
+
+ #include <istream>
+ #include <ios>
++#include <climits>
+
+ #ifdef BOOST_HAS_ABI_HEADERS
+ # include BOOST_ABI_PREFIX
+diff -aNru boost_1_34_1-ORIGINAL/boost/regex/v4/perl_matcher.hpp boost_1_34_1/boost/regex/v4/perl_matcher.hpp
+--- boost_1_34_1-ORIGINAL/boost/regex/v4/perl_matcher.hpp 2006-10-18 07:55:30.000000000 -0500
++++ boost_1_34_1/boost/regex/v4/perl_matcher.hpp 2008-03-03 03:08:59.000000000 -0600
+@@ -18,6 +18,8 @@
+ # include BOOST_ABI_PREFIX
+ #endif
+
++#include <climits>
++
+ namespace boost{
+ namespace re_detail{
+
+diff -aNru boost_1_34_1-ORIGINAL/boost/regex/v4/regex_split.hpp boost_1_34_1/boost/regex/v4/regex_split.hpp
+--- boost_1_34_1-ORIGINAL/boost/regex/v4/regex_split.hpp 2005-01-21 11:22:38.000000000 -0600
++++ boost_1_34_1/boost/regex/v4/regex_split.hpp 2008-03-03 03:08:59.000000000 -0600
+@@ -21,6 +21,8 @@
+ #ifndef BOOST_REGEX_SPLIT_HPP
+ #define BOOST_REGEX_SPLIT_HPP
+
++#include <climits>
++
+ namespace boost{
+
+ #ifdef BOOST_HAS_ABI_HEADERS
+diff -aNru boost_1_34_1-ORIGINAL/boost/regex/v4/states.hpp boost_1_34_1/boost/regex/v4/states.hpp
+--- boost_1_34_1-ORIGINAL/boost/regex/v4/states.hpp 2005-09-20 07:01:25.000000000 -0500
++++ boost_1_34_1/boost/regex/v4/states.hpp 2008-03-03 03:08:59.000000000 -0600
+@@ -23,6 +23,8 @@
+ # include BOOST_ABI_PREFIX
+ #endif
+
++#include <climits>
++
+ namespace boost{
+ namespace re_detail{
+
+diff -aNru boost_1_34_1-ORIGINAL/boost/serialization/collection_traits.hpp boost_1_34_1/boost/serialization/collection_traits.hpp
+--- boost_1_34_1-ORIGINAL/boost/serialization/collection_traits.hpp 2005-06-21 00:19:04.000000000 -0500
++++ boost_1_34_1/boost/serialization/collection_traits.hpp 2008-03-03 03:09:49.000000000 -0600
+@@ -22,6 +22,7 @@
+ // compiles recognize the same set of primitive types, the possibility
+ // exists for archives to be non-portable if class information for primitive
+ // types is included. This is addressed by the following macros.
++#include <climits>
+ #include <boost/config.hpp>
+ #include <boost/mpl/integral_c.hpp>
+ #include <boost/mpl/integral_c_tag.hpp>
+diff -aNru boost_1_34_1-ORIGINAL/boost/spirit/phoenix/operators.hpp boost_1_34_1/boost/spirit/phoenix/operators.hpp
+--- boost_1_34_1-ORIGINAL/boost/spirit/phoenix/operators.hpp 2006-08-25 11:27:30.000000000 -0500
++++ boost_1_34_1/boost/spirit/phoenix/operators.hpp 2008-03-03 03:08:59.000000000 -0600
+@@ -24,6 +24,7 @@
+ #include <boost/spirit/phoenix/composite.hpp>
+ #include <boost/config.hpp>
+ #include <boost/mpl/if.hpp>
++#include <climits>
+
+ ///////////////////////////////////////////////////////////////////////////////
+ namespace phoenix {
+diff -aNru boost_1_34_1-ORIGINAL/boost/test/test_tools.hpp boost_1_34_1/boost/test/test_tools.hpp
+--- boost_1_34_1-ORIGINAL/boost/test/test_tools.hpp 2007-02-22 11:57:29.000000000 -0600
++++ boost_1_34_1/boost/test/test_tools.hpp 2008-03-03 03:08:59.000000000 -0600
+@@ -42,6 +42,7 @@
+ #include <boost/mpl/or.hpp>
+
+ // STL
++#include <climits>
+ #include <cstddef> // for std::size_t
+ #include <iosfwd>
+
+diff -aNru boost_1_34_1-ORIGINAL/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp boost_1_34_1/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp
+--- boost_1_34_1-ORIGINAL/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp 2006-12-20 10:38:24.000000000 -0600
++++ boost_1_34_1/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp 2008-03-03 03:08:59.000000000 -0600
+@@ -16,6 +16,7 @@
+ #include <string>
+ #include <cstdio>
+ #include <cstdarg>
++#include <cstring>
+ #if defined(BOOST_SPIRIT_DEBUG)
+ #include <iostream>
+ #endif // defined(BOOST_SPIRIT_DEBUG)
+diff -aNru boost_1_34_1-ORIGINAL/boost/wave/util/flex_string.hpp boost_1_34_1/boost/wave/util/flex_string.hpp
+--- boost_1_34_1-ORIGINAL/boost/wave/util/flex_string.hpp 2006-04-25 12:21:01.000000000 -0500
++++ boost_1_34_1/boost/wave/util/flex_string.hpp 2008-03-03 03:08:59.000000000 -0600
+@@ -94,6 +94,7 @@
+ #include <limits>
+ #include <stdexcept>
+ #include <cstddef>
++#include <cstring>
+
+ // this must occur after all of the includes and before any code appears
+ #ifdef BOOST_HAS_ABI_HEADERS
+
+--- boost_1_33_1/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp 2008-07-05 01:50:04.000000000 +0200
++++ boost_1_34_1/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp 2006-12-20 17:38:24.000000000 +0100
+@@ -295,17 +325,20 @@
+
+ lex_functor(IteratorT const &first, IteratorT const &last,
+ PositionT const &pos, boost::wave::language_support language)
+- : lexer(first, last, pos, language)
++ : re2c_lexer(first, last, pos, language)
+ {}
+ virtual ~lex_functor() {}
+
+ // get the next token from the input stream
+- token_type get() { return lexer.get(); }
+- void set_position(PositionT const &pos)
+- { lexer.set_position(pos); }
++ token_type get() { return re2c_lexer.get(); }
++ void set_position(PositionT const &pos) { re2c_lexer.set_position(pos); }
++#if BOOST_WAVE_SUPPORT_PRAGMA_ONCE != 0
++ bool has_include_guards(std::string& guard_name) const
++ { return re2c_lexer.has_include_guards(guard_name); }
++#endif
+
+ private:
+- lexer<IteratorT, PositionT> lexer;
++ lexer<IteratorT, PositionT> re2c_lexer;
+ };
+
+ ///////////////////////////////////////////////////////////////////////////////
+@@ -338,7 +371,7 @@
+ // It is coupled to the iterator type to allow to decouple the lexer/iterator
+ // configurations at compile time.
+ //
+-// This function is declared inside the cpp_slex_token.hpp file, which is
++// This function is declared inside the cpp_lex_token.hpp file, which is
+ // referenced by the source file calling the lexer and the source file, which
+ // instantiates the lex_functor. But is is defined here, so it will be
+ // instantiated only while compiling the source file, which instantiates the
+@@ -356,8 +389,8 @@
+ IteratorT const &last, PositionT const &pos,
+ boost::wave::language_support language)
+ {
+- return new re2clex::lex_functor<IteratorT, PositionT>(first, last, pos,
+- language);
++ using re2clex::lex_functor;
++ return new lex_functor<IteratorT, PositionT>(first, last, pos, language);
+ }
+
+ #undef BOOST_WAVE_RE2C_NEW_LEXER_INLINE
diff --git a/meta/packages/boost/files/linux-uclibc.patch b/meta/packages/boost/files/linux-uclibc.patch
new file mode 100644
index 000000000..79f14dea8
--- /dev/null
+++ b/meta/packages/boost/files/linux-uclibc.patch
@@ -0,0 +1,10 @@
+--- /dev/null 1969-12-31 16:00:00.000000000 -0800
++++ boost_1_32_0/boost/config/platform/linux-uclibc.hpp 2005-07-05 14:51:56.237294460 -0700
+@@ -0,0 +1,7 @@
++// Modifications required to support uClibC libc implementation.
++// Default to Linux...
++#include "linux.hpp"
++
++// Override anything uClibC doesn't support.
++// At present (0.9.27) the nl_types.h header exists but is not implemented
++#undef BOOST_HAS_NL_TYPES_H
diff --git a/meta/packages/boost/files/unit_test_log10f.patch b/meta/packages/boost/files/unit_test_log10f.patch
new file mode 100644
index 000000000..b235e1244
--- /dev/null
+++ b/meta/packages/boost/files/unit_test_log10f.patch
@@ -0,0 +1,20 @@
+--- boost_1_32_0/libs/test/src/unit_test_result.cpp.orig 2005-07-05 11:00:53.887594850 -0700
++++ boost_1_32_0/libs/test/src/unit_test_result.cpp 2005-07-05 11:01:20.683533034 -0700
+@@ -144,7 +144,7 @@
+ unit_test_counter num_passed, unit_test_counter num_failed )
+ {
+ unit_test_counter total_test_cases = num_passed + num_failed;
+- std::size_t width = static_cast<std::size_t>( std::log10( (float)(std::max)( num_passed, num_failed ) ) ) + 1;
++ std::size_t width = static_cast<std::size_t>( std::log10( (double)(std::max)( num_passed, num_failed ) ) ) + 1;
+
+ where_to << std::setw( indent ) << "" << std::setw( width ) << num_passed
+ << " test " << ps_name( num_passed != 1, "case" ) << " out of " << total_test_cases << " passed\n"
+@@ -158,7 +158,7 @@
+ {
+ unit_test_counter total_assertions = num_passed + num_failed;
+ std::size_t width = total_assertions > 0
+- ? static_cast<std::size_t>( std::log10( (float)(std::max)( num_passed, num_failed ) ) ) + 1
++ ? static_cast<std::size_t>( std::log10( (double)(std::max)( num_passed, num_failed ) ) ) + 1
+ : 1;
+
+ where_to << std::setw( indent ) << "" << std::setw( width ) << num_passed