Hi all
Sorry obconseil and John for the delay, my work priorities got
shifted to other things... @John: good idea to ping me personally!
;)
Am 06.11.2014 10:23, schrieb obconseil:
Le 05/11/2014 22:43, Guillaume Déflache a écrit :
Fine, but that's not the problem as I said before (see the very
1st quoted text in this message): *installing protoc at the
right location* (that is .../build_dir/host/bin/protoc IIRC) is
the problem.
I checked that with our pre-BB snapshot it was installed where
expected and that with the BB release it is not. You can try
executing `make install` from the host build directory to
convince yourself that that does what is required from the
OpenWrt Makefile but currently missing in BB's. That's what I
did and then the problem was gone.
So you have to try using protoc to generate some source code
files in order to really stumble on the problem. Apart from
that everything works fine indeed.
Oh. I admit I overlooked this in your previous message. Thanks.
What about the attached patch ?
I had no time to test it unfortunately but I made one myself (see
below) in parallel to get something working for us internally.
By the way, maybe somebody else could enlighten me on this but in
BB, it seems that the "host" tools directory is
.../staging_dir/host/bin rather than .../build_dir/host/bin .
I have no .../build_dir/host/bin directory on my build tree.
You are right, .../staging_dir/host/bin is correct: AFAICU only
staging_dir/ sports global filesystem hierarchies for all packages
with bin/, include/, lib/, ... (one for the host, two per compiled
target for the toolchain and the device itself).
The patch do install protoc in .../staging_dir/host/bin , along
with all other programs like bison,...
I think this is the correct thing to do, and that's also what I do
in my patch.
Since the snapshot we used previously PKG_USE_MIPS16:=0
also got added, does that mean we should also use that on
all packages that compile Protocol Buffer generated code
and/or link with the PB library?
After a second though I think this line was to avoid an assembler
error on some plateform. I still need to test the current
compiler/assembler on a MIPS16 platform, but for now you can
safely leave this line out for your platform. [...]
I would have no objections to 2.6.1 if it also works for us too
(I can test that at the same time).
Yes, please test & report : I would much better push upstream a
patch with the newest version of protobuf.
For us 2.6.0 and 2.5.0 definitely do not work (I think I also
tested with 2.6.1, not sure anymore).
When I made the patch I stumbled upon
<https://www.mail-archive.com/protobuf@googlegroups.com/msg10536.html>
("Re: [protobuf] Re: Issue 670 in protobuf: Not Able to compile
protobuf for mips platform") which looks exactly like the problem I
had. Alas I did not notify either of OpenWrt or protobuf of the
others' problem then.
I guess there was some kind of regression from 2.4.1, probably
someone should point the upstream protobuf developers to this
thread.
What works for us is the patch below: - as I said only 2.4.1
worked - removing the src/google/protobuf/stubs/platform_macros.h
patch chunk also did help *IIRC* - PKG_USE_MIPS16:=0 or 1 made no
difference *IIRC*
##\brief protobuf 2.4.1 without MIPS16 ## ## For the full rationale
see
<https://lists.openwrt.org/pipermail/openwrt-devel/2014-November/029107.html>.
## This is a Git patch against GitHub OpenWrt's 'packages' feed
v14.07. # diff --git a/libs/protobuf/Makefile
b/libs/protobuf/Makefile index 1553a7e..1411a82 100644 ---
a/libs/protobuf/Makefile +++ b/libs/protobuf/Makefile @@ -8,12
+8,12 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=protobuf -PKG_VERSION:=2.5.0 +PKG_VERSION:=2.4.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=http://protobuf.googlecode.com/files
-PKG_MD5SUM:=a72001a9067a4c2c4e0e836d0f92ece4
+PKG_MD5SUM:=ed436802019c9e1f40cc750eaf78f318
PKG_BUILD_DEPENDS:=protobuf/host PKG_USE_MIPS16:=0 @@ -38,14 +38,7
@@ define Package/protobuf/description of its internal RPC
protocols and file formats. endef
-define Host/Compile - $(MAKE) -C $(HOST_BUILD_DIR) -endef -
-define Host/Install -endef - -CONFIGURE_ARGS +=
--with-protoc=$(HOST_BUILD_DIR)/src/protoc +CONFIGURE_ARGS +=
--with-protoc=$(STAGING_DIR_HOST)/bin/protoc
define Build/InstallDev $(INSTALL_DIR) \ diff --git
a/libs/protobuf/patches/001-mipseb-compile.patch
b/libs/protobuf/patches/001-mipseb-compile.patch deleted file mode
100644 index 6eb0590..0000000 ---
a/libs/protobuf/patches/001-mipseb-compile.patch +++ /dev/null @@
-1,11 +0,0 @@ ---- a/src/google/protobuf/stubs/platform_macros.h
-+++ b/src/google/protobuf/stubs/platform_macros.h -@@ -49,7 +49,7
@@ - #elif defined(__ARMEL__) - #define GOOGLE_PROTOBUF_ARCH_ARM 1
- #define GOOGLE_PROTOBUF_ARCH_32_BIT 1 --#elif
defined(__MIPSEL__) -+#elif defined(__MIPSEL__) ||
defined(__MIPSEB__) - #define GOOGLE_PROTOBUF_ARCH_MIPS 1 - #define
GOOGLE_PROTOBUF_ARCH_32_BIT 1 - #elif defined(__pnacl__)