package/sqlite: work around build timeout on Microblaze
authorGiulio Benetti <giulio.benetti@micronovasrl.com>
Fri, 14 Jun 2019 21:03:45 +0000 (23:03 +0200)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Thu, 20 Jun 2019 14:39:35 +0000 (16:39 +0200)
With Microblaze Gcc version 4.9 build hangs due to a bug discovered
for Gcc 4.9 only. Since Gcc 4.9 is not maintaned anymore it doesn't
make sense to report this bug in Gcc bugzilla and use
BR2_TOOLCHAIN_HAS_GCC_BUG_. So let's check if we're building for
Microblaze with Gcc version < 5.x and work around the bug forcing the
use of -O0.

To reproduce this bug build with following defconfig:
'
BR2_microblazeel=y
BR2_ENABLE_DEBUG=y
BR2_OPTIMIZE_2=y
BR2_KERNEL_HEADERS_5_0=y
BR2_TOOLCHAIN_BUILDROOT_LOCALE=y
BR2_GCC_VERSION_4_9_X=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_TOOLCHAIN_BUILDROOT_FORTRAN=y
BR2_GCC_ENABLE_LTO=y
BR2_PACKAGE_SQLITE=y
'

Signed-off-by: Giulio Benetti <giulio.benetti@micronovasrl.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
package/sqlite/sqlite.mk

index 7e97c966b7f6a3c4a27b2ed0f5e76e7b94c2a303..d4cdefe34d3d4a16b5a853e912f91bf03c2b9eb1 100644 (file)
@@ -39,8 +39,14 @@ ifeq ($(BR2_PACKAGE_SQLITE_NO_SYNC),y)
 SQLITE_CFLAGS += -DSQLITE_NO_SYNC
 endif
 
+# Building with Microblaze Gcc 4.9 makes compiling to hang.
+# Work around using -O0
+ifeq ($(BR2_microblaze):$(BR2_TOOLCHAIN_GCC_AT_LEAST_5),y:)
+SQLITE_CFLAGS += $(TARGET_CFLAGS) -O0
+else
 # fallback to standard -O3 when -Ofast is present to avoid -ffast-math
 SQLITE_CFLAGS += $(subst -Ofast,-O3,$(TARGET_CFLAGS))
+endif
 
 SQLITE_CONF_ENV = CFLAGS="$(SQLITE_CFLAGS)"