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
