[Buildroot] [PATCH 2/2] package/pixman: fix build failure due to gcc bug 101737

Arnout Vandecappelle arnout at mind.be
Wed Aug 4 20:28:37 UTC 2021


 Hi Giulio,

On 03/08/2021 10:42, Giulio Benetti wrote:
> The pixman package exhibits gcc bug 101737 when built for the SH4
> architecture with optimization enabled, which causes a build failure.
> 
> As done for other packages in Buildroot work around this gcc bug by
> setting optimization to -O0 if BR2_TOOLCHAIN_HAS_GCC_BUG_101737=y.
> Also let's add PIXMAN_CFLAGS and pass the Codesourcery work around CFLAGS
> to it for consistency like we do for the rest of the packages.
> 
> Fixes:
> http://autobuild.buildroot.net/results/b20/b20869bbb48edb1f0a847ea9e2e1a0462d6350be/
> 
> Signed-off-by: Giulio Benetti <giulio.benetti at benettiengineering.com>
> ---
>  package/pixman/pixman.mk | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/package/pixman/pixman.mk b/package/pixman/pixman.mk
> index d99005ecb7..6fab539593 100644
> --- a/package/pixman/pixman.mk
> +++ b/package/pixman/pixman.mk
> @@ -44,12 +44,20 @@ ifneq ($(BR2_iwmmxt),y)
>  PIXMAN_CONF_OPTS += --disable-arm-iwmmxt
>  endif
>  
> +PIXMAN_CFLAGS = $(TARGET_CFLAGS)
> +
>  # toolchain gets confused about TLS access through GOT (PIC), so disable TLS
>  # movhi	r4, %got_hiadj(%tls_ldo(fast_path_cache))
>  # {standard input}:172: Error: bad expression
>  ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII),y)
> -PIXMAN_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -DPIXMAN_NO_TLS"
> +PIXMAN_CFLAGS += -DPIXMAN_NO_TLS
> +endif
> +
> +ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_101737),y)

 I believe Thomas's experiments showed that it only occurs under -Os. So I think
we should do this conditionally under BR2_OPTIMIZE_S, and use -O2 rather than -O0.


 Regards,
 Arnout

> +PIXMAN_CFLAGS += -O0
>  endif
>  
> +PIXMAN_CONF_OPTS += CFLAGS="$(PIXMAN_CFLAGS)"
> +
>  $(eval $(autotools-package))
>  $(eval $(host-autotools-package))
> 


More information about the buildroot mailing list