[Buildroot] [PATCH v2, 1/1] package/gpsd: fix workaround for gcc bug 68485

Giulio Benetti giulio.benetti at benettiengineering.com
Tue Aug 3 12:22:59 UTC 2021


Hi Fabrice,

On 8/3/21 2:07 PM, Fabrice Fontaine wrote:
> Workaround for gcc bug 68485 doesn't work anymore since bump to version
> 3.21 in commit 5b3e72139952e0c953c8649cca55571cec5f3836 because CXXFLAGS
> is appended after CFLAGS and does not contain -O0:
> 
> /tmp/instance-7/output-1/host/bin/microblazeel-linux-gcc -o rtcm2_json.os -c --sysroot=/tmp/instance-7/output-1/host/microblazeel-buildroot-linux-uclibc/sysroot -pthread -Wall -Wcast-align -Wextra -Wimplicit-fallthrough -Wmissing-declarations -Wmissing-prototypes -Wno-missing-field-initializers -Wno-uninitialized -Wpointer-arith -Wreturn-type -Wstrict-prototypes -Wvla -O0 -Os -g0 -pthread -fPIC -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I/tmp/instance-7/output-1/host/microblazeel-buildroot-linux-uclibc/sysroot/usr/include/dbus-1.0 -I/tmp/instance-7/output-1/host/microblazeel-buildroot-linux-uclibc/sysroot/usr/lib/dbus-1.0/include rtcm2_json.c
> during RTL pass: reload
> rtcm2_json.c: In function ‘json_rtcm2_read’:
> rtcm2_json.c:267:1: internal compiler error: in gen_reg_rtx, at emit-rtl.c:1155
>    267 | }
>        | ^
> 
> It should be noted that GPSD_CXXFLAGS was added 5 years ago with commit
> b4c050e9afed7a8dc302e6e1014cc4ffb508590d but was not really used since
> this commit.
> 
> Fixes:
>   - http://autobuild.buildroot.org/results/fab33f25b08fa218af91640fdbd8c0dcf1d07228
> 
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>

Reviewed-by: Giulio Benetti <giulio.benetti at benettiengineering.com>

and...

> ---
> Changes v1 -> v2 (after review of Thomas Petazzoni):
>   - Set -O0 in GPSD_CXXFLAGS instead of filtering out -Os

...yes, that's the solution I often adopted on the first try and only if 
not possible I've tried to work around with other variables.

Thank you for the patch and
Best regards
-- 
Giulio Benetti
Benetti Engineering sas

>   package/gpsd/gpsd.mk | 5 ++++-
>   1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/package/gpsd/gpsd.mk b/package/gpsd/gpsd.mk
> index 0fbb5dfa1d..45f6d35ef8 100644
> --- a/package/gpsd/gpsd.mk
> +++ b/package/gpsd/gpsd.mk
> @@ -16,6 +16,7 @@ GPSD_DEPENDENCIES = host-python3 host-scons host-pkgconf
>   
>   GPSD_LDFLAGS = $(TARGET_LDFLAGS)
>   GPSD_CFLAGS = $(TARGET_CFLAGS)
> +GPSD_CXXFLAGS = $(TARGET_CXXFLAGS)
>   
>   GPSD_SCONS_ENV = $(TARGET_CONFIGURE_OPTS)
>   
> @@ -46,6 +47,7 @@ endif
>   
>   ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_68485),y)
>   GPSD_CFLAGS += -O0
> +GPSD_CXXFLAGS += -O0
>   endif
>   
>   # If libusb is available build it before so the package can use it
> @@ -203,7 +205,8 @@ endif
>   GPSD_SCONS_ENV += \
>   	LDFLAGS="$(GPSD_LDFLAGS)" \
>   	CFLAGS="$(GPSD_CFLAGS)" \
> -	CCFLAGS="$(GPSD_CFLAGS)"
> +	CCFLAGS="$(GPSD_CFLAGS)" \
> +	CXXFLAGS="$(GPSD_CXXFLAGS)"
>   
>   define GPSD_BUILD_CMDS
>   	(cd $(@D); \
> 



More information about the buildroot mailing list