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>