[oe] [meta-oe][PATCH] protobuf: switch from mips16 to mips32 due to in-line assembler

André Draszik git at andred.net
Tue Dec 13 09:39:04 UTC 2016


From: Lukasz Nowak <lnowak at tycoint.com>

| mipsel-poky-linux-musl-libtool: compile:  mipsel-poky-linux-musl-g++ -mel -mabi=32 -msoft-float -march=mips32r2 -mips16 -minterlink-compressed -mtune=24kec -mdsp --sysroot=<sysroot> -DHAVE_CONFIG_H -I. -I../../git/src -I.. -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare -O2 -pipe -g -feliminate-unused-debug-types -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security -fvisibility-inlines-hidden -c ../../git/src/google/protobuf/repeated_field.cc  -fPIC -DPIC -o google/protobuf/.libs/repeated_field.o
| {standard input}: Assembler messages:
| {standard input}:113: Error: unrecognized opcode `sync'
| {standard input}:140: Error: unrecognized opcode `ll $2,0($16)'
| {standard input}:143: Error: unrecognized opcode `sc $4,0($16)'
| {standard input}:202: Error: unrecognized opcode `sync'
| {standard input}:275: Error: unrecognized opcode `sync'
| Makefile:2064: recipe for target 'google/protobuf/stubs/once.lo' failed
| make[3]: *** [google/protobuf/stubs/once.lo] Error 1

Protobuf implements atomics for mips, using ASM "sync" instruction.
It is not available in mips16e. Switching the library to mips32 is
the easiest solution.

Signed-off-by: Lukasz Nowak <lnowak at tycoint.com>
---
 meta-oe/recipes-devtools/protobuf/protobuf_2.6.1.bb | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/meta-oe/recipes-devtools/protobuf/protobuf_2.6.1.bb b/meta-oe/recipes-devtools/protobuf/protobuf_2.6.1.bb
index 2977c59..7b8f629 100644
--- a/meta-oe/recipes-devtools/protobuf/protobuf_2.6.1.bb
+++ b/meta-oe/recipes-devtools/protobuf/protobuf_2.6.1.bb
@@ -28,4 +28,6 @@ S = "${WORKDIR}/git"
 
 FILES_${PN}-compiler = "${bindir} ${libdir}/libprotoc${SOLIBS}"
 
+MIPS_INSTRUCTION_SET = "mips"
+
 BBCLASSEXTEND = "native nativesdk"
-- 
2.10.2




More information about the Openembedded-devel mailing list