All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 0/3] treat gcc bug 63261 in a common way
@ 2019-05-29 13:53 Giulio Benetti
  2019-05-29 13:53 ` [Buildroot] [PATCH 1/3] toolchain: introduce BR2_TOOLCHAIN_HAS_GCC_BUG_63261 Giulio Benetti
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Giulio Benetti @ 2019-05-29 13:53 UTC (permalink / raw)
  To: buildroot

As done for other Gcc bugs introduce and use
BR2_TOOLCHAIN_HAS_GCC_BUG_63261 in affected packages:
- fxload
- dmalloc
This is more consistent than checking same conditions for every package
and putting a comment on top of it.

Giulio Benetti (3):
  toolchain: introduce BR2_TOOLCHAIN_HAS_GCC_BUG_63261
  package/fxload: re-enable package on Microblaze
  package/dmalloc: re-enable package on Microblaze

 package/dmalloc/Config.in  | 4 ----
 package/dmalloc/dmalloc.mk | 4 ++++
 package/fxload/Config.in   | 4 ----
 package/fxload/fxload.mk   | 7 ++++++-
 toolchain/Config.in        | 7 +++++++
 5 files changed, 17 insertions(+), 9 deletions(-)

-- 
2.17.1

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH 1/3] toolchain: introduce BR2_TOOLCHAIN_HAS_GCC_BUG_63261
  2019-05-29 13:53 [Buildroot] [PATCH 0/3] treat gcc bug 63261 in a common way Giulio Benetti
@ 2019-05-29 13:53 ` Giulio Benetti
  2019-05-29 13:59   ` Thomas Petazzoni
  2019-05-29 13:53 ` [Buildroot] [PATCH 2/3] package/fxload: " Giulio Benetti
  2019-05-29 13:53 ` [Buildroot] [PATCH 3/3] package/dmalloc: " Giulio Benetti
  2 siblings, 1 reply; 11+ messages in thread
From: Giulio Benetti @ 2019-05-29 13:53 UTC (permalink / raw)
  To: buildroot

GCC hangs while building fxload for the Microblaze Arch using following
defconfig:
'
BR2_microblazeel=y
BR2_ENABLE_DEBUG=y
BR2_OPTIMIZE_2=y
BR2_KERNEL_HEADERS_5_0=y
BR2_GCC_VERSION_7_X=y
BR2_PACKAGE_FXLOAD=y
'

Reported:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63261

Fixed on Gcc 8.x

Signed-off-by: Giulio Benetti <giulio.benetti@micronovasrl.com>
---
 toolchain/Config.in | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/toolchain/Config.in b/toolchain/Config.in
index 7726ae6fae..f73a5364fc 100644
--- a/toolchain/Config.in
+++ b/toolchain/Config.in
@@ -113,6 +113,13 @@ config BR2_TOOLCHAIN_SUPPORTS_VARIADIC_MI_THUNK
 	depends on !BR2_or1k
 	depends on !BR2_xtensa
 
+# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63261. This bug no
+# longer exists in gcc 8.x.
+config BR2_TOOLCHAIN_HAS_GCC_BUG_63261
+	bool
+	default y if BR2_microblaze
+	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_8
+
 # Prior to gcc 7.x, exception_ptr, nested_exception and future from
 # libstdc++ would only be provided on architectures that support
 # always lock-free atomic ints. See
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH 2/3] package/fxload: re-enable package on Microblaze
  2019-05-29 13:53 [Buildroot] [PATCH 0/3] treat gcc bug 63261 in a common way Giulio Benetti
  2019-05-29 13:53 ` [Buildroot] [PATCH 1/3] toolchain: introduce BR2_TOOLCHAIN_HAS_GCC_BUG_63261 Giulio Benetti
@ 2019-05-29 13:53 ` Giulio Benetti
  2019-05-29 13:53 ` [Buildroot] [PATCH 3/3] package/dmalloc: " Giulio Benetti
  2 siblings, 0 replies; 11+ messages in thread
From: Giulio Benetti @ 2019-05-29 13:53 UTC (permalink / raw)
  To: buildroot

With Microblaze Gcc version < 8.x build gives:
'Error: operation combines symbols in different segments'
This is due to bug 63261:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63261. To avoid this, the
fxload 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 fxload on Microblaze.

Signed-off-by: Giulio Benetti <giulio.benetti@micronovasrl.com>
---
 package/fxload/Config.in | 4 ----
 package/fxload/fxload.mk | 7 ++++++-
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/package/fxload/Config.in b/package/fxload/Config.in
index 88cc6d1e5f..f4d6ef54f5 100644
--- a/package/fxload/Config.in
+++ b/package/fxload/Config.in
@@ -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
diff --git a/package/fxload/fxload.mk b/package/fxload/fxload.mk
index 94b11d0f1e..213e291600 100644
--- a/package/fxload/fxload.mk
+++ b/package/fxload/fxload.mk
@@ -9,8 +9,13 @@ FXLOAD_SITE = http://downloads.sourceforge.net/project/linux-hotplug/fxload/$(FX
 FXLOAD_LICENSE = GPL-2.0+
 FXLOAD_LICENSE_FILES = COPYING
 
+ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_63261),y)
+FXLOAD_CFLAGS += $(TARGET_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
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH 3/3] package/dmalloc: re-enable package on Microblaze
  2019-05-29 13:53 [Buildroot] [PATCH 0/3] treat gcc bug 63261 in a common way Giulio Benetti
  2019-05-29 13:53 ` [Buildroot] [PATCH 1/3] toolchain: introduce BR2_TOOLCHAIN_HAS_GCC_BUG_63261 Giulio Benetti
  2019-05-29 13:53 ` [Buildroot] [PATCH 2/3] package/fxload: " Giulio Benetti
@ 2019-05-29 13:53 ` Giulio Benetti
  2 siblings, 0 replies; 11+ messages in thread
From: Giulio Benetti @ 2019-05-29 13:53 UTC (permalink / raw)
  To: buildroot

With Microblaze Gcc version < 8.x build gives:
'Error: operation combines symbols in different segments'
This is due to 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>
---
 package/dmalloc/Config.in  | 4 ----
 package/dmalloc/dmalloc.mk | 4 ++++
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/package/dmalloc/Config.in b/package/dmalloc/Config.in
index e5be109332..0c01970b04 100644
--- a/package/dmalloc/Config.in
+++ b/package/dmalloc/Config.in
@@ -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
diff --git a/package/dmalloc/dmalloc.mk b/package/dmalloc/dmalloc.mk
index 6ebb44c5c0..da03373879 100644
--- a/package/dmalloc/dmalloc.mk
+++ b/package/dmalloc/dmalloc.mk
@@ -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
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH 1/3] toolchain: introduce BR2_TOOLCHAIN_HAS_GCC_BUG_63261
  2019-05-29 13:53 ` [Buildroot] [PATCH 1/3] toolchain: introduce BR2_TOOLCHAIN_HAS_GCC_BUG_63261 Giulio Benetti
@ 2019-05-29 13:59   ` Thomas Petazzoni
  2019-05-29 14:29     ` Giulio Benetti
  0 siblings, 1 reply; 11+ messages in thread
From: Thomas Petazzoni @ 2019-05-29 13:59 UTC (permalink / raw)
  To: buildroot

Hello Giulio,

Thanks for all this work on Microblaze toolchain bugs!

On Wed, 29 May 2019 15:53:39 +0200
Giulio Benetti <giulio.benetti@micronovasrl.com> wrote:

> +# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63261. This bug no
> +# longer exists in gcc 8.x.
> +config BR2_TOOLCHAIN_HAS_GCC_BUG_63261
> +	bool
> +	default y if BR2_microblaze
> +	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_8

If I understand correctly, this bug only triggers when
BR2_ENABLE_DEBUG=y, so this option should have a:

	depends on BR2_ENABLE_DEBUG

perhaps ?

Semantically, the toolchain is indeed always affected by bug 63261, but
it only manifests itself when BR2_ENABLE_DEBUG=y, and it's easier to
have this information in one place (where
BR2_TOOLCHAIN_HAS_GCC_BUG_63261) rather than in each package.

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH 1/3] toolchain: introduce BR2_TOOLCHAIN_HAS_GCC_BUG_63261
  2019-05-29 13:59   ` Thomas Petazzoni
@ 2019-05-29 14:29     ` Giulio Benetti
  2019-05-29 14:33       ` [Buildroot] [PATCH v2 0/3] treat gcc bug 63261 in a common way Giulio Benetti
  0 siblings, 1 reply; 11+ messages in thread
From: Giulio Benetti @ 2019-05-29 14:29 UTC (permalink / raw)
  To: buildroot

Hello Thomas,

Il 29/05/2019 15:59, Thomas Petazzoni ha scritto:
> Hello Giulio,
> 
> Thanks for all this work on Microblaze toolchain bugs!

It's a pleasure and this allows me to lear a lot starting from the base 
thanks to you all :)

> On Wed, 29 May 2019 15:53:39 +0200
> Giulio Benetti <giulio.benetti@micronovasrl.com> wrote:
> 
>> +# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63261. This bug no
>> +# longer exists in gcc 8.x.
>> +config BR2_TOOLCHAIN_HAS_GCC_BUG_63261
>> +	bool
>> +	default y if BR2_microblaze
>> +	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_8
> 
> If I understand correctly, this bug only triggers when
> BR2_ENABLE_DEBUG=y, so this option should have a:
> 
> 	depends on BR2_ENABLE_DEBUG
> 
> perhaps ?

Oops, yes I've forgotten it, thanks for pointing me that.

> Semantically, the toolchain is indeed always affected by bug 63261, but
> it only manifests itself when BR2_ENABLE_DEBUG=y, and it's easier to
> have this information in one place (where
> BR2_TOOLCHAIN_HAS_GCC_BUG_63261) rather than in each package.

Yes, I'm going to write this ^^^ in cover letter on v2 patchset.

Thanks
Best regards
-- 
Giulio Benetti
CTO

MICRONOVA SRL
Sede: Via A. Niedda 3 - 35010 Vigonza (PD)
Tel. 049/8931563 - Fax 049/8931346
Cod.Fiscale - P.IVA 02663420285
Capitale Sociale ? 26.000 i.v.
Iscritta al Reg. Imprese di Padova N. 02663420285
Numero R.E.A. 258642

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH v2 0/3] treat gcc bug 63261 in a common way
  2019-05-29 14:29     ` Giulio Benetti
@ 2019-05-29 14:33       ` Giulio Benetti
  2019-05-29 14:33         ` [Buildroot] [PATCH v2 1/3] toolchain: introduce BR2_TOOLCHAIN_HAS_GCC_BUG_63261 Giulio Benetti
                           ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Giulio Benetti @ 2019-05-29 14:33 UTC (permalink / raw)
  To: buildroot

As done for other Gcc bugs introduce and use
BR2_TOOLCHAIN_HAS_GCC_BUG_63261 in affected packages:
- fxload
- dmalloc
This is more consistent than checking same conditions for every package
and putting a comment on top of it.

Changes:
V1->V2:
* add 'depends on BR2_ENABLE_DEBUG' to BR2_TOOLCHAIN_HAS_GCC_BUG_63261

Giulio Benetti (3):
  toolchain: introduce BR2_TOOLCHAIN_HAS_GCC_BUG_63261
  package/fxload: re-enable package on Microblaze
  package/dmalloc: re-enable package on Microblaze

 package/dmalloc/Config.in  | 4 ----
 package/dmalloc/dmalloc.mk | 4 ++++
 package/fxload/Config.in   | 4 ----
 package/fxload/fxload.mk   | 9 ++++++++-
 toolchain/Config.in        | 8 ++++++++
 5 files changed, 20 insertions(+), 9 deletions(-)

-- 
2.17.1

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH v2 1/3] toolchain: introduce BR2_TOOLCHAIN_HAS_GCC_BUG_63261
  2019-05-29 14:33       ` [Buildroot] [PATCH v2 0/3] treat gcc bug 63261 in a common way Giulio Benetti
@ 2019-05-29 14:33         ` Giulio Benetti
  2019-05-29 14:44           ` Giulio Benetti
  2019-05-29 14:33         ` [Buildroot] [PATCH v2 2/3] package/fxload: re-enable package on Microblaze Giulio Benetti
  2019-05-29 14:33         ` [Buildroot] [PATCH v2 3/3] package/dmalloc: " Giulio Benetti
  2 siblings, 1 reply; 11+ messages in thread
From: Giulio Benetti @ 2019-05-29 14:33 UTC (permalink / raw)
  To: buildroot

GCC hangs while building fxload for the Microblaze Arch using following
defconfig:
'
BR2_microblazeel=y
BR2_ENABLE_DEBUG=y
BR2_OPTIMIZE_2=y
BR2_KERNEL_HEADERS_5_0=y
BR2_GCC_VERSION_7_X=y
BR2_PACKAGE_FXLOAD=y
'

Reported:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63261

Fixed on Gcc 8.x

Signed-off-by: Giulio Benetti <giulio.benetti@micronovasrl.com>
---
Changes:
V1->V2:
* add 'depends on BR2_ENABLE_DEBUG' to BR2_TOOLCHAIN_HAS_GCC_BUG_63261

 toolchain/Config.in | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/toolchain/Config.in b/toolchain/Config.in
index 2d39ee4039..bf0c950c1f 100644
--- a/toolchain/Config.in
+++ b/toolchain/Config.in
@@ -113,6 +113,14 @@ config BR2_TOOLCHAIN_SUPPORTS_VARIADIC_MI_THUNK
 	depends on !BR2_or1k
 	depends on !BR2_xtensa
 
+# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63261. This bug no
+# longer exists in gcc 8.x.
+config BR2_TOOLCHAIN_HAS_GCC_BUG_63261
+	bool
+	default y if BR2_microblaze
+	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_8
+	depends on BR2_ENABLE_DEBUG
+
 # Prior to gcc 7.x, exception_ptr, nested_exception and future from
 # libstdc++ would only be provided on architectures that support
 # always lock-free atomic ints. See
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH v2 2/3] package/fxload: re-enable package on Microblaze
  2019-05-29 14:33       ` [Buildroot] [PATCH v2 0/3] treat gcc bug 63261 in a common way Giulio Benetti
  2019-05-29 14:33         ` [Buildroot] [PATCH v2 1/3] toolchain: introduce BR2_TOOLCHAIN_HAS_GCC_BUG_63261 Giulio Benetti
@ 2019-05-29 14:33         ` Giulio Benetti
  2019-05-29 14:33         ` [Buildroot] [PATCH v2 3/3] package/dmalloc: " Giulio Benetti
  2 siblings, 0 replies; 11+ messages in thread
From: Giulio Benetti @ 2019-05-29 14:33 UTC (permalink / raw)
  To: buildroot

With Microblaze Gcc version < 8.x build gives:
'Error: operation combines symbols in different segments'
This is due to bug 63261:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63261. To avoid this, the
fxload 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 fxload on Microblaze.

Signed-off-by: Giulio Benetti <giulio.benetti@micronovasrl.com>
---
 package/fxload/Config.in | 4 ----
 package/fxload/fxload.mk | 9 ++++++++-
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/package/fxload/Config.in b/package/fxload/Config.in
index 88cc6d1e5f..f4d6ef54f5 100644
--- a/package/fxload/Config.in
+++ b/package/fxload/Config.in
@@ -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
diff --git a/package/fxload/fxload.mk b/package/fxload/fxload.mk
index 94b11d0f1e..23c513b1c0 100644
--- a/package/fxload/fxload.mk
+++ b/package/fxload/fxload.mk
@@ -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
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH v2 3/3] package/dmalloc: re-enable package on Microblaze
  2019-05-29 14:33       ` [Buildroot] [PATCH v2 0/3] treat gcc bug 63261 in a common way Giulio Benetti
  2019-05-29 14:33         ` [Buildroot] [PATCH v2 1/3] toolchain: introduce BR2_TOOLCHAIN_HAS_GCC_BUG_63261 Giulio Benetti
  2019-05-29 14:33         ` [Buildroot] [PATCH v2 2/3] package/fxload: re-enable package on Microblaze Giulio Benetti
@ 2019-05-29 14:33         ` Giulio Benetti
  2 siblings, 0 replies; 11+ messages in thread
From: Giulio Benetti @ 2019-05-29 14:33 UTC (permalink / raw)
  To: buildroot

With Microblaze Gcc version < 8.x build gives:
'Error: operation combines symbols in different segments'
This is due to 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>
---
 package/dmalloc/Config.in  | 4 ----
 package/dmalloc/dmalloc.mk | 4 ++++
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/package/dmalloc/Config.in b/package/dmalloc/Config.in
index e5be109332..0c01970b04 100644
--- a/package/dmalloc/Config.in
+++ b/package/dmalloc/Config.in
@@ -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
diff --git a/package/dmalloc/dmalloc.mk b/package/dmalloc/dmalloc.mk
index 6ebb44c5c0..38b2c02027 100644
--- a/package/dmalloc/dmalloc.mk
+++ b/package/dmalloc/dmalloc.mk
@@ -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
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH v2 1/3] toolchain: introduce BR2_TOOLCHAIN_HAS_GCC_BUG_63261
  2019-05-29 14:33         ` [Buildroot] [PATCH v2 1/3] toolchain: introduce BR2_TOOLCHAIN_HAS_GCC_BUG_63261 Giulio Benetti
@ 2019-05-29 14:44           ` Giulio Benetti
  0 siblings, 0 replies; 11+ messages in thread
From: Giulio Benetti @ 2019-05-29 14:44 UTC (permalink / raw)
  To: buildroot

Got confused.

Il 29/05/2019 16:33, Giulio Benetti ha scritto:
> GCC hangs while building fxload for the Microblaze Arch using following
> defconfig:
> '
> BR2_microblazeel=y
> BR2_ENABLE_DEBUG=y
> BR2_OPTIMIZE_2=y
> BR2_KERNEL_HEADERS_5_0=y
> BR2_GCC_VERSION_7_X=y
> BR2_PACKAGE_FXLOAD=y
> '
> 
> Reported:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63261
> 
> Fixed on Gcc 8.x
> 
> Signed-off-by: Giulio Benetti <giulio.benetti@micronovasrl.com>
> ---
> Changes:
> V1->V2:
> * add 'depends on BR2_ENABLE_DEBUG' to BR2_TOOLCHAIN_HAS_GCC_BUG_63261
> 
>   toolchain/Config.in | 8 ++++++++
>   1 file changed, 8 insertions(+)
> 
> diff --git a/toolchain/Config.in b/toolchain/Config.in
> index 2d39ee4039..bf0c950c1f 100644
> --- a/toolchain/Config.in
> +++ b/toolchain/Config.in
> @@ -113,6 +113,14 @@ config BR2_TOOLCHAIN_SUPPORTS_VARIADIC_MI_THUNK
>   	depends on !BR2_or1k
>   	depends on !BR2_xtensa
>   
> +# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63261. This bug no
> +# longer exists in gcc 8.x.
> +config BR2_TOOLCHAIN_HAS_GCC_BUG_63261
> +	bool
> +	default y if BR2_microblaze
> +	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_8
> +	depends on BR2_ENABLE_DEBUG

It fails building fxload without debug symbols, so previous patchset was 
almost correct, except for defconfig example where I set:
BR2_ENABLE_DEBUG=y

Need to send a v3 patchset with that correct.

Sorry for the noise

-- 
Giulio Benetti
CTO

MICRONOVA SRL
Sede: Via A. Niedda 3 - 35010 Vigonza (PD)
Tel. 049/8931563 - Fax 049/8931346
Cod.Fiscale - P.IVA 02663420285
Capitale Sociale ? 26.000 i.v.
Iscritta al Reg. Imprese di Padova N. 02663420285
Numero R.E.A. 258642

>   # Prior to gcc 7.x, exception_ptr, nested_exception and future from
>   # libstdc++ would only be provided on architectures that support
>   # always lock-free atomic ints. See
> 

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2019-05-29 14:44 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-29 13:53 [Buildroot] [PATCH 0/3] treat gcc bug 63261 in a common way Giulio Benetti
2019-05-29 13:53 ` [Buildroot] [PATCH 1/3] toolchain: introduce BR2_TOOLCHAIN_HAS_GCC_BUG_63261 Giulio Benetti
2019-05-29 13:59   ` Thomas Petazzoni
2019-05-29 14:29     ` Giulio Benetti
2019-05-29 14:33       ` [Buildroot] [PATCH v2 0/3] treat gcc bug 63261 in a common way Giulio Benetti
2019-05-29 14:33         ` [Buildroot] [PATCH v2 1/3] toolchain: introduce BR2_TOOLCHAIN_HAS_GCC_BUG_63261 Giulio Benetti
2019-05-29 14:44           ` Giulio Benetti
2019-05-29 14:33         ` [Buildroot] [PATCH v2 2/3] package/fxload: re-enable package on Microblaze Giulio Benetti
2019-05-29 14:33         ` [Buildroot] [PATCH v2 3/3] package/dmalloc: " Giulio Benetti
2019-05-29 13:53 ` [Buildroot] [PATCH 2/3] package/fxload: " Giulio Benetti
2019-05-29 13:53 ` [Buildroot] [PATCH 3/3] package/dmalloc: " Giulio Benetti

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.