buildroot/toolchain
Fabrice Fontaine 741c987e39 toolchain/helpers.mk: strengthen uClibc locale check
Currently, when verifying the configuration of a uClibc toolchain for
the presence of locale support, we check __UCLIBC_HAS_LOCALE__. It
turns out that we in fact also expect __UCLIBC_HAS_XLOCALE__ to be
defined, as without it locale_t is not defined, causing build failure
in some packages, such as libcpprestsdk:

In file included from /home/thomas/autobuild/instance-0/output-1/build/libcpprestsdk-2.10.18/Release/include/cpprest/json.h:18,
                 from /home/thomas/autobuild/instance-0/output-1/build/libcpprestsdk-2.10.18/Release/src/pch/stdafx.h:88,
                 from /home/thomas/autobuild/instance-0/output-1/build/libcpprestsdk-2.10.18/Release/src/http/client/http_client_msg.cpp:13:
/home/thomas/autobuild/instance-0/output-1/build/libcpprestsdk-2.10.18/Release/include/cpprest/asyncrt_utils.h:317:13: error: 'locale_t' does not name a type
  317 |     typedef locale_t xplat_locale;
      |             ^~~~~~~~

As essentially our requirement for uClibc in external toolchains is
"it should match the uClibc configuration used by Buildroot for
internal toolchains", it makes sense to verify
__UCLIBC_HAS_XLOCALE__. Note that of course checking
__UCLIBC_HAS_XLOCALE__ is sufficient, as it cannot be enabled if
__UCLIBC_HAS_LOCALE isn't.

This addresses an issue with the Synopsys ARC external toolchain,
which is built with __UCLIBC_HAS_LOCALE__, but without
__UCLIBC_HAS_XLOCALE__ causing a build failure with some
packages (such as libcpprestsdk).

Therefore, this patch also changes how the Synospys ARC external
toolchain is exposed in Buildroot: it no longer advertise locale
support.

Fixes:

  http://autobuild.buildroot.org/results/e6778e60cc1ea455f5b4511d5824f04d8040f67b

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
(cherry picked from commit 3c8d890c19)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2023-09-14 10:28:28 +02:00
..
toolchain toolchain/toolchain-buildroot: add comment about using virtual package infra 2023-02-06 14:22:38 +01:00
toolchain-buildroot toolchain/toolchain-buildroot: add comment about using virtual package infra 2023-02-06 14:22:38 +01:00
toolchain-external toolchain/helpers.mk: strengthen uClibc locale check 2023-09-14 10:28:28 +02:00
Config.in toolchain: introduce BR2_TOOLCHAIN_HAS_GCC_BUG_110934 2023-09-11 12:26:52 +02:00
helpers.mk toolchain/helpers.mk: strengthen uClibc locale check 2023-09-14 10:28:28 +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