Skip to contentSkip to conversation

package/protobuf: depend on gcc >= 4.5

PATCH New mrugiero at gmail.com 3 participants 9 messages Apr 26, 2017 – May 2, 2017

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 package/protobuf: depend on gcc >= 4.5

From: "Mario J. Rugiero" <[email protected]>

Protobuf hits a bug in gcc < 4.5 which breaks the build. See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=189

---
 package/protobuf/Config.in | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
package/protobuf/Config.in +4 -2
index 03d118cfc..e3c94dcd6 100644
@@ -22,6 +22,7 @@ config BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS
 	default y if BR2_x86_64
 	default y if BR2_sparc64
 	default y if BR2_TOOLCHAIN_HAS_ATOMIC
+	depends on BR2_HOST_GCC_AT_LEAST_4_5
 	depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
 	depends on BR2_USE_MMU # fork()
 
@@ -30,6 +31,7 @@ config BR2_PACKAGE_PROTOBUF
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_TOOLCHAIN_HAS_THREADS
 	depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
 	depends on !BR2_STATIC_LIBS
 	help
 	  Protocol buffers are Google's language-neutral, platform-neutral,
@@ -37,7 +39,7 @@ config BR2_PACKAGE_PROTOBUF
 
 	  https://developers.google.com/protocol-buffers
 
-comment "protobuf needs a toolchain w/ C++, threads, dynamic library"
+comment "protobuf needs a toolchain w/ C++, threads, dynamic library, gcc >= 4.5"
 	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \
-		|| BR2_STATIC_LIBS
+		|| BR2_STATIC_LIBS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
 	depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS
Signature · 1 line
2.12.2
#1 lore raw

PATCH 1/1 package/protobuf: depend on gcc >= 4.5

Hello,

Quoted 4 lines · mrugiero at gmail.com

From: "Mario J. Rugiero" <[email protected]>

Protobuf hits a bug in gcc < 4.5 which breaks the build. See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=189

This bug is marked as FIXED, and it has been fixed since many years.

What is the actual problem you are seeing? Is there a reference to an autobuilder issue?

I've tried to build with gcc 4.3, and indeed I'm getting:

./google/protobuf/metadata.h: In constructor 'google::protobuf::internal::InternalMetadataWithArena::InternalMetadataWithArena(google::protobuf::Arena*)':
./google/protobuf/metadata.h:175: error: class 'google::protobuf::internal::InternalMetadataWithArena' does not have any field named 'InternalMetadataWithArenaBase' ./google/protobuf/metadata.h: In constructor 'google::protobuf::internal::InternalMetadataWithArenaLite::InternalMetadataWithArenaLite(google::protobuf::Arena*)':
./google/protobuf/metadata.h:204: error: class 'google::protobuf::internal::InternalMetadataWithArenaLite' does not have any field named 'InternalMetadataWithArenaBase'

Is this the issue we're talking about ?

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#2 lore raw

PATCH 1/1 package/protobuf: depend on gcc >= 4.5

2017-04-29 9:31 GMT-03:00 Thomas Petazzoni
<[email protected]>:

Quoted 13 lines

Hello,

Quoted 4 lines · mrugiero at gmail.com

From: "Mario J. Rugiero" <[email protected]>

Protobuf hits a bug in gcc < 4.5 which breaks the build. See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=189

This bug is marked as FIXED, and it has been fixed since many years.

What is the actual problem you are seeing? Is there a reference to an autobuilder issue?

Quoted 8 lines

I've tried to build with gcc 4.3, and indeed I'm getting:

./google/protobuf/metadata.h: In constructor 'google::protobuf::internal::InternalMetadataWithArena::InternalMetadataWithArena(google::protobuf::Arena*)':
./google/protobuf/metadata.h:175: error: class 'google::protobuf::internal::InternalMetadataWithArena' does not have any field named 'InternalMetadataWithArenaBase' ./google/protobuf/metadata.h: In constructor 'google::protobuf::internal::InternalMetadataWithArenaLite::InternalMetadataWithArenaLite(google::protobuf::Arena*)':
./google/protobuf/metadata.h:204: error: class 'google::protobuf::internal::InternalMetadataWithArenaLite' does not have any field named 'InternalMetadataWithArenaBase'

Is this the issue we're talking about ?

Exactly.

Quoted 6 lines

Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

#3 lore raw

PATCH 1/1 package/protobuf: depend on gcc >= 4.5

I just realized there was more before The question I answered. The bug got fixed in versi?n 4.5.0 of gcc, thus it is unsupported to build with earlier versions. The message seen is an instance of this bug.

El abr. 29, 2017 11:54, "Mario Rugiero" <[email protected]> escribi?:

Quoted 24 lines

2017-04-29 9:31 GMT-03:00 Thomas Petazzoni
<[email protected]>:

Quoted 8 lines

Hello,

Quoted 4 lines · mrugiero at gmail.com

From: "Mario J. Rugiero" <[email protected]>

Protobuf hits a bug in gcc < 4.5 which breaks the build. See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=189

Quoted 8 lines

This bug is marked as FIXED, and it has been fixed since many years.

What is the actual problem you are seeing? Is there a reference to an autobuilder issue?

I've tried to build with gcc 4.3, and indeed I'm getting:

./google/protobuf/metadata.h: In constructor

'google::protobuf::internal::InternalMetadataWithArena::
InternalMetadataWithArena(google::protobuf::Arena*)':

Quoted 1 line

./google/protobuf/metadata.h:175: error: class

'google::protobuf::internal::InternalMetadataWithArena' does not have any field named 'InternalMetadataWithArenaBase'

Quoted 1 line

./google/protobuf/metadata.h: In constructor

Quoted 15 lines

'google::protobuf::internal::InternalMetadataWithArenaLite::
InternalMetadataWithArenaLite(google::protobuf::Arena*)':

Quoted 1 line

./google/protobuf/metadata.h:204: error: class

'google::protobuf::internal::InternalMetadataWithArenaLite' does not have any field named 'InternalMetadataWithArenaBase'

Quoted 2 lines

Is this the issue we're talking about ?

Exactly.

Quoted 6 lines

Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20170429/e3124482/attachment.html>

#4 lore raw

PATCH 1/1 package/protobuf: depend on gcc >= 4.5

Hello,

Quoted 3 lines · Mario Rugiero

I just realized there was more before The question I answered. The bug got fixed in versi?n 4.5.0 of gcc, thus it is unsupported to build with earlier versions. The message seen is an instance of this bug.

Then we also have a problem with the host variant: host-protobuf also requires gcc >= 4.5.0. I've restarted my autobuilder, and it uses an old version of gcc on the host, which causes host-protobuf to fail building:

http://autobuild.buildroot.net/results/539/53908fe11b5b6497205e17c151f02e94fab10999/build-end.log

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#5 lore raw

PATCH 1/1 package/protobuf: depend on gcc >= 4.5

2017-04-30 4:29 GMT-03:00 Thomas Petazzoni
<[email protected]>:

Quoted 2 lines

Hello,

Hi

Quoted 6 lines · Mario Rugiero

Then we also have a problem with the host variant: host-protobuf also requires gcc >= 4.5.0. I've restarted my autobuilder, and it uses an old version of gcc on the host, which causes host-protobuf to fail building:

I'll give it a shot at reproducing locally. Hopefully I can patch the triggering instances.
If I succeed, I'll commit a different patch to support building on older versions of gcc,
and will send it upstream, too, so the patches can be dropped in a following version.
Wish me luck!

Quoted 10 lines

http://autobuild.buildroot.net/results/539/53908fe11b5b6497205e17c151f02e94fab10999/build-end.log

Best regards,

Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

Regards,
Mario.

#6 lore raw

PATCH 1/1 package/protobuf: depend on gcc >= 4.5

All,

Quoted 12 lines · Mario Rugiero

2017-04-30 4:29 GMT-03:00 Thomas Petazzoni
<[email protected]>:

Quoted 2 lines

Hello,

Hi

Quoted 6 lines · Mario Rugiero

Then we also have a problem with the host variant: host-protobuf also requires gcc >= 4.5.0. I've restarted my autobuilder, and it uses an old version of gcc on the host, which causes host-protobuf to fail building:

Quoted 7 lines

I'll give it a shot at reproducing locally. Hopefully I can patch the triggering instances.
If I succeed, I'll commit a different patch to support building on older versions of gcc,
and will send it upstream, too, so the patches can be dropped in a following version.
Wish me luck!

Another data point, This Ubuntu host GCC seems to not have the issue, so some distros have pulled the fix in.
g++ (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4

Matt

#7 lore raw

PATCH 1/1 package/protobuf: depend on gcc >= 4.5

Hello,

Quoted 11 lines · Matthew Weber
Quoted 7 lines

I'll give it a shot at reproducing locally. Hopefully I can patch the triggering instances.
If I succeed, I'll commit a different patch to support building on older versions of gcc,
and will send it upstream, too, so the patches can be dropped in a following version.
Wish me luck!

Another data point, This Ubuntu host GCC seems to not have the issue, so some distros have pulled the fix in.
g++ (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4

Well, the problem has been fixed in gcc upstream since 4.5 apparently, so obviously a 4.8 gcc does not exhibit the issue, and it's not because of distro-specific patches.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#8 lore raw

PATCH 1/1 package/protobuf: depend on gcc >= 4.5

I got gcc 4.3 to build on my Arch box, so I'll try to get it building with it. I'll probably send the patches to work around this issue by the weekend.

Cheers,
Mario.