I also have the same build issue with solaris. When configure thrift from source, I found that the following works well when configuring thrift for solaris x86:
configure CPPFLAGS='-D__BYTE_ORDER=__LITTLE_ENDIAN -DAF_LOCAL=AF_UNIX' LIBS='- lsocket' 1. Endianness Solaris doesn't come with endian.h and the configure script isn't smart enough to figure out the endianness, so you have tell it what it is. So when building on the x86 version, you have to specify that it's a little endian platform. Similarly you'll have to specify that you're building on a big endian platform when using the sparc version. 2. AF_LOCAL >From what I understand, AF_LOCAL isn't defined on solaris. The equivalent >would be AF_UNIX. 3. sockets gcc for solaris doesn't automatically link with lib socket so you have to specify this manually as well. When you compile your thrift application, you'll have to specify the same gcc options as above. Any ideas if this will ever be fixed? ----- Original Message ---- From: Suhail Doshi <[EMAIL PROTECTED]> To: [email protected] Sent: Wednesday, October 29, 2008 3:59:25 AM Subject: Thrift on OpenSolaris I am having a problem install Thrift on OpenSolaris, might anyone be able to help with this error: Making install in compiler/cpp Regenerating version.h... No changes. make install-am test -z "/usr/local/bin" || /opt/local/bin/gmkdir -p "/usr/local/bin" /bin/sh ../../libtool --mode=install /opt/local/bin/ginstall -c 'thrift' '/usr/local/bin/thrift' /opt/local/bin/ginstall -c thrift /usr/local/bin/thrift Making install in lib Making install in cpp /bin/sh ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I/usr/local/include -I./src -Wall -g -O2 -MT Thrift.lo -MD -MP -MF .deps/Thrift.Tpo -c -o Thrift.lo `test -f 'src/Thrift.cpp' || echo './'`src/Thrift.cpp g++ -DHAVE_CONFIG_H -I. -I../.. -I/usr/local/include -I./src -Wall -g -O2 -MT Thrift.lo -MD -MP -MF .deps/Thrift.Tpo -c src/Thrift.cpp -fPIC -DPIC -o .libs/Thrift.o In file included from src/Thrift.cpp:10: ./src/protocol/TProtocol.h:34:4: #error "Cannot determine endianness" *** Error code 1 make: Fatal error: Command failed for target `Thrift.lo' Current working directory /home/gptkxeaa/thrift/lib/cpp *** Error code 1 The following command caused the error: failcom='exit 1'; \ for f in x $MAKEFLAGS; do \ case $f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo install-recursive | sed s/-recursive//`; \ list='cpp py erl rb'; for subdir in $list; do \ echo "Making $target in $subdir"; \ if test "$subdir" = "."; then \ dot_seen=yes; \ local_target="$target-am"; \ else \ local_target="$target"; \ fi; \ (cd $subdir && make $local_target) \ || eval $failcom; \ done; \ if test "$dot_seen" = "no"; then \ make "$target-am" || exit 1; \ fi; test -z "$fail" make: Fatal error: Command failed for target `install-recursive' Current working directory /home/gptkxeaa/thrift/lib *** Error code 1 The following command caused the error: failcom='exit 1'; \ for f in x $MAKEFLAGS; do \ case $f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo install-recursive | sed s/-recursive//`; \ list='compiler/cpp lib if test'; for subdir in $list; do \ echo "Making $target in $subdir"; \ if test "$subdir" = "."; then \ dot_seen=yes; \ local_target="$target-am"; \ else \ local_target="$target"; \ fi; \ (cd $subdir && make $local_target) \ || eval $failcom; \ done; \ if test "$dot_seen" = "no"; then \ make "$target-am" || exit 1; \ fi; test -z "$fail" make: Fatal error: Command failed for target `install-recursive' http://pastie.org/302981 __________________________________________________________________ Looking for the perfect gift? Give the gift of Flickr! http://www.flickr.com/gift/
