Go to file
Thomas Petazzoni 42735cb9b9 toolchain: introduce BR2_TOOLCHAIN_HAS_LIBATOMIC
Until now, we were assuming that whenever you have gcc 4.8, libatomic
is available. It turns out that this is not correct, since libatomic
will not be available if thread support is disabled in the toolchain.

Therefore, __atomic_*() intrinsics may not be available even if the
toolchain uses gcc 4.8.

To solve this problem, we introduce a BR2_TOOLCHAIN_HAS_LIBATOMIC
boolean, which indicates whether the toolchain has libatomic. It is
the case when you are using gcc >= 4.8 *and* thread support is
enabled. We then use this new BR2_TOOLCHAIN_HAS_LIBATOMIC to define
BR2_TOOLCHAIN_HAS_ATOMIC.

As explained in the comment, on certain architectures, libatomic is
technically not needed to provide the __atomic_*() intrinsics since
they might be all built-in. However, since libatomic is only absent in
non-thread capable toolchains, it is not worth making things more
complex for such seldomly used configuration.

Note that we are introducing the intermediate
BR2_TOOLCHAIN_HAS_LIBATOMIC option because it will be useful on its
own for certain packages.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
[Thomas: improve Config.in comment using a suggestion from Yann.]
2016-03-20 23:40:03 +01:00
arch arch/arm: add Cortex-M4 entry 2016-03-20 15:37:30 +01:00
board qemu-m68k: add new board 2016-03-20 15:28:55 +01:00
boot barebox: bump to version 2016.03.0 2016-03-17 14:29:06 +01:00
configs qemu-m68k: add new board 2016-03-20 15:28:55 +01:00
docs core: add the possibility to provide help for custom rules 2016-03-19 16:41:22 +01:00
fs fs/common: generate users before setting permissions 2016-02-01 07:25:36 +01:00
linux linux: build and install kernel selftests 2016-03-20 22:04:47 +01:00
package qt5: bump version to 5.6.0 2016-03-20 23:23:37 +01:00
support scancpan: use recommend & test flags only at first level 2016-03-15 23:16:33 +01:00
system skeleton: Recreate /var/run symlink 2016-02-11 23:20:38 +01:00
toolchain toolchain: introduce BR2_TOOLCHAIN_HAS_LIBATOMIC 2016-03-20 23:40:03 +01:00
.defconfig arch: kill avr32 2015-02-14 17:39:50 +01:00
.gitignore update gitignore 2013-05-04 12:41:55 +02:00
CHANGES Update for 2016.02 2016-03-01 21:47:30 +01:00
Config.in Config.in: add symbols for BR2_HOST_GCC_AT_LEAST_4_6 2016-03-20 14:55:27 +01:00
Config.in.legacy package/qt5webkit-examples: remove obsolete package 2016-03-20 23:22:42 +01:00
COPYING COPYING: add exception about patch licensing 2016-02-26 19:50:13 +01:00
Makefile core: also display the custom help with our main help 2016-03-19 16:41:26 +01:00
Makefile.legacy Makefile.legacy: fix recursive invocation with BUILDROOT_DL_DIR and _CONFIG 2014-02-11 08:14:57 +01:00
README README: add reference to submitting-patches 2016-02-01 19:16:08 +01:00

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