Go to file
Fabrice Fontaine 288b517193 boost: context needs thread if gcc < 6
Commit f3a483a81b added -std=c++11 to
boost build if context is selected and gcc is at least 4.7 however it
has the side effect that cc-tool fails to find boost_system with the
following error if context and system is enabled with a gcc greater
than 6:

configure:16312: /home/dawncrow/buildroot-test/scripts/instance-0/output/host/bin/x86_64-linux-g++ -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -Os   -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I/home/dawncrow/buildroot-test/scripts/instance-0/output/host/x86_64-buildroot-linux-musl/sysroot/usr/include  -L/home/dawncrow/buildroot-test/scripts/instance-0/output/host/x86_64-buildroot-linux-musl/sysroot/usr/lib conftest.o -lboost_system -latomic >&5
conftest.o: In function `boost::system::error_category::std_category::equivalent(int, std::error_condition const&) const':
conftest.cpp:(.text._ZNK5boost6system14error_category12std_category10equivalentEiRKSt15error_condition[_ZNK5boost6system14error_category12std_category10equivalentEiRKSt15error_condition]+0x37): undefined reference to `boost::system::detail::generic_category_instance'

This error is related to the fact that since boost 1.68 and commit
7b6dcf6ac6,
boost system headers are now C++14 "by default" with gcc above 6:
- https://github.com/boostorg/system/issues/24
- https://github.com/boostorg/system/issues/26
- https://lists.boost.org/Archives/boost/2018/08/242770.php

So when building with gcc > 6, cc-tool thinks that boost has
generic_category_instance but because boost was compiled with
std=c++11, this function will not be in the library causing a link error

Instead of "hacking" even more boost, just remove -std=c++11 from
boost.mk and select BOOST_THREAD with gcc lower than 6

Fixes:
 - http://autobuild.buildroot.org/results/fc8f8a64751c751b2b66301967cc008509bbaa70

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Tested-by: Matt Weber <matthew.weber@rockwellcollins.com>
Reviewed-by: Ferdinand van Aartsen <ferdinand@ombud.nl>
Tested-by: Ferdinand van Aartsen <ferdinand@ombud.nl>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2018-10-26 17:09:51 +02:00
arch arch: drop BR2_GCC_TARGET_CPU_REVISION option 2018-10-01 14:52:32 +02:00
board configs/odroidxu4: new defconfig 2018-10-21 11:00:04 +02:00
boot boot/xloader: remove package 2018-10-26 16:59:05 +02:00
configs configs/odroidxu4: new defconfig 2018-10-21 11:00:04 +02:00
docs docs/website: update for 2018.02.7 2018-10-25 21:10:20 +02:00
fs fs/common: allow custom user table to override package-defined users 2018-10-20 14:33:24 +01:00
linux linux: add custom linux boot logo option 2018-10-21 18:16:29 +02:00
package boost: context needs thread if gcc < 6 2018-10-26 17:09:51 +02:00
support support/testing: test_hardening fix flake8 whitespace 2018-10-20 17:27:28 +02:00
system system: update Config.in comment about systemd dependencies 2018-09-15 00:05:48 +02:00
toolchain toolchain: move glibc nsswitch.conf handling to a post-target hook 2018-10-21 01:50:35 +02:00
utils scancpan: add PERL_FOO_DISTNAME in perl-foo.mk 2018-10-24 00:22:13 +01:00
.defconfig
.flake8 .flake8: ignore utils/diffconfig 2018-03-13 22:37:54 +01:00
.gitignore
.gitlab-ci.yml .gitlab-ci.yml: do runtime tests only on explicit trigger 2018-10-21 23:34:18 +02:00
.gitlab-ci.yml.in .gitlab-ci.yml: do runtime tests only on explicit trigger 2018-10-21 23:34:18 +02:00
CHANGES Update for 2018.02.7 2018-10-25 21:07:23 +02:00
Config.in core: support host gcc of the future 2018-10-23 11:43:35 +02:00
Config.in.legacy boot/xloader: remove package 2018-10-26 16:59:05 +02:00
COPYING
DEVELOPERS bluez5_utils-headers: new package 2018-10-21 16:35:31 +01:00
Makefile core: support host gcc of the future 2018-10-23 11:43:35 +02:00
Makefile.legacy
README

Buildroot is a simple, efficient and easy-to-use tool to generate embedded
Linux systems through cross-compilation.

The documentation can be found in docs/manual. You can generate a text
document with 'make manual-text' and read output/docs/manual/manual.text.
Online documentation can be found at http://buildroot.org/docs.html

To build and use the buildroot stuff, do the following:

1) run 'make menuconfig'
2) select the target architecture and the packages you wish to compile
3) run 'make'
4) wait while it compiles
5) find the kernel, bootloader, root filesystem, etc. in output/images

You do not need to be root to build or run buildroot.  Have fun!

Buildroot comes with a basic configuration for a number of boards. Run
'make list-defconfigs' to view the list of provided configurations.

Please feed suggestions, bug reports, insults, and bribes back to the
buildroot mailing list: buildroot@buildroot.org
You can also find us on #buildroot on Freenode IRC.

If you would like to contribute patches, please read
https://buildroot.org/manual.html#submitting-patches