[OpenWrt-Devel] protobuf broken in BB

obconseil obconseil at gmail.com
Wed Nov 26 02:42:52 EST 2014


Le 26/11/2014 08:10, John Crispin a écrit :
> Hi,
>
> so which patch do i use now ?
>
> 	John

* I think guillaume was right in pointing the fact that the protoc 
compiler wasn't installed.
* While we are at it, and since they are some bugfixes between 2.5 and 
2.6.1 version, I can produce
a patch set to do that .

I'll do that this morning.

Obinou


>
> On 19/11/2014 13:24, Guillaume Déflache wrote:
>> 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__)
>>
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
>
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list