kumquat-buildroot/toolchain
Fabrice Fontaine a270097247 toolchain/Config.in: update BR2_TOOLCHAIN_HAS_LIBATOMIC dependencies
Update BR2_TOOLCHAIN_HAS_LIBATOMIC dependencies to avoid the following
build failure with libopenssl and
BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7M_UCLIBC_STABLE:

/home/buildroot/autobuild/run/instance-2/output-1/host/opt/ext-toolchain/arm-buildroot-uclinux-uclibcgnueabi/bin/ld.real: ./libcrypto.a(libcrypto-lib-threads_pthread.o): in function `CRYPTO_atomic_or':
threads_pthread.c:(.text+0xfa): undefined reference to `__atomic_is_lock_free'

libatomic is available since gcc 4.8, when thread support is enabled.
However, the gcc logic in libatomic/configure.tgt does not recognize
"uclinux" as a valid OS part of the target tuple, and therefore it
does not build libatomic. The "uclinux" part of the tuple is used by
Buildroot when BR2_BINFMT_FLAT=y [1]. This broken logic has only been
fixed for arm since gcc 10.1.0 [2].

Indeed, bootlin armv7m is an uclibc toolchain compiled with atomic
support through libatomic.

[1] https://git.buildroot.net/buildroot/commit/?id=b3d1fb26dcadd8c570e2c415ce05398ecc810b32
[2] https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=b1e21e5a5d19b436f948710e09157c5b3244f541

Fixes:
 - http://autobuild.buildroot.org/results/d25e898f9715bf6a21284807361a57735a7a2e1d
 - http://autobuild.buildroot.org/results/e37ed5ad6ba41d610bffe9c234f699e203ef5069

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
(cherry picked from commit 8cb0f6e011)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2024-06-08 13:12:23 +02:00
..
toolchain toolchain/toolchain-buildroot: add comment about using virtual package infra 2023-02-06 14:22:38 +01:00
toolchain-bare-metal-buildroot toolchain/toolchain-bare-metal-buildroot: wire up newlib-bare-metal 2024-02-06 17:57:20 +01:00
toolchain-buildroot package/gcc/gcc-final: add a target variant in charge of target installation 2023-09-30 14:49:51 +02:00
toolchain-external toolchain: drop codescape mips toolchains 2024-03-22 20:51:35 +01:00
Config.in toolchain/Config.in: update BR2_TOOLCHAIN_HAS_LIBATOMIC dependencies 2024-06-08 13:12:23 +02:00
helpers.mk toolchain/helpers.mk: use int as main() return type in checks 2024-05-06 12:51:59 +02:00
toolchain-wrapper.c toolchain/toolchain-wrapper.c: set CCACHE env variables only when ccache is enabled 2023-02-07 12:28:32 +01:00
toolchain-wrapper.mk toolchain/toolchain-wrapper: reproducible builds: omit absolute paths from debug symbols 2022-01-08 14:48:22 +01:00
toolchain.mk toolchain: support gconv modules from glibc >= 2.34 2022-10-21 21:02:40 +02:00