package/dmalloc: re-enable package on microblaze
authorGiulio Benetti <giulio.benetti@micronovasrl.com>
Fri, 14 Jun 2019 21:03:39 +0000 (23:03 +0200)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sat, 22 Jun 2019 17:50:21 +0000 (19:50 +0200)
Building dmalloc on Microblaze with optimization enabled and gcc < 8.x
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 avoid this, the dmalloc package has a !BR2_microblaze
dependency. However, gcc bug 63261 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.

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

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

index e5be109332f8a54600f4128ea31365e995f565f1..0c01970b047910adc8eb143d6572805da2e1222a 100644 (file)
@@ -1,9 +1,5 @@
 config BR2_PACKAGE_DMALLOC
        bool "dmalloc"
-       # On some packages, Microblaze gcc has issues when debugging
-       # symbols are enabled: "Error: operation combines symbols in
-       # different segments".
-       depends on !(BR2_microblaze && BR2_ENABLE_DEBUG)
        help
          A debug memory allocation library which is a drop in
          replacement for the system's malloc, realloc, calloc, free and
index 6ebb44c5c068022127a87899bf01123081502e7c..38b2c020271f2ed607facacd720fd675c55b02eb 100644 (file)
@@ -35,6 +35,10 @@ ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB),y)
 DMALLOC_CFLAGS += -marm
 endif
 
+ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_63261),y)
+DMALLOC_CFLAGS += -O0
+endif
+
 DMALLOC_CONF_ENV = CFLAGS="$(DMALLOC_CFLAGS)"
 
 define DMALLOC_POST_PATCH