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 >