]> code.ossystems Code Review - openembedded-core.git/commitdiff
Add boost from OE.dev
authorRichard Purdie <rpurdie@linux.intel.com>
Thu, 16 Jul 2009 11:08:42 +0000 (12:08 +0100)
committerRichard Purdie <rpurdie@linux.intel.com>
Thu, 16 Jul 2009 11:08:42 +0000 (12:08 +0100)
meta-moblin/packages/boost/boost-36.inc [new file with mode: 0644]
meta-moblin/packages/boost/boost-jam-native.inc [new file with mode: 0644]
meta-moblin/packages/boost/boost-jam-native_3.1.16.bb [new file with mode: 0644]
meta-moblin/packages/boost/boost_1.36.0.bb [new file with mode: 0644]
meta-moblin/packages/boost/files/1.34.1-gcc43.patch [new file with mode: 0644]
meta-moblin/packages/boost/files/arm-intrinsics.patch [new file with mode: 0644]
meta-moblin/packages/boost/files/atomic_count_gcc_atomicity.patch [new file with mode: 0644]
meta-moblin/packages/boost/files/gcc41.patch [new file with mode: 0644]
meta-moblin/packages/boost/files/gcc43.patch [new file with mode: 0644]
meta-moblin/packages/boost/files/linux-uclibc.patch [new file with mode: 0644]
meta-moblin/packages/boost/files/unit_test_log10f.patch [new file with mode: 0644]

diff --git a/meta-moblin/packages/boost/boost-36.inc b/meta-moblin/packages/boost/boost-36.inc
new file mode 100644 (file)
index 0000000..4bd065f
--- /dev/null
@@ -0,0 +1,156 @@
+# The Boost web site provides free peer-reviewed portable
+# C++ source libraries. The emphasis is on libraries which
+# work well with the C++ Standard Library. The libraries are
+# intended to be widely useful, and are in regular use by
+# thousands of programmers across a broad spectrum of applications.
+DESCRIPTION = "Free peer-reviewed portable C++ source libraries"
+HOMEPAGE = "http://www.boost.org/"
+SECTION = "libs"
+DEPENDS = "boost-jam-native zlib"
+PRIORITY = "optional"
+LICENSE = "Boost Software License"
+PR = "r3"
+
+ARM_INSTRUCTION_SET = "arm"
+BOOST_VER = "${@"_".join(bb.data.getVar("PV",d,1).split("."))}"
+BOOST_MAJ = "${@"_".join(bb.data.getVar("PV",d,1).split(".")[0:2])}"
+BOOST_P = "boost_${BOOST_VER}"
+
+BOOST_LIBS = "\
+       date_time \
+       filesystem \
+       graph \
+       iostreams \
+       program_options \
+       regex \
+       signals \
+       system \
+       test \
+       thread \
+       "
+
+# FIXME: for some reason this fails on powerpc
+#BOOST_LIBS += "serialization"
+
+# To enable python, uncomment the following:
+#BOOST_LIBS += "python"
+#DEPENDS += "python"
+#PYTHON_ROOT = "${STAGING_DIR_HOST}/${layout_prefix}"
+#PYTHON_VERSION = "2.5"
+
+S = "${WORKDIR}/${BOOST_P}"
+
+# Make a package for each library, plus -dev
+PACKAGES = "${PN}-dbg ${BOOST_PACKAGES}"
+python __anonymous () {
+    import bb
+
+    packages = []
+    extras = []
+    for lib in bb.data.getVar('BOOST_LIBS', d, 1).split( ):
+            pkg = "boost-%s" % lib.replace("_", "-")
+            extras.append("--with-%s" % lib)
+            packages.append(pkg)
+            if not bb.data.getVar("FILES_%s" % pkg, d, 1):
+                    bb.data.setVar("FILES_%s" % pkg, "${libdir}/libboost_%s*.so*" % lib, d)
+    bb.data.setVar("BOOST_PACKAGES", " ".join(packages), d)
+    bb.data.setVar("BJAM_EXTRA", " ".join(extras), d)
+}
+
+# Override the contents of specific packages
+FILES_boost-serialization = "${libdir}/libboost_serialization*.so* \
+       ${libdir}/libboost_wserialization*.so*"
+FILES_boost-test = "${libdir}/libboost_prg_exec_monitor*.so \
+       ${libdir}/libboost_unit_test_framework*.so*"
+
+# -dev last to pick up the remaining stuff
+PACKAGES += "${PN}-dev"
+FILES_${PN}-dev = "${includedir} ${libdir}/libboost_*.so ${libdir}/libboost_*.a"
+
+# "boost" is a metapackage which pulls in all boost librabries
+PACKAGES += "${PN}"
+RRECOMMENDS_${PN} += "${BOOST_PACKAGES}"
+
+# to avoid GNU_HASH QA errors added LDFLAGS to ARCH; a little bit dirty but at least it works
+TARGET_CC_ARCH += " ${LDFLAGS}" 
+
+# Oh yippee, a new build system, it's sooo cooool I could eat my own
+# foot.  inlining=on lets the compiler choose, I think.  At least this
+# stuff is documented...
+# NOTE: if you leave <debug-symbols>on then in a debug build the build sys
+# objcopy will be invoked, and that won't work.  Building debug apparently
+# requires hacking gcc-tools.jam
+#
+# Sometimes I wake up screaming.  Famous figures are gathered in the nightmare,
+# Steve Bourne, Larry Wall, the whole of the ANSI C committee.  They're just
+# standing there, waiting, but the truely terrifying thing is what they carry
+# in their hands.  At first sight each seems to bear the same thing, but it is
+# not so for the forms in their grasp are ever so slightly different one from
+# the other.  Each is twisted in some grotesque way from the other to make each
+# an unspeakable perversion impossible to perceive without the onset of madness.
+# True insanity awaits anyone who perceives all of these horrors together.
+#
+# Quotation marks, there might be an easier way to do this, but I can't find
+# it.  The problem is that the user.hpp configuration file must receive a
+# pre-processor macro defined as the appropriate string - complete with "'s
+# around it.  (<> is a possibility here but the danger to that is that the
+# failure case interprets the < and > as shell redirections, creating
+# random files in the source tree.)
+#
+#bjam: '-DBOOST_PLATFORM_CONFIG=\"config\"'
+#do_compile: '-sGCC=... '"'-DBOOST_PLATFORM_CONFIG=\"config\"'"
+SQD = '"'
+EQD = '\"'
+#boost.bb:   "...  '-sGCC=... '${SQD}'-DBOOST_PLATFORM_CONFIG=${EQD}config${EQD}'${SQD} ..."
+BJAM_CONF = "${SQD}'-DBOOST_PLATFORM_CONFIG=${EQD}boost/config/platform/${TARGET_OS}.hpp${EQD}'${SQD}"
+
+# bzip2 and zip are disabled because... they're broken - the compilation simply
+# isn't working with bjam.  I guess they will fix it, but who needs it?  This
+# only affects the (new in 33) iostream library.
+BJAM_TOOLS   = "-sTOOLS=gcc \
+               '-sGCC=${CC} '${BJAM_CONF} \
+               '-sGXX=${CXX} '${BJAM_CONF} \
+               '-sGCC_INCLUDE_DIRECTORY=${STAGING_INCDIR}' \
+               '-sGCC_STDLIB_DIRECTORY=${STAGING_LIBDIR}' \
+               '-sNO_BZIP2=1' \
+               '-sNO_ZLIB=1' \
+               '-sBUILD=release <optimization>space <inlining>on <debug-symbols>off' \
+               '-sPYTHON_VERSION=${PYTHON_VERSION}' \
+               '--layout=system' \
+               "
+
+BJAM_OPTS    = '${BJAM_TOOLS} \
+               --builddir=${S}/${TARGET_SYS} \
+               --with-python-root=${PYTHON_ROOT} \
+               ${BJAM_EXTRA}'
+
+
+do_configure_prepend() {
+       cp -f boost/config/platform/linux.hpp boost/config/platform/linux-gnueabi.hpp
+
+       echo 'using gcc : 4.3.1 : ${CXX} : compileflags -DBOOST_SP_USE_PTHREADS -I${includedir} linkflags -L${libdir} ;' >> ${S}/tools/build/v2/user-config.jam
+}
+
+do_compile() {
+       set -ex
+       bjam ${BJAM_OPTS} --prefix=${prefix} \
+               --exec-prefix=${exec_prefix} \
+               --libdir=${libdir} \
+               --includedir=${includedir}
+}
+
+do_stage() {
+       set -ex
+       bjam ${BJAM_OPTS} \
+               --libdir=${STAGING_LIBDIR} \
+               --includedir=${STAGING_INCDIR} \
+               install
+}
+
+do_install() {
+       set -ex
+       bjam ${BJAM_OPTS} \
+               --libdir=${D}${libdir} \
+               --includedir=${D}${includedir} \
+               install
+}
diff --git a/meta-moblin/packages/boost/boost-jam-native.inc b/meta-moblin/packages/boost/boost-jam-native.inc
new file mode 100644 (file)
index 0000000..843f912
--- /dev/null
@@ -0,0 +1,30 @@
+# The Boost web site provides free peer-reviewed portable
+# C++ source libraries. The emphasis is on libraries which
+# work well with the C++ Standard Library. The libraries are
+# intended to be widely useful, and are in regular use by
+# thousands of programmers across a broad spectrum of applications.
+DESCRIPTION = "Make system for boost (native)"
+HOMEPAGE = "http://www.boost.org/"
+SECTION = "devel"
+PRIORITY = "optional"
+LICENSE = "Boost Software License"
+PR = "r0"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/boost/boost-jam-${PV}.tgz"
+S = "${WORKDIR}/boost-jam-${PV}"
+
+inherit native
+
+do_compile() {
+       set -ex
+       rm -rf bin.*
+       ./build.sh gcc
+}
+
+# This is too terrible - the build script doesn't give any good
+# way I can see to find out where the binaries are placed, so
+# rely on only one bin.foo directory being created.
+do_stage() {
+       set -ex
+       install -c -m 755 bin.*/bjam ${STAGING_BINDIR}/
+}
diff --git a/meta-moblin/packages/boost/boost-jam-native_3.1.16.bb b/meta-moblin/packages/boost/boost-jam-native_3.1.16.bb
new file mode 100644 (file)
index 0000000..2e92146
--- /dev/null
@@ -0,0 +1,4 @@
+include boost-jam-native.inc
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/boost/boost-jam-${PV}.tgz"
+
diff --git a/meta-moblin/packages/boost/boost_1.36.0.bb b/meta-moblin/packages/boost/boost_1.36.0.bb
new file mode 100644 (file)
index 0000000..140ab29
--- /dev/null
@@ -0,0 +1,12 @@
+include boost-36.inc
+
+PR = "r6"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/boost/${BOOST_P}.tar.bz2 \
+           file://arm-intrinsics.patch;patch=1 \
+          "
+
+BJAM_OPTS    = '${BJAM_TOOLS} \
+                --builddir=${S}/${TARGET_SYS} \
+                ${BJAM_EXTRA}'
+
diff --git a/meta-moblin/packages/boost/files/1.34.1-gcc43.patch b/meta-moblin/packages/boost/files/1.34.1-gcc43.patch
new file mode 100644 (file)
index 0000000..4670ac4
--- /dev/null
@@ -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-moblin/packages/boost/files/arm-intrinsics.patch b/meta-moblin/packages/boost/files/arm-intrinsics.patch
new file mode 100644 (file)
index 0000000..860b6df
--- /dev/null
@@ -0,0 +1,51 @@
+diff -Nurd boost_1_36_0.orig/boost/detail/atomic_count_sync.hpp boost_1_36_0.arm/boost/detail/atomic_count_sync.hpp
+--- boost_1_36_0.orig/boost/detail/atomic_count_sync.hpp       2007-11-23 12:03:14.000000000 -0500
++++ boost_1_36_0.arm/boost/detail/atomic_count_sync.hpp        2008-09-09 13:15:21.000000000 -0400
+@@ -29,17 +29,46 @@
+     void 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
+         __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:
+Binary files boost_1_36_0.orig/boost/detail/.atomic_count_sync.hpp.swp and boost_1_36_0.arm/boost/detail/.atomic_count_sync.hpp.swp differ
diff --git a/meta-moblin/packages/boost/files/atomic_count_gcc_atomicity.patch b/meta-moblin/packages/boost/files/atomic_count_gcc_atomicity.patch
new file mode 100644 (file)
index 0000000..7d08e73
--- /dev/null
@@ -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-moblin/packages/boost/files/gcc41.patch b/meta-moblin/packages/boost/files/gcc41.patch
new file mode 100644 (file)
index 0000000..f91d1ad
--- /dev/null
@@ -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-moblin/packages/boost/files/gcc43.patch b/meta-moblin/packages/boost/files/gcc43.patch
new file mode 100644 (file)
index 0000000..aefe080
--- /dev/null
@@ -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-moblin/packages/boost/files/linux-uclibc.patch b/meta-moblin/packages/boost/files/linux-uclibc.patch
new file mode 100644 (file)
index 0000000..79f14de
--- /dev/null
@@ -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-moblin/packages/boost/files/unit_test_log10f.patch b/meta-moblin/packages/boost/files/unit_test_log10f.patch
new file mode 100644 (file)
index 0000000..b235e12
--- /dev/null
@@ -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