diff options
author | takeshi_hoshina <takeshi_hoshina@mail.toyota.co.jp> | 2020-11-02 11:07:33 +0900 |
---|---|---|
committer | takeshi_hoshina <takeshi_hoshina@mail.toyota.co.jp> | 2020-11-02 11:07:33 +0900 |
commit | 1c7d6584a7811b7785ae5c1e378f14b5ba0971cf (patch) | |
tree | cd70a267a5ef105ba32f200aa088e281fbd85747 /external/meta-openembedded/meta-oe/recipes-devtools/protobuf | |
parent | 4204309872da5cb401cbb2729d9e2d4869a87f42 (diff) |
basesystem-jjsandbox/ToshikazuOhiwa/master-jj
recipes
Diffstat (limited to 'external/meta-openembedded/meta-oe/recipes-devtools/protobuf')
-rw-r--r-- | external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c/0001-avoid-race-condition.patch | 36 | ||||
-rw-r--r-- | external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.3.bb (renamed from external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.1.bb) | 12 | ||||
-rw-r--r-- | external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-Makefile.am-include-descriptor.cc-when-building-libp.patch | 28 | ||||
-rw-r--r-- | external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-examples-Makefile-respect-CXX-LDFLAGS-variables-fix-.patch | 56 | ||||
-rw-r--r-- | external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/run-ptest | 2 | ||||
-rw-r--r-- | external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.11.4.bb (renamed from external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.6.1.bb) | 11 |
6 files changed, 134 insertions, 11 deletions
diff --git a/external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c/0001-avoid-race-condition.patch b/external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c/0001-avoid-race-condition.patch new file mode 100644 index 00000000..4fc7703d --- /dev/null +++ b/external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c/0001-avoid-race-condition.patch @@ -0,0 +1,36 @@ +From 216e31260b618ec73862f9f5336597f391444dac Mon Sep 17 00:00:00 2001 +From: Chen Qi <Qi.Chen@windriver.com> +Date: Sun, 29 Sep 2019 17:20:42 +0800 +Subject: [PATCH] avoid race condition + +It's possible that the cxx-generate-packed-data.cc is compiled +while the t/test-full.pb.h is being generated. This will result +the following error. + + DEBUG: ./t/test-full.pb.h:4:0: error: unterminated #ifndef + ./t/test-full.pb.h:4:0: error: unterminated #ifndef + +Add a dependency to avoid such problem. + +Upstream-Status: Pending + +Signed-off-by: Chen Qi <Qi.Chen@windriver.com> +--- + Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Makefile.am b/Makefile.am +index b0cb065..1608ae0 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -156,6 +156,7 @@ noinst_PROGRAMS += \ + t_generated_code2_cxx_generate_packed_data_SOURCES = \ + t/generated-code2/cxx-generate-packed-data.cc \ + t/test-full.pb.cc ++t/generated-code2/cxx-generate-packed-data.cc: t/test-full.pb.h + $(t_generated_code2_cxx_generate_packed_data_OBJECTS): t/test-full.pb.h + t_generated_code2_cxx_generate_packed_data_CXXFLAGS = \ + $(AM_CXXFLAGS) \ +-- +2.17.1 + diff --git a/external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.1.bb b/external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.3.bb index 7ef03009..ed877344 100644 --- a/external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.1.bb +++ b/external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.3.bb @@ -12,10 +12,11 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=cb901168715f4782a2b06c3ddaefa558" DEPENDS = "protobuf-native protobuf" -PV .= "+git${SRCPV}" -SRCREV = "269771b4b45d3aba04e59569f53600003db8d9ff" +SRCREV = "f20a3fa131c275a0e795d99a28f94b4dbbb5af26" -SRC_URI = "git://github.com/protobuf-c/protobuf-c.git" +SRC_URI = "git://github.com/protobuf-c/protobuf-c.git \ + file://0001-avoid-race-condition.patch \ + " S = "${WORKDIR}/git" @@ -25,6 +26,11 @@ BUILD_CXXFLAGS += "-std=c++11" inherit autotools pkgconfig +# After several fix attempts there is still a race between generating +# t.test-full.pb.h and compiling cxx_generate_packed_data.c despite +# BUILT_SOURCES and explicit dependencies. +PARALLEL_MAKE = "" + PACKAGE_BEFORE_PN = "${PN}-compiler" FILES_${PN}-compiler = "${bindir}" diff --git a/external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-Makefile.am-include-descriptor.cc-when-building-libp.patch b/external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-Makefile.am-include-descriptor.cc-when-building-libp.patch new file mode 100644 index 00000000..fc728612 --- /dev/null +++ b/external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-Makefile.am-include-descriptor.cc-when-building-libp.patch @@ -0,0 +1,28 @@ +From 321709837f412e2f590e36e3fe33571bb40036a7 Mon Sep 17 00:00:00 2001 +From: Martin Jansa <Martin.Jansa@gmail.com> +Date: Thu, 27 Jun 2019 13:27:18 +0000 +Subject: [PATCH] Makefile.am: include descriptor.pb.cc when building libprotoc.so + +* otherwise plugin.pb.o has undefined symbol scc_info_FileDescriptorProto_google_2fprotobuf_2fdescriptor_2eproto + and build with gold fails with: + core2-32-oe-linux/protobuf/3.8.0-r0/recipe-sysroot-native/usr/bin/i686-oe-linux/../../libexec/i686-oe-linux/gcc/i686-oe-linux/9.1.0/ld.bfd: ./.libs/libprotoc.so: undefined reference to `descriptor_table_google_2fprotobuf_2fdescriptor_2eproto' + core2-32-oe-linux/protobuf/3.8.0-r0/recipe-sysroot-native/usr/bin/i686-oe-linux/../../libexec/i686-oe-linux/gcc/i686-oe-linux/9.1.0/ld.bfd: ./.libs/libprotoc.so: undefined reference to `scc_info_FileDescriptorProto_google_2fprotobuf_2fdescriptor_2eproto' + +Upstream-Status: Pending +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +--- + src/Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/Makefile.am b/src/Makefile.am +index be18ba761..57e3daec1 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -313,6 +313,7 @@ libprotoc_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libprotoc.map + EXTRA_libprotoc_la_DEPENDENCIES = libprotoc.map + endif + libprotoc_la_SOURCES = \ ++ google/protobuf/descriptor.pb.cc \ + google/protobuf/compiler/code_generator.cc \ + google/protobuf/compiler/command_line_interface.cc \ + google/protobuf/compiler/plugin.cc \ diff --git a/external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-examples-Makefile-respect-CXX-LDFLAGS-variables-fix-.patch b/external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-examples-Makefile-respect-CXX-LDFLAGS-variables-fix-.patch new file mode 100644 index 00000000..0a2e5e2d --- /dev/null +++ b/external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-examples-Makefile-respect-CXX-LDFLAGS-variables-fix-.patch @@ -0,0 +1,56 @@ +From a28e15092a298e0c73c6fc1ded0913275cf27cb0 Mon Sep 17 00:00:00 2001 +From: Martin Jansa <Martin.Jansa@gmail.com> +Date: Fri, 28 Jun 2019 13:50:52 +0000 +Subject: [PATCH] examples/Makefile: respect CXX,LDFLAGS variables, fix build + with gold + +* move pkg-config call to separate variable, so that the final version + of the whole command so it's shown in log.do_compile_ptest_base +* add ../src/google/protobuf/.libs/timestamp.pb.o when linking + add_person_cpp otherwise it fails to link with gold: + i686-oe-linux-g++ -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse --sysroot=core2-32-oe-linux/protobuf/3.8.0-r0/recipe-sysroot -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed add_person.cc addressbook.pb.cc -o add_person_cpp `pkg-config --cflags --libs protobuf` + /tmp/cccjSJQs.o:addressbook.pb.cc:scc_info_Person_addressbook_2eproto: error: undefined reference to 'scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto' + /tmp/cccjSJQs.o:addressbook.pb.cc:descriptor_table_addressbook_2eproto_deps: error: undefined reference to 'descriptor_table_google_2fprotobuf_2ftimestamp_2eproto' + collect2: error: ld returned 1 exit status + Makefile:43: recipe for target 'add_person_cpp' failed + +* and the same with list_people_cpp this time with pkg-config already through the variable: + i686-oe-linux-g++ -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse --sysroot=core2-32-oe-linux/protobuf/3.8.0-r0/recipe-sysroot -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -pthread -Icore2-32-oe-linux/protobuf/3.8.0-r0/git/src -Lcore2-32-oe-linux/protobuf/3.8.0-r0/git/src/.libs -Lcore2-32-oe-linux/protobuf/3.8.0-r0/recipe-sysroot/usr/lib -lprotobuf list_people.cc addressbook.pb.cc -o list_people_cpp + /tmp/ccpaI5Su.o:addressbook.pb.cc:scc_info_Person_addressbook_2eproto: error: undefined reference to 'scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto' + /tmp/ccpaI5Su.o:addressbook.pb.cc:descriptor_table_addressbook_2eproto_deps: error: undefined reference to 'descriptor_table_google_2fprotobuf_2ftimestamp_2eproto' + collect2: error: ld returned 1 exit status + Makefile:49: recipe for target 'list_people_cpp' failed + +Upstream-Status: Pending +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +--- + examples/Makefile | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/examples/Makefile b/examples/Makefile +index 4ad605641..31d887639 100644 +--- a/examples/Makefile ++++ b/examples/Makefile +@@ -2,6 +2,8 @@ + + .PHONY: all cpp java python clean + ++PROTOBUF := $(shell pkg-config --cflags --libs protobuf) ++ + all: cpp java python + + cpp: add_person_cpp list_people_cpp +@@ -41,11 +43,11 @@ protoc_middleman_dart: addressbook.proto + + add_person_cpp: add_person.cc protoc_middleman + pkg-config --cflags protobuf # fails if protobuf is not installed +- c++ add_person.cc addressbook.pb.cc -o add_person_cpp `pkg-config --cflags --libs protobuf` ++ $(CXX) $(CXXFLAGS) $(LDFLAGS) ../src/google/protobuf/.libs/timestamp.pb.o $(PROTOBUF) add_person.cc addressbook.pb.cc -o add_person_cpp + + list_people_cpp: list_people.cc protoc_middleman + pkg-config --cflags protobuf # fails if protobuf is not installed +- c++ list_people.cc addressbook.pb.cc -o list_people_cpp `pkg-config --cflags --libs protobuf` ++ $(CXX) $(CXXFLAGS) $(LDFLAGS) ../src/google/protobuf/.libs/timestamp.pb.o $(PROTOBUF) list_people.cc addressbook.pb.cc -o list_people_cpp + + add_person_dart: add_person.dart protoc_middleman_dart + diff --git a/external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/run-ptest b/external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/run-ptest index 7c3a8d1b..b3b2278c 100644 --- a/external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/run-ptest +++ b/external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/run-ptest @@ -8,7 +8,7 @@ for write_exe_full_path in ${DIR}/add_person_*; do if [ -x "${write_exe_full_path}" ]; then write_exe=`basename ${write_exe_full_path}` echo "Generating new test file using ${write_exe}..." - ${write_exe_full_path} "${TEST_FILE}" + printf "1234\nname\nname@example.com\n" | ${write_exe_full_path} "${TEST_FILE}" RETVAL=$? [ $RETVAL -eq 0 ] || exit $RETVAL diff --git a/external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.6.1.bb b/external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.11.4.bb index cf72d9ca..4d6c5b25 100644 --- a/external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.6.1.bb +++ b/external/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.11.4.bb @@ -10,13 +10,13 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=37b5762e07f0af8c74ce80a8bda4266b" DEPENDS = "zlib" DEPENDS_append_class-target = " protobuf-native" -PV .= "+git${SRCPV}" +SRCREV = "d0bfd5221182da1a7cc280f3337b5e41a89539cf" -SRCREV = "48cb18e5c419ddd23d9badcfe4e9df7bde1979b2" - -SRC_URI = "git://github.com/google/protobuf.git;branch=3.6.x \ +SRC_URI = "git://github.com/google/protobuf.git;branch=3.11.x \ file://run-ptest \ file://0001-protobuf-fix-configure-error.patch \ + file://0001-Makefile.am-include-descriptor.cc-when-building-libp.patch \ + file://0001-examples-Makefile-respect-CXX-LDFLAGS-variables-fix-.patch \ " S = "${WORKDIR}/git" @@ -31,9 +31,6 @@ TEST_SRC_DIR = "examples" LANG_SUPPORT = "cpp ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python', '', d)}" do_compile_ptest() { - # Modify makefile to use the cross-compiler - sed -e "s|c++|${CXX} \$(LDFLAGS)|g" -i "${S}/${TEST_SRC_DIR}/Makefile" - mkdir -p "${B}/${TEST_SRC_DIR}" # Add the location of the cross-compiled header and library files |