From 90ce360afeabe9d5477e11b958e88024a70deda3 Mon Sep 17 00:00:00 2001 From: John Bowler Date: Wed, 6 Jul 2005 00:27:09 +0000 Subject: Changes to make libboost compile and link on uclibc --- packages/boost/boost_1.32.0.bb | 34 ++++++++++++++++++++++++++--- packages/boost/files/.mtn2git_empty | 0 packages/boost/files/linux-uclibc.patch | 10 +++++++++ packages/boost/files/unit_test_log10f.patch | 20 +++++++++++++++++ 4 files changed, 61 insertions(+), 3 deletions(-) create mode 100644 packages/boost/files/.mtn2git_empty create mode 100644 packages/boost/files/linux-uclibc.patch create mode 100644 packages/boost/files/unit_test_log10f.patch (limited to 'packages/boost') diff --git a/packages/boost/boost_1.32.0.bb b/packages/boost/boost_1.32.0.bb index 33f41ec1c8..2dd2a0da28 100644 --- a/packages/boost/boost_1.32.0.bb +++ b/packages/boost/boost_1.32.0.bb @@ -9,6 +9,7 @@ MAINTAINER = "John Bowler " SECTION = "devel" PRIORITY = "optional" LICENSE = "Boost Software License" +PR = "r1" # need debian package naming for the libs inherit debian @@ -18,7 +19,10 @@ DEPENDS += "boost-jam-native" 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}" -SRC_URI = "http://download.sourceforge.net/boost/${BOOST_P}.tar.bz2" +SRC_URI = "http://download.sourceforge.net/boost/${BOOST_P}.tar.bz2 \ + file://unit_test_log10f.patch;patch=1 \ + file://linux-uclibc.patch;patch=1 \ + " S = "${WORKDIR}/${BOOST_P}" @@ -72,9 +76,33 @@ FILES_${PN}-dev = "${includedir} ${libdir}/libboost_*.so ${libdir}/libboost_*.a" # 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}" + BJAM_TOOLS = "-sTOOLS=gcc \ - '-sGCC=${CC}' \ - '-sGXX=${CXX}' \ + '-sGCC=${CC} '${BJAM_CONF} \ + '-sGXX=${CXX} '${BJAM_CONF} \ -sBUILD='release space on off' \ '-sPYTHON_VERSION=${PYTHON_VERSION}' \ --layout=system \ diff --git a/packages/boost/files/.mtn2git_empty b/packages/boost/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/boost/files/linux-uclibc.patch b/packages/boost/files/linux-uclibc.patch new file mode 100644 index 0000000000..79f14dea88 --- /dev/null +++ b/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/packages/boost/files/unit_test_log10f.patch b/packages/boost/files/unit_test_log10f.patch new file mode 100644 index 0000000000..b235e12446 --- /dev/null +++ b/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