package/haproxy: re-enable package on microblaze
authorGiulio Benetti <giulio.benetti@micronovasrl.com>
Fri, 14 Jun 2019 21:03:41 +0000 (23:03 +0200)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Thu, 20 Jun 2019 15:12:48 +0000 (17:12 +0200)
With Microblaze ccc version < 8.x and optimization, the build fails
with;

  'internal compiler error: in do_output_reload, at reload1.c:7978'

This is due to gcc bug 90620:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90620. To avoid this, the
haproxy package has a !BR2_microblaze dependency. However, this gcc
bug 90620 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 similar Microblaze issues.

So, this commit passes -O0 when BR2_TOOLCHAIN_HAS_GCC_BUG_90620, and
re-enables haproxy on Microblaze.

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

index 670de5a3ee5848539f01f45f47d9596f69a67705..db63143a74c11184370e146303d84814a9be3864 100644 (file)
@@ -1,8 +1,6 @@
 config BR2_PACKAGE_HAPROXY_ARCH_SUPPORTS
        bool
        default y
-       # internal compiler error: in do_output_reload, at reload1.c:7978
-       depends on !BR2_microblaze
        # src/proto_http.c:6330:1: internal compiler error: Segmentation fault
        depends on !BR2_nios2
        # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60040
index e382f61f8e1b99de656d2017dedffa516a7940f8..36ac70422285d289952a7bc71b58e944f9696f72 100644 (file)
@@ -69,9 +69,15 @@ endif
 
 HAPROXY_MAKE_OPTS += ADDLIB="$(HAPROXY_LIBS)"
 
+HAPROXY_CFLAGS = $(TARGET_CFLAGS)
+
+ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_90620),y)
+HAPROXY_CFLAGS += -O0
+endif
+
 define HAPROXY_BUILD_CMDS
        $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \
-               $(HAPROXY_MAKE_OPTS) -C $(@D)
+               $(HAPROXY_MAKE_OPTS) CFLAGS="$(HAPROXY_CFLAGS)" -C $(@D)
 endef
 
 define HAPROXY_INSTALL_TARGET_CMDS