package/fxload: re-enable package on microblaze
authorGiulio Benetti <giulio.benetti@micronovasrl.com>
Fri, 14 Jun 2019 21:03:38 +0000 (23:03 +0200)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sat, 22 Jun 2019 17:34:21 +0000 (19:34 +0200)
Building fxload on Microblaze with gcc < 8.x and optimization enabled
fails with:

  Error: operation combines symbols in different segments

This is due to gcc bug 63261
(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63261).

To work around this, the fxload package has a !BR2_microblaze
dependency. However, gcc bug 63261 only triggers when optimization is
enabled, so a better work around is to pass -O0, which is what we do
in other Buildroot packages to work around this bug.

So, this commit passes -O0 when BR2_TOOLCHAIN_HAS_GCC_BUG_63261, and
re-enables fxload on Microblaze.

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

index 88cc6d1e5f747879c662bf67b58e44599d60e0c3..f4d6ef54f58036a8c51f40f1b048760aa9c0230d 100644 (file)
@@ -1,9 +1,5 @@
 config BR2_PACKAGE_FXLOAD
        bool "fxload"
-       # Hits gcc PR63261 on Microblaze with debugging symbols
-       # enabled. Since this package is unlikely to be useful on
-       # Microblaze, just disable it on this architecture.
-       depends on !BR2_microblaze
        help
          This program is conveniently able to download firmware into
          FX, FX2, and FX2LP EZ-USB devices, as well as the original
index 94b11d0f1e4354f3538a18da1f95e667a79cab56..d3d654a4b44a7cc0a16f24f6cf1e3954ff94849c 100644 (file)
@@ -9,8 +9,15 @@ FXLOAD_SITE = http://downloads.sourceforge.net/project/linux-hotplug/fxload/$(FX
 FXLOAD_LICENSE = GPL-2.0+
 FXLOAD_LICENSE_FILES = COPYING
 
+FXLOAD_CFLAGS = $(TARGET_CFLAGS)
+
+ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_63261),y)
+FXLOAD_CFLAGS += -O0
+endif
+
 define FXLOAD_BUILD_CMDS
-       $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) all
+       $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \
+               CFLAGS="$(FXLOAD_CFLAGS)" -C $(@D) all
 endef
 
 define FXLOAD_INSTALL_TARGET_CMDS