As Python 3 is the default Python version, change Boost to build against Python
3 instead of Python 2 if enabled. It's not simple to support both, so this
means that support for building boost-python against Python 2 has been removed.
This involves backporting a number of patches upstream to fix Python 3 support,
and telling Boost precisely where to find the Python headers and libraries so
that it doesn't try to invoke the host Python to determine these values.
[ YOCTO #11104 ]
(From OE-Core rev: 0f5418eb0ce12811b16d2e3c28c28140a509f685)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Drop backported 0002-boost-test-execution_monitor.hpp-fix-mips-soft-float.patch
Rebase consider-hardfp.patch to 0001-When-using-soft-float-on-ARM-we-should-not-expect-th.patch
(From OE-Core rev: ef603f41b5df4772bb598ec9d389dd5f858592af)
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
boost was adding -march/-mcpu itself, and adding -m32/-m64 itself as well.
Patch that behavior out, apply another similar patch from elsewhere, and
adjust BJAM_OPTS to fix the x32 build.
(From OE-Core rev: 2dc30ad281b625e0c4f2437879bce58245aa45b1)
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
It's a work around for a defect when build in parallel:
https://svn.boost.org/trac/boost/ticket/12477
(From OE-Core rev: 9f30160f8623aebe8459e5b155d01397ff0f13b3)
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Replace math with integer according to the commit upstream:
(From OE-Core rev: 2e2ecd867d47ee24b37f61af6db5338df5059844)
(From OE-Core rev: 4c9fe10f3aaa4ee6e8fee52816298896b18cdb60)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The alleviates the need to use and maintain hand-written
assembly, just relying on the compiler to do the right
thing.
(From OE-Core rev: 0e683664dfbe2b71288445a86e31fbea062ed564)
Signed-off-by: André Draszik <git@andred.net>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Backport upstream patch to use g++ 4.1+ __sync intrinsics
instead of incompatible hand-written assembly when
compiling for MIPS16e
Upstream-Status: Backport https://svn.boost.org/trac/boost/ticket/12418
(From OE-Core rev: 8ded5da8952e4a39851e0184bde323e01dd73d2c)
Signed-off-by: André Draszik <git@andred.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Backport patch to fix CVE-2012-2677 for boost from:
https://svn.boost.org/trac/boost/changeset/78326
(From OE-Core rev: 0a2df616a5c3316704742f1dcf37b450920e0280)
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
0001-Do-not-qualify-fenv.h-names-that-might-be-macros.patch has been merged upstream.
(From OE-Core rev: 25d4129bab9f6abeecbfec6b69612e387851bfe3)
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We get errors like
./boost/test/execution_monitor.hpp:490:27: error: 'FE_DIVBYZERO' was not
declared in this scope
BOOST_FPE_DIVBYZERO = FE_DIVBYZERO,
on musl, rightly because FPU is not used on soft-float
systems
(From OE-Core rev: 17566da0b86cc282d5e598af54e73555c121beb3)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Due to the version update to 1.59.0, the two patches previously
backported in this recipe are now dropped. The actual status of
the arm-intrinsics.patch (reported with Upstream-Status: Backport)
is unknown to the committer, and hence, that patch is kept in the
recipe, even if it is possibly not required anymore. A deeper
analysis is required to determine need and status of that patch.
Second, boost 1.59.0 provides a new library, called timer,
which is packaged as further library in the boost recipe. The
update to boost 1.60.0 required no further changes beyond
changing the checksum hashes.
Third, on PPC architectures, qemuppc & mpc8315e-rdb [1] (tested
by Ross Burton), the boost test library with the vanilla
version 1.60.0 fails with:
| gcc.compile.c++ bin.v2/libs/test/build/aca09349fdb84d131321425f6c3a38ed/execution_monitor.o
| In file included from [...]/tmp/sysroots/mpc8315e-rdb/usr/include/fenv.h:114:0,
| from [...]/tmp/sysroots/mpc8315e-rdb/usr/include/c++/5.3.0/fenv.h:36,
| from ./boost/detail/fenv.hpp:97,
| from ./boost/test/execution_monitor.hpp:64,
| from ./boost/test/impl/execution_monitor.ipp:31,
| from libs/test/src/execution_monitor.cpp:16:
| ./boost/test/impl/execution_monitor.ipp: In function 'unsigned int boost::fpe::enable(unsigned int)':
| ./boost/test/impl/execution_monitor.ipp:1383:7: error: expected id-expression before '(' token
| ::feclearexcept(BOOST_FPE_ALL);
| ^
| ./boost/test/impl/execution_monitor.ipp: In function 'unsigned int boost::fpe::disable(unsigned int)':
| ./boost/test/impl/execution_monitor.ipp:1420:7: error: expected id-expression before '(' token
| ::feclearexcept(BOOST_FPE_ALL);
| ^
The commit f50e7bc9fed323c5705c0ed992c03e80eeec1dd6 from the
boostorg/test github repository (branch: develop) [2] addresses
that issue, but it was not merged in the 1.60.0 release. This
commit adds this upstream-accepted patch, which was created by:
`git checkout f50e7bc9fed323c5705c0ed992c03e80eeec1dd6 && git format-patch -1`
[1] http://lists.openembedded.org/pipermail/openembedded-core/2016-January/114844.html
[2] f50e7bc9fe
(From OE-Core rev: 17d77db5e1203e18cdd178e7d9a457310425ebdc)
Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta-raspberrypi and some other systems are ARMv6k but tell OE that
they're ARMv6 which doesn't fully support non-word atomics. armv6k
does, but Boost didn't handle the recognition correctly in the 1.56
release. Backport the patch that fixes the build.
See: https://svn.boost.org/trac/boost/ticket/10446
(From OE-Core rev: abf8baba208927a0156bb4b743614c6252f2af21)
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>