The boost-context module contains ARM assembly code, which uses ARM
instructions. Therefore, on Thumb-2 only platforms (such as Cortex-M),
the following build error occurs:
libs/context/src/asm/make_arm_aapcs_elf_gas.S: Assembler messages:
libs/context/src/asm/make_arm_aapcs_elf_gas.S:33: Error: unshifted register required -- `bic a1,a1,#15'
libs/context/src/asm/make_arm_aapcs_elf_gas.S:42: Error: immediate value out of range
To avoid this error, we make the boost-context module depend on
BR2_ARM_CPU_HAS_ARM.
Fixes:
http://autobuild.buildroot.net/results/8f6770b59a343b9f710e9363b43227ee9f026660
Signed-off-by: Romain Naour <romain.naour@gmail.com>
[Thomas: use BR2_ARM_CPU_HAS_ARM instead of a dependency on
!BR2_ARM_CPU_ARMV7M.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Until now this library wasn't handled by the Buildroot packaging,
so add a new config option to disable it when requested.
Also disable boost-type_erasure for the host variant to keep it as
minimal as possible.
Signed-off-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The module description can be found in the release notes of v1.61.0:
http://www.boost.org/users/history/version_1_61_0.html
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The BR2_PACKAGE_BOOST_ARCH_SUPPORTS option was originally added in
commit feeab03fa6 to be able to disable
Boost on broken NIOSII CodeSourcery toolchains.
However, since then, the CodeSourcery toolchain has been updated, and
once the fenv problem is fixed, this NIOSII toolchain is capable of
building Boost.
Thanks to this we can completely get rid of the
BR2_PACKAGE_BOOST_ARCH_SUPPORTS symbol, from boost itself and from all
its reverse dependencies.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
The fenv support provided by glibc on NIOSII and Microblaze is not
sufficient for Boost, causing the same build failures as the ones we had
with uClibc.
To address this, we adapt (and rename) the existing
0006-uclibc-fenv.patch by forcefully disabling fenv support in Boost on
NIOSII and Microblaze, in addition to the existing uClibc exclusion.
Fixes (for NIOSII):
http://autobuild.buildroot.net/results/9b8c5d2cd31d63ae70b41d1434868c83e65b8423/
Fixes (for Microblaze):
http://autobuild.buildroot.net/results/0b9db4c5cfd80d75eb620dbf7a6201faed7230a1/
Cc: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
The boost build system does not recognize the fact that fenv.h is an
optional module in uClibc and tries to use it even if UCLIBC_HAS_FENV
is disabled. This patch disables fenv support completely when compiling
with a uClibc-based toolchain.
Fixes
http://autobuild.buildroot.net/results/160/160e1b98b204148ecf128144826554b6c523931b/
and many others
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The boost package adds a dependency on the libiconv package when
boost-locale is selected but locale support is not available in the
toolchain. However, it forgets to select BR2_PACKAGE_LIBICONV in this
situation, causing the following build failure:
http://autobuild.buildroot.org/results/ab1809f4fa8cf29208f9503edd90aca87fe397c2/
This commit fixes this mistake by adding the necessary select
BR2_PACKAGE_LIBICONV.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
See the conclusion about external toolchains during the Buildroot
meeting [1]:
"In the future, we stick to a single external toolchain version. The
Kconfig symbol should not encode the version (avoid legacy handling)"
[1] http://elinux.org/index.php?title=Buildroot:DeveloperDaysELCE2015#Report
Signed-off-by: Romain Naour <romain.naour@openwide.fr>
Reviewed-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Tested-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Coroutine2 is a new (C++14) library added in boost 1.59.0. We also add
coroutine2 to the '--without-libraries' configuration flag for the host
variant.
Build successfully tested with Arago ARMv5 2011.09 - a gcc v4.5.3 toolchain.
Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
Reviewed-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Tested-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The build step for the target was missing, causing the compilation to happen
during the staging install step. Add a dedicated build step like we do for
the host build.
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
The host and target build steps were mixed between eachother. Reorder them
so we have the target steps before the host ones.
No functional change, but helps readability.
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
The boost build is very verbose (11K+ lines even when no sub options are
enabled). While this can be handy for debugging, make is less verbose when
'make -s' is used, similar to how we do it for autotools.
With this, make -s boost outputs less than 100 lines.
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Instead of using a patch to specify the architecture variant for
sparc, use some Boost configure variables.
[Thomas: reword commit log.]
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The boost context module does not build on sparc, even if sparc is
advertised as a supported architecture by the boost documentation. So
let's disallow this module for the time being.
Fixes:
http://autobuild.buildroot.org/results/206/2060e6e31c4d739947097faf6587e0a06681fee2/
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The default for sparc is v7, which doesn't work for sparc64.
Use ultrasparc for sparc64.
Fixes following autobuild errors:
http://autobuild.buildroot.net/results/0cad0a6eddc153098bb6d1501afd1cf4a57a82d1/
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To help understanding the list of architectures supported by
Boost.Context, add a link to the appropriate documentation page.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
It was disabled by default by commit
611dfe6cb5 because it caused some build
failures on AArch64 and SuperH. However, the coroutine module needs
the context module, which is only available on certain architectures.
We can therefore allow enabling the coroutine module, but only if the
context module is available.
[Thomas: extend commit log with more details.]
Signed-off-by: Edson Siqueira <edson.siqueira@datacom.ind.br>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Use BR2_SHARED_STATIC_LIBS for building both static and shared boost libs.
The static libs are copied to the staging directory. Only the shared libs are
copied to the rootfs image.
[Thomas:
- remove empty else clause, and instead add a comment that explains
why we're doing something only for the BR2_STATIC_LIBS=y and
BR2_SHARED_LIBS=y.
- remove trailing backslash at the end of the BOOST_CONF_OPTS
definition.]
Signed-off-by: Jonathan Ben Avraham <yba@tkos.co.il>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit adds a patch to Boost to make it use the eventfd()
function provided by the C library when uClibc is used, rather than
falling back to using directly the __NR_eventfd system call. This
fixes the build on ARC, which doesn't define __NR_eventfd.
The original problem is that uClibc pretends to be glibc 2.2, which
didn't had eventfd(), so Boost makes the system call
manually. uClibc-ng, in its next release, will pretend to be glibc
2.10 (see
http://cgit.uclibc-ng.org/cgi/cgit/uclibc-ng.git/commit/?id=4ff3a6c8eb91db71d6dc3d2932b66e848bd20ac3),
which will also fix the problem, but requires bumping the uClibc
version, rebuilding the external toolchains, and so on.
Ideally, Boost should be doing a compile test to detect if eventfd()
is available or not, but the Boost build system is so brain-damaged
that doing so would require way too much effort.
Fixes:
http://autobuild.buildroot.org/results/22b/22b710346d2cd78b7b51cdccd18d670bb6ac5d24/
and many similar build failures
[Peter: minor tweaks to description]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Also remove the variables TARGET_CC_VERSION and HOST_CC_VERSION which
lack the BOOST_ prefix and are used only once.
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The build of boost-log with a uClibc toolchain on PowerPC fails with
some weird C++ issues. Since nobody ever looked into this problem,
let's "fix" the autobuilder issue by not allowing to select boost-log
in such a situation.
Fixes:
http://autobuild.buildroot.net/results/13b43105caf4d3952de70030b51f8d96cf6604ee/
(and many, many similar build failures)
[Peter: also add dependency to comment]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
-q option is missing in BOOST_INSTALL_STAGING_CMDS,
so the build doesn't stop on the first error.
This help to see what happened.
Signed-off-by: Romain Naour <romain.naour@openwide.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The current NIOS 2 toolchains are not capable of building Boost, so
let's disable it and its reverse dependencies. Even though it's not
strictly an architecture dependency, we use the <pkg>_ARCH_SUPPORTS
paradigm for this dependency, since it simplifies a lot handling all
boost reverse dependencies, and is anyway quite similar to an
architecture dependency since we don't display a comment about this
dependency.
Fixes:
http://autobuild.buildroot.net/results/e119b1ef55c546e0d0598b85c46ceefa5c43d5a6/
[Peter: also update mpd comment]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Now that largefile is mandatory removes package dependencies and
conditionals.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Yannick Kiekens <yannickkiekens@gmail.com>
[Thomas: tested on ARM uClibc, and AArch64 glibc, the latter being the
case that used to fail building, and was the reason why boost log had
been disabled.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
It was disabled in february 2013 by commit
e5434583ba
because did not build correctly with ucLibc at the time.
It now builds correctly with both uClibc v0.9.33 and uClibc-ng.
Signed-off-by: Noé Rubinstein <nrubinstein@aldebaran.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Autogenerated from rename-patch.py (http://patchwork.ozlabs.org/patch/403345)
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Since a while, the semantic of BR2_PREFER_STATIC_LIB has been changed
from "prefer static libraries when possible" to "use only static
libraries". The former semantic didn't make much sense, since the user
had absolutely no control/idea of which package would use static
libraries, and which packages would not. Therefore, for quite some
time, we have been starting to enforce that BR2_PREFER_STATIC_LIB
should really build everything with static libraries.
As a consequence, this patch renames BR2_PREFER_STATIC_LIB to
BR2_STATIC_LIBS, and adjust the Config.in option accordingly.
This also helps preparing the addition of other options to select
shared, shared+static or just static.
Note that we have verified that this commit can be reproduced by
simply doing a global rename of BR2_PREFER_STATIC_LIB to
BR2_STATIC_LIBS plus adding BR2_PREFER_STATIC_LIB to Config.in.legacy.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
To be consistent with the recent change of FOO_MAKE_OPT into FOO_MAKE_OPTS,
change remaining occurrences of _OPT into _OPTS.
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Just like was done in commit b37641c95b
("boost: Force the target ABI for MIPS architecture") by Vicente for
the MIPS architecture, this commit also forces the ABI passed to Boost
build system to "aapcs" for the ARM architecture.
Since we now have three cases to handle, an intermediate variable
called BOOST_ABI is introduced.
Fixes:
http://autobuild.buildroot.org/results/5ae/5aeb3a9f067faf6687051643bf49a0b619cb4c3b/
Cc: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Currently, there are five packages which use 'subst' macro to change their version.
* Three of them (ebtables, icu, perl) use this macro "in place" :
EBTABLES_SITE = http://downloads.sourceforge.net/project/ebtables/ebtables/ebtables-$(subst .,-,$(EBTABLES_VERSION))
ICU_SOURCE = icu4c-$(subst .,_,$(ICU_VERSION))-src.tgz
PERL_CROSS_OLD_POD = perl$(subst .,,$(PERL_CROSS_BASE_VERSION))delta.pod
PERL_CROSS_NEW_POD = perl$(subst .,,$(PERL_VERSION))delta.pod
* Two of them (boost, libnss) use an additional variable :
BOOST_FILE_VERSION = $(subst .,_,$(BOOST_VERSION))
BOOST_SOURCE = boost_$(BOOST_FILE_VERSION).tar.bz2
LIBNSS_SITE_VERSION = $(subst .,_,$(LIBNSS_VERSION))
LIBNSS_SITE = https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_$(LIBNSS_SITE_VERSION)_RTM/src
* Additionally two packages (duma, rings) doesn't use it at all :
DUMA_VERSION = 2_5_15
DUMA_SITE = http://downloads.sourceforge.net/project/duma/duma/2.5.15
RINGS_VERSION_MAJOR = 1.3.0
RINGS_SUBDIR = rings-v_1_3_0
This commit makes changes to use 'subst' macro "in place", in all of them.
Signed-off-by: Jerzy Grzegorek <jerzy.grzegorek@trzebnica.net>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Define an empty HOST_BOOST_DEPENDENCIES to avoid inheriting
BOOST_DEPENDENCIES.
Also ditch redundant empty definitions for BOOST_DEPENDENCIES and
BOOST_FLAGS.
Fixes:
http://autobuild.buildroot.net/results/9c6/9c64dd473a8096bb6343d746544997e333053e8b/
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Reviewed-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Fix build failures that happened after the version bump such as:
http://autobuild.buildroot.net/results/570/570b091702763b29843d9207bc14dea67085fea0/http://autobuild.buildroot.net/results/c26/c26498f1a4e6bcbc3a2dfce6a51fa7d21b72f21f/
and other failures by disabling the new (1.54+) coroutine and log
libraries which weren't handled and hence enabled by default.
These also made the target size bigger and build times longer
unnecessarily.
When/if they are needed for some future user this can be revisited and
their proper conditions for enablement assesed.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Acked-by: Luca Ceresoli <luca@lucaceresoli.net>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This patch lines up the comments in Config.in files that clarify which
toolchain options the package depends on.
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Currently, when we need to do a conditional on the type of C library
used, we need to take into account the three toolchain backends. As we
are going to add eglibc support to the Buildroot toolchain backend, it
would become even uglier, so this patch introduces two new hidden
options: BR2_TOOLCHAIN_USES_UCLIBC and BR2_TOOLCHAIN_USES_GLIBC, that
exist regardless of the toolchain backend. The entire Buildroot code
base is converted to use those options.
Note that we have intentionally created only one option
(BR2_TOOLCHAIN_USES_GLIBC) for both glibc and eglibc, since they are
essentially the same, as far as Buildroot is concerned.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The boost context library needs porting to each new architecture
and only a limited number of ports are currently available.
Signed-off-by: Will Newton <will.newton@linaro.org>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
and re-enable boost context library since its compilation with
uClibc is fixed. Disable new atomic library because it can not
compile with uClibc (fixed in upstream version).
Signed-off-by: Victor Hiairrassary <victor.hiairrassary.ml@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
When using the --with-icu option without specifying the directory, boost's
bootstrap.sh script will look at "common" locations (lines 289-294):
COMMON_ICU_PATHS="/usr /usr/local /sw"
for p in $COMMON_ICU_PATHS; do
if test -r $p/include/unicode/utypes.h; then
ICU_ROOT=$p
fi
done
With buildroot it may surely become problematic at some point.
Signed-off-by: Ignacy Gawędzki <i@lri.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
At the moment, the boost build is very verbose, it gives both the
Jam-level command being executed, and the underlying system command
being executed, with lots of newlines. Makes it hard to see where the
failure is when there is one.
So, we reduce the verbosity level to -d+1, which only gives the
Jam-level command. So now, it looks like:
common.copy /home/test/outputs/e/host/usr/aarch64-buildroot-linux-gnu/sysroot/usr/include/boost/geometry/multi/multi.hpp
common.mkdir /home/test/outputs/e/host/usr/aarch64-buildroot-linux-gnu/sysroot/usr/include/boost/geometry/strategies
gcc.compile.c++ bin.v2/libs/regex/build/gcc-4.7.3/release/threading-multi/icu.o
gcc.compile.c++ bin.v2/libs/regex/build/gcc-4.7.3/release/threading-multi/regex_debug.o
gcc.compile.c++ bin.v2/libs/regex/build/gcc-4.7.3/release/threading-multi/regex_raw_buffer.o
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Boost normally allows to build a non-threaded variant by passing
threading=single or a multi-threaded variant by passing
threading=multi.
Unfortunately, the build of threading=single doesn't seem to work any
more, due to bizarre things in the build system. We get "duplicate
target" errors, that according to
http://lists.boost.org/boost-build/2012/11/26582.php should appear if
we ask for both threading=single,multi. But it seems to happen even in
the threading=single case.
Since Boost is such a big C++ beast, it probably doesn't make much
sense to try to support it on toolchains that don't have thread
support. So, we make the boost package depend on thread support. If
someone cares enough in getting Boost to work in a non-threaded
environment, then we can always revert back.
Note that the boost package has no reverse dependencies in Buildroot,
so we don't need to propagate this new dependency anywhere.
Fixes:
http://autobuild.buildroot.org/results/439e72ac74c8058f30977e6abc39acd6379a17d3/build-end.log
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Add the same -jN parameter as used for make.
Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Short version avoids compiling problems with toolchains
containing long version string like Linaro toolchain.
[Peter: drop head/sed as -dumpversion returns version directly]
Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Boost 1.49 added two new modules, locale and timer - So add sub options
to control compilation of those. The locale module by default compiles
the posix backend under Linux, but this needs monetary.h which isn't
provided by uClibc, so work around that.
While we're at it, hide the icu option as that is just an internal
configuration option used by E.G. the locale module.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Drop quotes around TARGET_CXX as the boost buildsystem does handle
spaces in the compiler command name, but treats it as a single command
(and errors out) if quotes are used and ccache enabled.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>