Martin Spott wrote:
> Now as Andy promised I could have another try on big-endian machines I
> decided to actually have one.

Good luck, but unfortunately it seems not to be working for Erik.  I
have a pretty large test suite at this point running on sparc and ppc
without trouble, so I'm wondering if this is something Irix-specific?

> But something is hindering me that wasn't there before:

This is the relevant code from simgear/compiler.h.  Apparently it
thinks that Solaris machines lack a stdint.h header file.  This is
incorrect, at least on the Solaris 10 box I have access too.  The
workaround should be to just eliminate the "|| defined(sun)" bit.

  #if defined( _MSC_VER ) || defined(__MINGW32__) || defined(sun)
  typedef signed char      int8_t;
  typedef signed short     int16_t;
  typedef signed int       int32_t;
  typedef signed __int64   int64_t;
  typedef unsigned char    uint8_t;
  typedef unsigned short   uint16_t;
  typedef unsigned int     uint32_t;
  typedef unsigned __int64 uint64_t;
  #endif

Note that it also includes these definitions for mingw builds, which
is incorrect.  The mingw compiler is a gcc variant, which includes
stdint.h as part of the compiler suite; it is not a platform header.
As far as I can see, MSVC is the only compiler we use that lacks this.

Another nit is that the "#include <stdint.h>" line should probably go
in an #else clause here, for symmetry.  I don't know where it's being
included currently.

Finally, "__int64" is not a standard type (is it a windowsism?), and
apparently doesn't work on Sun.  The most portable way to get a 64 bit
value from a modern compiler is with "long long" and "unsigned long
long".  I don't know any modern systems on which this fails.

Andy

_______________________________________________
Flightgear-devel mailing list
[email protected]
http://mail.flightgear.org/mailman/listinfo/flightgear-devel
2f585eeea02e2c79d7b1d8c4963bae2d

Reply via email to