package/libnss: re-enable package on microblaze
authorGiulio Benetti <giulio.benetti@micronovasrl.com>
Wed, 26 Jun 2019 12:58:55 +0000 (14:58 +0200)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sat, 3 Aug 2019 10:57:45 +0000 (12:57 +0200)
With Microblaze Gcc version < 8.x the build hangs due to bug 85862:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85862
To avoid this, the libnss package has a !BR2_TOOLCHAIN_HAS_GCC_BUG_85862
dependency. However, gcc bug 85862 only triggers when optimization is
enabled, so we can work around the issue by passing -O0, which is what
we do in other Buildroot packages to work around this bug.

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

index 34ddb91dfa07e54253fb8e6e9bd7af71a4988c79..599c9a653655a5342911ce3d8c1166523c13cee6 100644 (file)
@@ -3,7 +3,6 @@ config BR2_PACKAGE_LIBNSS
        depends on BR2_TOOLCHAIN_HAS_THREADS # libnspr
        depends on BR2_PACKAGE_LIBNSPR_ARCH_SUPPORT # libnspr
        depends on !BR2_STATIC_LIBS
-       depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_85862
        select BR2_PACKAGE_LIBNSPR
        select BR2_PACKAGE_SQLITE
        select BR2_PACKAGE_ZLIB
@@ -19,6 +18,3 @@ config BR2_PACKAGE_LIBNSS
 comment "libnss needs a toolchain w/ threads, dynamic library"
        depends on BR2_PACKAGE_LIBNSPR_ARCH_SUPPORT
        depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
-
-comment "libnss needs a toolchain not affected by GCC bug 85862"
-       depends on BR2_TOOLCHAIN_HAS_GCC_BUG_85862
index d72ae94c5ba2c7ecac277d7c452635295e728c70..34e9d4196849d31933c32ebe3db33f3fd7a4dc92 100644 (file)
@@ -13,9 +13,15 @@ LIBNSS_DEPENDENCIES = libnspr sqlite zlib
 LIBNSS_LICENSE = MPL-2.0
 LIBNSS_LICENSE_FILES = nss/COPYING
 
+LIBNSS_CFLAGS = $(TARGET_CFLAGS)
+
+ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85862),y)
+LIBNSS_CFLAGS += -O0
+endif
+
 # Need to pass down TARGET_CFLAGS and TARGET_LDFLAGS
 define LIBNSS_FIXUP_LINUX_MK
-       echo 'OS_CFLAGS += $(TARGET_CFLAGS)' >> $(@D)/nss/coreconf/Linux.mk
+       echo 'OS_CFLAGS += $(LIBNSS_CFLAGS)' >> $(@D)/nss/coreconf/Linux.mk
        echo 'LDFLAGS += $(TARGET_LDFLAGS)' >> $(@D)/nss/coreconf/Linux.mk
 endef