Message ID | 20170503205945.7065-1-mrugiero@gmail.com |
---|---|
State | Changes Requested |
Headers | show |
Hello, On Wed, 3 May 2017 17:59:45 -0300, Mario J. Rugiero wrote: > Includes upstream patch working around a gcc bug which got fixed in version 4.5.0. > > Fixes: > http://autobuild.buildroot.org/results/77d/77dbb6bbbc0ea9e9bcdd22b10011ef9728c20d54/ > http://autobuild.buildroot.org/results/21f/21f5e1ea4f37e1d174604d6da78c0e916c89f1e3/ > http://autobuild.buildroot.org/results/24e/24e880086c87d40b5d79a90d805acc75b33d484c/ > > Tested with: > qemu_aarch64_virt_defconfig > > Signed-off-by: Mario J. Rugiero <mrugiero@gmail.com> I've applied this patch, and then tried building with a gcc 4.3 toolchain, and still get: libtool: compile: /home/thomas/projets/buildroot/output/host/usr/bin/arm-none-linux-gnueabi-g++ -DHAVE_CONFIG_H -I. -I.. -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pthread -DHAVE_PTHREAD=1 -Wall -Wno-sign-compare -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -c google/protobuf/util/type_resolver_util.cc -fPIC -DPIC -o google/protobuf/util/.libs/type_resolver_util.o In file included from ./google/protobuf/metadata.h:41, from ./google/protobuf/type.pb.h:27, from google/protobuf/util/type_resolver_util.cc:33: ./google/protobuf/metadata_lite.h: In constructor 'google::protobuf::internal::InternalMetadataWithArenaLite::InternalMetadataWithArenaLite(google::protobuf::Arena*)': ./google/protobuf/metadata_lite.h:170: error: class 'google::protobuf::internal::InternalMetadataWithArenaLite' does not have any field named 'InternalMetadataWithArenaBase' In file included from ./google/protobuf/metadata.h:41, from ./google/protobuf/compiler/plugin.pb.h:27, from google/protobuf/compiler/code_generator.cc:37: ./google/protobuf/metadata_lite.h: In constructor 'google::protobuf::internal::InternalMetadataWithArenaLite::InternalMetadataWithArenaLite(google::protobuf::Arena*)': ./google/protobuf/metadata_lite.h:170: error: class 'google::protobuf::internal::InternalMetadataWithArenaLite' does not have any field named 'InternalMetadataWithArenaBase' In file included from ./google/protobuf/metadata.h:41, from ./google/protobuf/duration.pb.h:27, from ./google/protobuf/util/time_util.h:45, from google/protobuf/util/time_util.cc:31: ./google/protobuf/metadata_lite.h: In constructor 'google::protobuf::internal::InternalMetadataWithArenaLite::InternalMetadataWithArenaLite(google::protobuf::Arena*)': ./google/protobuf/metadata_lite.h:170: error: class 'google::protobuf::internal::InternalMetadataWithArenaLite' does not have any field named 'InternalMetadataWithArenaBase' In file included from ./google/protobuf/metadata.h:41, from ./google/protobuf/type.pb.h:27, from ./google/protobuf/util/internal/type_info.h:35, from ./google/protobuf/util/internal/default_value_objectwriter.h:43, from google/protobuf/util/json_util.cc:36: ./google/protobuf/metadata_lite.h: In constructor 'google::protobuf::internal::InternalMetadataWithArenaLite::InternalMetadataWithArenaLite(google::protobuf::Arena*)': ./google/protobuf/metadata_lite.h:170: error: class 'google::protobuf::internal::InternalMetadataWithArenaLite' does not have any field named 'InternalMetadataWithArenaBase' Makefile:4068: recipe for target 'google/protobuf/util/time_util.lo' failed make[5]: *** [google/protobuf/util/time_util.lo] Error 1 make[5]: *** Waiting for unfinished jobs.... Makefile:4068: recipe for target 'google/protobuf/util/type_resolver_util.lo' failed make[5]: *** [google/protobuf/util/type_resolver_util.lo] Error 1 Makefile:4068: recipe for target 'google/protobuf/util/json_util.lo' failed make[5]: *** [google/protobuf/util/json_util.lo] Error 1 Makefile:4068: recipe for target 'google/protobuf/compiler/code_generator.lo' failed make[5]: *** [google/protobuf/compiler/code_generator.lo] Error 1 Makefile:2076: recipe for target 'all' failed make[4]: *** [all] Error 2 Makefile:1396: recipe for target 'all-recursive' failed make[3]: *** [all-recursive] Error 1 Makefile:1302: recipe for target 'all' failed make[2]: *** [all] Error 2 package/pkg-generic.mk:227: recipe for target '/home/thomas/projets/buildroot/output/build/protobuf-3.3.0/.stamp_built' failed make[1]: *** [/home/thomas/projets/buildroot/output/build/protobuf-3.3.0/.stamp_built] Error 2 Makefile:79: recipe for target '_all' failed make: *** [_all] Error 2 You can reproduce this by using the following configuration: BR2_arm=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y BR2_TOOLCHAIN_EXTERNAL_URL="http://sources.buildroot.net/arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2" BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="arm-none-linux-gnueabi" BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y BR2_TOOLCHAIN_EXTERNAL_CXX=y BR2_INIT_NONE=y # BR2_PACKAGE_BUSYBOX is not set BR2_PACKAGE_PROTOBUF=y # BR2_TARGET_ROOTFS_TAR is not set Best regards, Thomas Petazzoni
2017-05-04 9:56 GMT-03:00 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>: > Hello, > > On Wed, 3 May 2017 17:59:45 -0300, Mario J. Rugiero wrote: >> Includes upstream patch working around a gcc bug which got fixed in version 4.5.0. >> >> Fixes: >> http://autobuild.buildroot.org/results/77d/77dbb6bbbc0ea9e9bcdd22b10011ef9728c20d54/ >> http://autobuild.buildroot.org/results/21f/21f5e1ea4f37e1d174604d6da78c0e916c89f1e3/ >> http://autobuild.buildroot.org/results/24e/24e880086c87d40b5d79a90d805acc75b33d484c/ >> >> Tested with: >> qemu_aarch64_virt_defconfig >> >> Signed-off-by: Mario J. Rugiero <mrugiero@gmail.com> > > I've applied this patch, and then tried building with a gcc 4.3 > toolchain, and still get: > > libtool: compile: /home/thomas/projets/buildroot/output/host/usr/bin/arm-none-linux-gnueabi-g++ -DHAVE_CONFIG_H -I. -I.. -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pthread -DHAVE_PTHREAD=1 -Wall -Wno-sign-compare -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -c google/protobuf/util/type_resolver_util.cc -fPIC -DPIC -o google/protobuf/util/.libs/type_resolver_util.o > In file included from ./google/protobuf/metadata.h:41, > from ./google/protobuf/type.pb.h:27, > from google/protobuf/util/type_resolver_util.cc:33: > ./google/protobuf/metadata_lite.h: In constructor 'google::protobuf::internal::InternalMetadataWithArenaLite::InternalMetadataWithArenaLite(google::protobuf::Arena*)': > ./google/protobuf/metadata_lite.h:170: error: class 'google::protobuf::internal::InternalMetadataWithArenaLite' does not have any field named 'InternalMetadataWithArenaBase' > In file included from ./google/protobuf/metadata.h:41, > from ./google/protobuf/compiler/plugin.pb.h:27, > from google/protobuf/compiler/code_generator.cc:37: > ./google/protobuf/metadata_lite.h: In constructor 'google::protobuf::internal::InternalMetadataWithArenaLite::InternalMetadataWithArenaLite(google::protobuf::Arena*)': > ./google/protobuf/metadata_lite.h:170: error: class 'google::protobuf::internal::InternalMetadataWithArenaLite' does not have any field named 'InternalMetadataWithArenaBase' > In file included from ./google/protobuf/metadata.h:41, > from ./google/protobuf/duration.pb.h:27, > from ./google/protobuf/util/time_util.h:45, > from google/protobuf/util/time_util.cc:31: > ./google/protobuf/metadata_lite.h: In constructor 'google::protobuf::internal::InternalMetadataWithArenaLite::InternalMetadataWithArenaLite(google::protobuf::Arena*)': > ./google/protobuf/metadata_lite.h:170: error: class 'google::protobuf::internal::InternalMetadataWithArenaLite' does not have any field named 'InternalMetadataWithArenaBase' > In file included from ./google/protobuf/metadata.h:41, > from ./google/protobuf/type.pb.h:27, > from ./google/protobuf/util/internal/type_info.h:35, > from ./google/protobuf/util/internal/default_value_objectwriter.h:43, > from google/protobuf/util/json_util.cc:36: > ./google/protobuf/metadata_lite.h: In constructor 'google::protobuf::internal::InternalMetadataWithArenaLite::InternalMetadataWithArenaLite(google::protobuf::Arena*)': > ./google/protobuf/metadata_lite.h:170: error: class 'google::protobuf::internal::InternalMetadataWithArenaLite' does not have any field named 'InternalMetadataWithArenaBase' > Makefile:4068: recipe for target 'google/protobuf/util/time_util.lo' failed > make[5]: *** [google/protobuf/util/time_util.lo] Error 1 > make[5]: *** Waiting for unfinished jobs.... > Makefile:4068: recipe for target 'google/protobuf/util/type_resolver_util.lo' failed > make[5]: *** [google/protobuf/util/type_resolver_util.lo] Error 1 > Makefile:4068: recipe for target 'google/protobuf/util/json_util.lo' failed > make[5]: *** [google/protobuf/util/json_util.lo] Error 1 > Makefile:4068: recipe for target 'google/protobuf/compiler/code_generator.lo' failed > make[5]: *** [google/protobuf/compiler/code_generator.lo] Error 1 > Makefile:2076: recipe for target 'all' failed > make[4]: *** [all] Error 2 > Makefile:1396: recipe for target 'all-recursive' failed > make[3]: *** [all-recursive] Error 1 > Makefile:1302: recipe for target 'all' failed > make[2]: *** [all] Error 2 > package/pkg-generic.mk:227: recipe for target '/home/thomas/projets/buildroot/output/build/protobuf-3.3.0/.stamp_built' failed > make[1]: *** [/home/thomas/projets/buildroot/output/build/protobuf-3.3.0/.stamp_built] Error 2 > Makefile:79: recipe for target '_all' failed > make: *** [_all] Error 2 > > You can reproduce this by using the following configuration: > > BR2_arm=y > BR2_TOOLCHAIN_EXTERNAL=y > BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y > BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y > BR2_TOOLCHAIN_EXTERNAL_URL="http://sources.buildroot.net/arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2" > BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="arm-none-linux-gnueabi" > BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y > BR2_TOOLCHAIN_EXTERNAL_CXX=y > BR2_INIT_NONE=y > # BR2_PACKAGE_BUSYBOX is not set > BR2_PACKAGE_PROTOBUF=y > # BR2_TARGET_ROOTFS_TAR is not set > > Best regards, > > Thomas Petazzoni > -- > Thomas Petazzoni, CTO, Free Electrons > Embedded Linux and Kernel engineering > http://free-electrons.com Thanks, I'll look into it.
>> You can reproduce this by using the following configuration: >> >> BR2_arm=y >> BR2_TOOLCHAIN_EXTERNAL=y >> BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y >> BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y >> BR2_TOOLCHAIN_EXTERNAL_URL="http://sources.buildroot.net/arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2" >> BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="arm-none-linux-gnueabi" >> BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y >> BR2_TOOLCHAIN_EXTERNAL_CXX=y >> BR2_INIT_NONE=y >> # BR2_PACKAGE_BUSYBOX is not set >> BR2_PACKAGE_PROTOBUF=y >> # BR2_TARGET_ROOTFS_TAR is not set >> >> Best regards, >> >> Thomas Petazzoni >> -- >> Thomas Petazzoni, CTO, Free Electrons >> Embedded Linux and Kernel engineering >> http://free-electrons.com > Thanks, I'll look into it. I fixed that particular issue in my local copy, but fails because Atomic32 is not supported in that toolchain. Do you know if there is any similar toolchain with such support? Otherwise, how should I fix that? Regards, Mario.
Hello, On Fri, 5 May 2017 14:24:00 -0300, Mario Rugiero wrote: > I fixed that particular issue in my local copy, but fails because > Atomic32 is not supported in that toolchain. > Do you know if there is any similar toolchain with such support? > Otherwise, how should I fix that? What error do you have exactly? Something like an undefined reference to some __atomic_*() function? If so, then make sure you link with -latomic. Best regards, Thomas
2017-05-05 15:20 GMT-03:00 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>: > Hello, > > On Fri, 5 May 2017 14:24:00 -0300, Mario Rugiero wrote: > >> I fixed that particular issue in my local copy, but fails because >> Atomic32 is not supported in that toolchain. >> Do you know if there is any similar toolchain with such support? >> Otherwise, how should I fix that? > > What error do you have exactly? /bin/sh ../libtool --tag=CXX --mode=compile /home/mrugiero/workspace/buildroot/output/host/usr/bin/arm-none-linux-gnueabi-g++ -DHAVE_CONFIG_H -I. -I.. -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pthread -DHAVE_PTHREAD=1 -Wall -Wno-sign-compare -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -c -o google/protobuf/dynamic_message.lo goo gle/protobuf/dynamic_message.cc libtool: compile: /home/mrugiero/workspace/buildroot/output/host/usr/bin/arm-none-linux-gnueabi-g++ -DHAVE_CONFIG_H -I. -I.. -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pthread -DHAVE_PTHREAD=1 -Wall -Wno-sign-compare -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -c google/protobuf/dynamic_message.cc -fPIC -DPIC -o google/protobuf/.libs/dy namic_message.o In file included from google/protobuf/dynamic_message.cc:82: ./google/protobuf/map_field.h: In member function 'void google::protobuf::internal::MapField<Derived, Key, Value, kKeyFieldType, kValueFieldType, default_enum_value>::Swap(google::protobuf::internal::MapField<Derived, Key, Value, kKeyFieldType, kValueFieldType, default_enum_value>*)': ./google/protobuf/map_field.h:139: error: object missing in reference to 'google::protobuf::internal::MapFieldBase::repeated_field_' ./google/protobuf/map_field_inl.h:255: error: from this location ./google/protobuf/map_field.h:143: error: object missing in reference to 'google::protobuf::internal::MapFieldBase::state_' ./google/protobuf/map_field_inl.h:257: error: from this location > > Something like an undefined reference to some __atomic_*() function? If > so, then make sure you link with -latomic. > > Best regards, > > Thomas > -- > Thomas Petazzoni, CTO, Free Electrons > Embedded Linux and Kernel engineering > http://free-electrons.com
Hello, On Wed, 3 May 2017 17:59:45 -0300, Mario J. Rugiero wrote: > Includes upstream patch working around a gcc bug which got fixed in version 4.5.0. > > Fixes: > http://autobuild.buildroot.org/results/77d/77dbb6bbbc0ea9e9bcdd22b10011ef9728c20d54/ > http://autobuild.buildroot.org/results/21f/21f5e1ea4f37e1d174604d6da78c0e916c89f1e3/ > http://autobuild.buildroot.org/results/24e/24e880086c87d40b5d79a90d805acc75b33d484c/ > > Tested with: > qemu_aarch64_virt_defconfig > > Signed-off-by: Mario J. Rugiero <mrugiero@gmail.com> I was about to apply this patch, but I get: 2017-05-11 22:54:02 (2,13 MB/s) - ‘/home/thomas/projets/buildroot/output/build/.protobuf-cpp-3.3.0.tar.gz.8o4hc1/output’ saved [4218377/4218377] ERROR: protobuf-cpp-3.3.0.tar.gz has wrong sha256 hash: ERROR: expected: 578a2589bf9258adb03245dec5d624b61536867ebb732dbb8aeb30d96b0ada1f ERROR: got : 5e2587dea2f9287885e3b04d3a94ed4e8b9b2d2c5dd1f0032ceef3ea1d153bd7 ERROR: Incomplete download, or man-in-the-middle (MITM) attack It's weird, because I'm pretty sure I had tested it before. Which would mean upstream has re-uploaded a different tarball with the same version number, which is really bad. Could you look into this? Thanks! Thomas
diff --git a/package/protobuf/protobuf.hash b/package/protobuf/protobuf.hash index 8c2ade37e..91e70f236 100644 --- a/package/protobuf/protobuf.hash +++ b/package/protobuf/protobuf.hash @@ -1,3 +1,2 @@ # Locally calculated -sha256 51d773e4297238b282eaa4c1dd317099675b12eef2b414732b851c00459225c6 protobuf-cpp-3.2.0.tar.gz -sha256 da80c39838515913633f4cbd875fdd4ad711be95c83a50ff5096b9f1254033b3 416f90939d4de58fe1a4e2489120010313183291.patch +sha256 578a2589bf9258adb03245dec5d624b61536867ebb732dbb8aeb30d96b0ada1f protobuf-cpp-3.3.0.tar.gz diff --git a/package/protobuf/protobuf.mk b/package/protobuf/protobuf.mk index 610da8c04..556773106 100644 --- a/package/protobuf/protobuf.mk +++ b/package/protobuf/protobuf.mk @@ -7,7 +7,7 @@ # When bumping this package, make sure to also verify if the # python-protobuf package still works, as they share the same # version/site variables. -PROTOBUF_VERSION = 3.2.0 +PROTOBUF_VERSION = 3.3.0 PROTOBUF_SOURCE = protobuf-cpp-$(PROTOBUF_VERSION).tar.gz PROTOBUF_SITE = https://github.com/google/protobuf/releases/download/v$(PROTOBUF_VERSION) PROTOBUF_LICENSE = BSD-3-Clause @@ -19,8 +19,6 @@ PROTOBUF_CONF_OPTS = --with-protoc=$(HOST_DIR)/usr/bin/protoc PROTOBUF_INSTALL_STAGING = YES -PROTOBUF_PATCH = https://github.com/google/protobuf/commit/416f90939d4de58fe1a4e2489120010313183291.patch - ifeq ($(BR2_PACKAGE_ZLIB),y) PROTOBUF_DEPENDENCIES += zlib endif diff --git a/package/python-protobuf/python-protobuf.hash b/package/python-protobuf/python-protobuf.hash index c87403f24..7da2fed03 100644 --- a/package/python-protobuf/python-protobuf.hash +++ b/package/python-protobuf/python-protobuf.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 c574e2b2178ffe66599274e8cfa11ecf83799a7992be30f0b68fb33ea0a0f1af protobuf-python-3.2.0.tar.gz +sha256 3fd180eee78c7ee2e7a1b2f02657ef61ccbc2537a6767cd2493077d3b38c9d2d protobuf-python-3.3.0.tar.gz
Includes upstream patch working around a gcc bug which got fixed in version 4.5.0. Fixes: http://autobuild.buildroot.org/results/77d/77dbb6bbbc0ea9e9bcdd22b10011ef9728c20d54/ http://autobuild.buildroot.org/results/21f/21f5e1ea4f37e1d174604d6da78c0e916c89f1e3/ http://autobuild.buildroot.org/results/24e/24e880086c87d40b5d79a90d805acc75b33d484c/ Tested with: qemu_aarch64_virt_defconfig Signed-off-by: Mario J. Rugiero <mrugiero@gmail.com> --- package/protobuf/protobuf.hash | 3 +-- package/protobuf/protobuf.mk | 4 +--- package/python-protobuf/python-protobuf.hash | 2 +- 3 files changed, 3 insertions(+), 6 deletions(-)