From adfd0e04343ad7770642eadf07a7f9185be6e25d Mon Sep 17 00:00:00 2001 From: Qing He Date: Thu, 19 Aug 2010 13:32:07 +0800 Subject: 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 --- meta/packages/boost/boost-36.inc | 149 ++++++++++++ meta/packages/boost/boost-jam-native.inc | 31 +++ meta/packages/boost/boost-jam-native_3.1.18.bb | 4 + meta/packages/boost/boost_1.44.0.bb | 27 +++ meta/packages/boost/files/1.34.1-gcc43.patch | 224 ++++++++++++++++++ meta/packages/boost/files/arm-intrinsics.patch | 53 +++++ .../boost/files/atomic_count_gcc_atomicity.patch | 13 ++ meta/packages/boost/files/gcc41.patch | 14 ++ meta/packages/boost/files/gcc43.patch | 256 +++++++++++++++++++++ meta/packages/boost/files/linux-uclibc.patch | 10 + meta/packages/boost/files/unit_test_log10f.patch | 20 ++ 11 files changed, 801 insertions(+) create mode 100644 meta/packages/boost/boost-36.inc create mode 100644 meta/packages/boost/boost-jam-native.inc create mode 100644 meta/packages/boost/boost-jam-native_3.1.18.bb create mode 100644 meta/packages/boost/boost_1.44.0.bb create mode 100644 meta/packages/boost/files/1.34.1-gcc43.patch create mode 100644 meta/packages/boost/files/arm-intrinsics.patch create mode 100644 meta/packages/boost/files/atomic_count_gcc_atomicity.patch create mode 100644 meta/packages/boost/files/gcc41.patch create mode 100644 meta/packages/boost/files/gcc43.patch create mode 100644 meta/packages/boost/files/linux-uclibc.patch create mode 100644 meta/packages/boost/files/unit_test_log10f.patch (limited to 'meta') diff --git a/meta/packages/boost/boost-36.inc b/meta/packages/boost/boost-36.inc new file mode 100644 index 000000000..5d2d1280b --- /dev/null +++ b/meta/packages/boost/boost-36.inc @@ -0,0 +1,149 @@ +# 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}/${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}" +ALLOW_EMPTY_${PN} = "1" + +# 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 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 space on 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_install() { + set -ex + bjam ${BJAM_OPTS} \ + --libdir=${D}${libdir} \ + --includedir=${D}${includedir} \ + install +} diff --git a/meta/packages/boost/boost-jam-native.inc b/meta/packages/boost/boost-jam-native.inc new file mode 100644 index 000000000..fe181ad00 --- /dev/null +++ b/meta/packages/boost/boost-jam-native.inc @@ -0,0 +1,31 @@ +# 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_install () { + set -ex + install -d ${D}${bindir}/ + install -c -m 755 bin.*/bjam ${D}${bindir}/ +} diff --git a/meta/packages/boost/boost-jam-native_3.1.18.bb b/meta/packages/boost/boost-jam-native_3.1.18.bb new file mode 100644 index 000000000..2e92146a8 --- /dev/null +++ b/meta/packages/boost/boost-jam-native_3.1.18.bb @@ -0,0 +1,4 @@ +include boost-jam-native.inc + +SRC_URI = "${SOURCEFORGE_MIRROR}/boost/boost-jam-${PV}.tgz" + diff --git a/meta/packages/boost/boost_1.44.0.bb b/meta/packages/boost/boost_1.44.0.bb new file mode 100644 index 000000000..81a2e53ba --- /dev/null +++ b/meta/packages/boost/boost_1.44.0.bb @@ -0,0 +1,27 @@ +include boost-36.inc + +LICENSE = "boost" +LIC_FILES_CHKSUM = "file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c" + +PR = "r0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/boost/${BOOST_P}.tar.bz2 \ + file://arm-intrinsics.patch \ + " + +BJAM_OPTS = '${BJAM_TOOLS} \ + --builddir=${S}/${TARGET_SYS} \ + ${BJAM_EXTRA}' + +# build only mt libraries and install symlinks for compatibility +BJAM_EXTRA += "threading=multi" +do_install_append() { + for lib in ${BOOST_LIBS}; do + if [ -e ${D}${libdir}/libboost_${lib}.a ]; then + ln -s libboost_${lib}.a ${D}${libdir}/libboost_${lib}-mt.a + fi + if [ -e ${D}${libdir}/libboost_${lib}.so ]; then + ln -s libboost_${lib}.so ${D}${libdir}/libboost_${lib}-mt.so + fi + done +} 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 // std::size_t ++#include + #include + + #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 // size_t ++#include + #include + + #include +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 string_type; + typedef CharT char_type; + typedef boost::date_time::period_parser period_parser_type; +- typedef special_values_parser special_values_parser_type; ++ typedef boost::date_time::special_values_parser special_values_parser_type; + typedef std::vector > input_collection_type; + typedef format_date_parser 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 ++ + 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 ++ + 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 ++ + 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 + #include ++#include + + #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 ++ + 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 ++ + 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 ++ + 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 + #include + #include + #include +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 + #include + #include ++#include + + /////////////////////////////////////////////////////////////////////////////// + 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 + + // STL ++#include + #include // for std::size_t + #include + +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 + #include + #include ++#include + #if defined(BOOST_SPIRIT_DEBUG) + #include + #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 + #include + #include ++#include + + // 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 + +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 ++#include + + 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 + #include + ++#if __GNUC__ == 4 && __GNUC_MINOR__ == 1 ++# include ++#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 // std::size_t ++#include + #include + + #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 // size_t ++#include + #include + + #include +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 string_type; + typedef CharT char_type; + typedef boost::date_time::period_parser period_parser_type; +- typedef special_values_parser special_values_parser_type; ++ typedef boost::date_time::special_values_parser special_values_parser_type; + typedef std::vector > input_collection_type; + typedef format_date_parser 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 ++ + 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 ++ + 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 ++ + 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 + #include ++#include + + #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 ++ + 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 ++ + 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 ++ + 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 + #include + #include + #include +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 + #include + #include ++#include + + /////////////////////////////////////////////////////////////////////////////// + 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 + + // STL ++#include + #include // for std::size_t + #include + +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 + #include + #include ++#include + #if defined(BOOST_SPIRIT_DEBUG) + #include + #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 + #include + #include ++#include + + // 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 lexer; ++ lexer 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(first, last, pos, +- language); ++ using re2clex::lex_functor; ++ return new lex_functor(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::log10( (float)(std::max)( num_passed, num_failed ) ) ) + 1; ++ std::size_t width = static_cast( 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::log10( (float)(std::max)( num_passed, num_failed ) ) ) + 1 ++ ? static_cast( std::log10( (double)(std::max)( num_passed, num_failed ) ) ) + 1 + : 1; + + where_to << std::setw( indent ) << "" << std::setw( width ) << num_passed -- cgit v1.2.3