The problem seems to be byteswap.h

First I was able to fix the endian.h problem:

/usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:27:20:
error: endian.h: No such file or directory

I found the solution here : https://issues.apache.org/jira/browse/THRIFT-851
I simply include machine/endian.h instead of endian.h and it works.

But it seems that byteswap.h / byte_order.h are impossible to have under
FreeBSD. I tried to install gnulib (from the port), and I still don't have
byteswap.h / byte_order.h.

/usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:28:22:
error: byteswap.h: No such file or directory

Any idea how to get byteswap.h / byte_order.h under FreeBSD !?

Thanks,

- Mike
aka...@gmail.com


On Sat, Oct 9, 2010 at 10:22 AM, Michel Nadeau <aka...@gmail.com> wrote:

> Hi,
>
> I'm trying to compile the Thrift PHP extension under FreeBSD. I'm trying
> with Thrift v0.4.
>
> I think I have all the required dependencies (but I may be wrong), here's
> what I do :
>
> $ cd thrift-0.4.0/lib/php/src/ext/thrift_protocol
> $ phpize (success)
> $ ./configure (success)
> $ make (errors)
>
> Here's the errors thrown by "make" :
>
> /bin/sh /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/libtool
> --mode=compile g++  -I.
> -I/usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol -DPHP_ATOM_INC
> -I/usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/include
> -I/usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/main
> -I/usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol
> -I/usr/local/include/php -I/usr/local/include/php/main
> -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend
> -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib
> -I/usr/local/include/php -DHAVE_CONFIG_H  -g -O2   -c
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp
> -o php_thrift_protocol.lo
>  g++ -I. -I/usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol
> -DPHP_ATOM_INC
> -I/usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/include
> -I/usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/main
> -I/usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol
> -I/usr/local/include/php -I/usr/local/include/php/main
> -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend
> -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib
> -I/usr/local/include/php -DHAVE_CONFIG_H -g -O2 -c
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp
> -fPIC -DPIC -o .libs/php_thrift_protocol.o
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:27:20:
> error: endian.h: No such file or directory
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:28:22:
> error: byteswap.h: No such file or directory
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:78:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:78:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:91:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:91:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:
> In member function 'void PHPTransport::construct_with_zval(zval*, size_t)':
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:126:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:
> In member function 'void PHPOutputTransport::writeI64(int64_t)':
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:171:
> error: 'bswap_64' was not declared in this scope
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:
> In member function 'void PHPOutputTransport::directFlush()':
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:213:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:
> In member function 'void PHPOutputTransport::directWrite(const char*,
> size_t)':
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:220:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:
> In member function 'void PHPInputTransport::put_back()':
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:254:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:
> In member function 'void PHPInputTransport::refill()':
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:341:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:
> In function 'void throw_tprotocolexception(char*, long int)':
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:396:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:
> In function 'void binary_deserialize(int8_t, PHPInputTransport&, zval*,
> HashTable*)':
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:418:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:419:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:431:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:466:
> error: 'bswap_64' was not declared in this scope
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:474:
> error: 'bswap_64' was not declared in this scope
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:498:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:500:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:526:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:544:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:
> In function 'void binary_deserialize_spec(zval*, PHPInputTransport&,
> HashTable*)':
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:690:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:694:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:
> In function 'void binary_serialize(int8_t, PHPOutputTransport&, zval**,
> HashTable*)':
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:722:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:724:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:726:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:770:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:775:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:779:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:784:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:797:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:802:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:807:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:819:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:824:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:
> In function 'void binary_serialize_spec(zval*, PHPOutputTransport&,
> HashTable*)':
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:852:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:858:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:862:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:
> In function 'void zif_thrift_protocol_write_binary(int, zval*, zval**,
> zval*, int)':
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:928:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:930:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:
> In function 'void zif_thrift_protocol_read_binary(int, zval*, zval**, zval*,
> int)':
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:981:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:989:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:1001:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:1002:
> warning: deprecated conversion from string constant to 'char*'
> /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol/php_thrift_protocol.cpp:1008:
> warning: deprecated conversion from string constant to 'char*'
> *** Error code 1
>
> Stop in /usr/local/src/thrift-0.4.0/lib/php/src/ext/thrift_protocol.
>
> My FreeBSD version is FreeBSD 7.2-RELEASE amd64.
>
> I've had absolutely no problem building the same Thrift version under
> Debian x64, but as usual FreeBSD (which we use on our production machine) is
> giving me trouble!
>
> Anyone has an idea of what can be my problem/solution ?
>
> Thanks in advance,
>
> - Mike
> aka...@gmail.com
>

Reply via email to