AIX endian problems

Tom Coleman tcoleman at autowares.com
Mon Jul 10 11:54:28 EDT 2000


I've compiled the tds library on AIX 4.3.2.  This is big endian hardware.

Autoconf defines both HW_BIG_ENDIAN and WORDS_BIGENDIAN.

While the tds unittests all report success, the "sample" tdstest.c
program fails.  The dumps all include the following message:

  The token datastream length was not correct.  This is an internal
  protocol error.

The only way I've been able to get the test programs to work correctly
on AIX is to #undef HW_BIG_ENDIAN and #define HW_LITTLE_ENDIAN in 
src/tds/login.c.

This forces the same byte ordering I test with using a Linux reference
system.  

I then have to swap 2 and 4-byte integer bytes (#ifdef WORDS_BIGENDIAN)
using standard byte-swapping macros. 

I've read through the mailing list.  I see endian problems reported but
haven't seen what looks like any definite solutions.

I'd appreciate any light that anyone might be able to shed on this 
subject.

Thanks,

Tom





More information about the FreeTDS mailing list