diff mbox series

package/protobuf: work around gcc bug 85180

Message ID 20190918091142.79696-1-giulio.benetti@benettiengineering.com
State Accepted
Headers show
Series package/protobuf: work around gcc bug 85180 | expand

Commit Message

Giulio Benetti Sept. 18, 2019, 9:11 a.m. UTC
With Microblaze Gcc version < 8.x the build hangs due to gcc bug
85180: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85180. The bug
shows up when building protobuf with optimization but not when building
with -O0. To work around this, if BR2_TOOLCHAIN_HAS_GCC_BUG_85180=y we
force using -O0.

Fixes:

http://autobuild.buildroot.net/results/73dc9610a13d6e14eec58d529617210d93d5dec4/

Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
---
 package/protobuf/protobuf.mk | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Arnout Vandecappelle Sept. 21, 2019, 1:31 p.m. UTC | #1
On 18/09/2019 11:11, Giulio Benetti wrote:
> With Microblaze Gcc version < 8.x the build hangs due to gcc bug
> 85180: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85180. The bug
> shows up when building protobuf with optimization but not when building
> with -O0. To work around this, if BR2_TOOLCHAIN_HAS_GCC_BUG_85180=y we
> force using -O0.
> 
> Fixes:
> 
> http://autobuild.buildroot.net/results/73dc9610a13d6e14eec58d529617210d93d5dec4/
> 
> Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
> ---
>  package/protobuf/protobuf.mk | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/package/protobuf/protobuf.mk b/package/protobuf/protobuf.mk
> index e698bac228..699735ce37 100644
> --- a/package/protobuf/protobuf.mk
> +++ b/package/protobuf/protobuf.mk
> @@ -17,6 +17,14 @@ PROTOBUF_LICENSE_FILES = LICENSE
>  PROTOBUF_DEPENDENCIES = host-protobuf
>  PROTOBUF_CONF_OPTS = --with-protoc=$(HOST_DIR)/bin/protoc
>  
> +PROTOBUF_CXXFLAGS = $(TARGET_CXXFLAGS)
> +
> +ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y)
> +PROTOBUF_CXXFLAGS += -O0
> +endif
> +
> +PROTOBUF_CONF_ENV = CXXFLAGS="$(OPUS_CFXXLAGS)"

 OPUS_CFXXLAGS is obviously wrong. I guess it accidentally still fixed the
issue, because it causes the CXXFLAGS to be empty instead of TARGET_CXXFLAGS, so
it gets built without optimisation options.

 I fixed that and applied to master, thanks.

 Regards,
 Arnout

> +
>  ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
>  PROTOBUF_CONF_ENV += LIBS=-latomic
>  endif
>
Giulio Benetti Sept. 21, 2019, 10:29 p.m. UTC | #2
Hi Arnout,

On 9/21/19 3:31 PM, Arnout Vandecappelle wrote:
> 
> 
> On 18/09/2019 11:11, Giulio Benetti wrote:
>> With Microblaze Gcc version < 8.x the build hangs due to gcc bug
>> 85180: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85180. The bug
>> shows up when building protobuf with optimization but not when building
>> with -O0. To work around this, if BR2_TOOLCHAIN_HAS_GCC_BUG_85180=y we
>> force using -O0.
>>
>> Fixes:
>>
>> http://autobuild.buildroot.net/results/73dc9610a13d6e14eec58d529617210d93d5dec4/
>>
>> Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
>> ---
>>   package/protobuf/protobuf.mk | 8 ++++++++
>>   1 file changed, 8 insertions(+)
>>
>> diff --git a/package/protobuf/protobuf.mk b/package/protobuf/protobuf.mk
>> index e698bac228..699735ce37 100644
>> --- a/package/protobuf/protobuf.mk
>> +++ b/package/protobuf/protobuf.mk
>> @@ -17,6 +17,14 @@ PROTOBUF_LICENSE_FILES = LICENSE
>>   PROTOBUF_DEPENDENCIES = host-protobuf
>>   PROTOBUF_CONF_OPTS = --with-protoc=$(HOST_DIR)/bin/protoc
>>   
>> +PROTOBUF_CXXFLAGS = $(TARGET_CXXFLAGS)
>> +
>> +ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y)
>> +PROTOBUF_CXXFLAGS += -O0
>> +endif
>> +
>> +PROTOBUF_CONF_ENV = CXXFLAGS="$(OPUS_CFXXLAGS)"
> 
>   OPUS_CFXXLAGS is obviously wrong. I guess it accidentally still fixed the
> issue, because it causes the CXXFLAGS to be empty instead of TARGET_CXXFLAGS, so
> it gets built without optimisation options.

Oops, yes, sorry.

>   I fixed that and applied to master, thanks.

Thank you
Peter Korsgaard Sept. 30, 2019, 12:26 p.m. UTC | #3
>>>>> "Giulio" == Giulio Benetti <giulio.benetti@benettiengineering.com> writes:

 > With Microblaze Gcc version < 8.x the build hangs due to gcc bug
 > 85180: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85180. The bug
 > shows up when building protobuf with optimization but not when building
 > with -O0. To work around this, if BR2_TOOLCHAIN_HAS_GCC_BUG_85180=y we
 > force using -O0.

 > Fixes:

 > http://autobuild.buildroot.net/results/73dc9610a13d6e14eec58d529617210d93d5dec4/

 > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>

Committed to 2019.02.x, 2019.05.x and 2019.08.x, thanks.
diff mbox series

Patch

diff --git a/package/protobuf/protobuf.mk b/package/protobuf/protobuf.mk
index e698bac228..699735ce37 100644
--- a/package/protobuf/protobuf.mk
+++ b/package/protobuf/protobuf.mk
@@ -17,6 +17,14 @@  PROTOBUF_LICENSE_FILES = LICENSE
 PROTOBUF_DEPENDENCIES = host-protobuf
 PROTOBUF_CONF_OPTS = --with-protoc=$(HOST_DIR)/bin/protoc
 
+PROTOBUF_CXXFLAGS = $(TARGET_CXXFLAGS)
+
+ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y)
+PROTOBUF_CXXFLAGS += -O0
+endif
+
+PROTOBUF_CONF_ENV = CXXFLAGS="$(OPUS_CFXXLAGS)"
+
 ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
 PROTOBUF_CONF_ENV += LIBS=-latomic
 endif