diff mbox series

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

Message ID 20210803120714.2797624-1-fontaine.fabrice@gmail.com
State Accepted
Headers show
Series [v2,1/1] package/gpsd: fix workaround for gcc bug 68485 | expand

Commit Message

Fabrice Fontaine Aug. 3, 2021, 12:07 p.m. UTC
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@gmail.com>
---
Changes v1 -> v2 (after review of Thomas Petazzoni):
 - Set -O0 in GPSD_CXXFLAGS instead of filtering out -Os

 package/gpsd/gpsd.mk | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Giulio Benetti Aug. 3, 2021, 12:22 p.m. UTC | #1
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@gmail.com>

Reviewed-by: Giulio Benetti <giulio.benetti@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
diff mbox series

Patch

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); \