diff mbox series

package/gcc: help libbacktrace detection of sync builtins

Message ID 20200925090451.1407258-1-romain.naour@gmail.com
State Accepted
Headers show
Series package/gcc: help libbacktrace detection of sync builtins | expand

Commit Message

Romain Naour Sept. 25, 2020, 9:04 a.m. UTC
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

The logic in libbacktrace/configure.ac to detect if __sync builtins
are available assumes they are as soon as target_subdir is not
empty, i.e when cross-compiling. However, some platforms do not have
__sync builtins, so help the configure script a bit.

"libbacktrace_cv_sys_sync=no" is lost when it is added to
HOST_GCC_COMMON_CONF_ENV because the environment is not exported
when executing the libbacktrace configure script.

Use target_configargs to force "libbacktrace_cv_sys_sync=no" when
executiong the libbacktrace configure script.

Fixes:
https://gitlab.com/bootlin/toolchains-builder/-/jobs/729359681

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
[Romain: use target_configargs="libbacktrace_cv_sys_sync=no"]
Signed-off-by: Romain Naour <romain.naour@gmail.com>
---
 package/gcc/gcc.mk | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Thomas Petazzoni Sept. 30, 2020, 9:02 p.m. UTC | #1
On Fri, 25 Sep 2020 11:04:51 +0200
Romain Naour <romain.naour@gmail.com> wrote:

> From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> 
> The logic in libbacktrace/configure.ac to detect if __sync builtins
> are available assumes they are as soon as target_subdir is not
> empty, i.e when cross-compiling. However, some platforms do not have
> __sync builtins, so help the configure script a bit.
> 
> "libbacktrace_cv_sys_sync=no" is lost when it is added to
> HOST_GCC_COMMON_CONF_ENV because the environment is not exported
> when executing the libbacktrace configure script.
> 
> Use target_configargs to force "libbacktrace_cv_sys_sync=no" when
> executiong the libbacktrace configure script.
> 
> Fixes:
> https://gitlab.com/bootlin/toolchains-builder/-/jobs/729359681
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> [Romain: use target_configargs="libbacktrace_cv_sys_sync=no"]
> Signed-off-by: Romain Naour <romain.naour@gmail.com>
> ---
>  package/gcc/gcc.mk | 8 ++++++++
>  1 file changed, 8 insertions(+)

Applied to master, thanks.

Thomas
Peter Korsgaard Oct. 3, 2020, 6:09 a.m. UTC | #2
>>>>> "Romain" == Romain Naour <romain.naour@gmail.com> writes:

 > From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
 > The logic in libbacktrace/configure.ac to detect if __sync builtins
 > are available assumes they are as soon as target_subdir is not
 > empty, i.e when cross-compiling. However, some platforms do not have
 > __sync builtins, so help the configure script a bit.

 > "libbacktrace_cv_sys_sync=no" is lost when it is added to
 > HOST_GCC_COMMON_CONF_ENV because the environment is not exported
 > when executing the libbacktrace configure script.

 > Use target_configargs to force "libbacktrace_cv_sys_sync=no" when
 > executiong the libbacktrace configure script.

 > Fixes:
 > https://gitlab.com/bootlin/toolchains-builder/-/jobs/729359681

 > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
 > [Romain: use target_configargs="libbacktrace_cv_sys_sync=no"]
 > Signed-off-by: Romain Naour <romain.naour@gmail.com>

Committed to 2020.02.x, 2020.05.x and 2020.08.x, thanks.
diff mbox series

Patch

diff --git a/package/gcc/gcc.mk b/package/gcc/gcc.mk
index b834269adc..6e60ea9980 100644
--- a/package/gcc/gcc.mk
+++ b/package/gcc/gcc.mk
@@ -141,6 +141,14 @@  ifeq ($(BR2_sparc)$(BR2_sparc64),y)
 HOST_GCC_COMMON_CONF_OPTS += --disable-libsanitizer
 endif
 
+# The logic in libbacktrace/configure.ac to detect if __sync builtins
+# are available assumes they are as soon as target_subdir is not
+# empty, i.e when cross-compiling. However, some platforms do not have
+# __sync builtins, so help the configure script a bit.
+ifeq ($(BR2_TOOLCHAIN_HAS_SYNC_4),)
+HOST_GCC_COMMON_CONF_ENV += target_configargs="libbacktrace_cv_sys_sync=no"
+endif
+
 # TLS support is not needed on uClibc/no-thread and
 # uClibc/linux-threads, otherwise, for all other situations (glibc,
 # musl and uClibc/NPTL), we need it.