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/

Reply via email to