On 12/27/05, Bradley Lucier lucier@math.purdue.edu wrote:
The problem seems to be in these lines in gambit.h:
#if CHAR_MAX == SCHAR_MAX #define ___SCHAR char #else #define ___SCHAR signed char #endif
I don't know why Marc thinks he needs these lines; I replaced them with
#define ___SCHAR signed char
Since defining ___SCHAR as "signed char" fixes things, that suggests that it was defined as "char" before. In turn that means that CHAR_MAX was not equal to SCHAR_MAX. While possible, that's a very odd setup. Can you create a file which contains the following:
#include <limit.h>
static const a = CHAR_MAX; static const b = SCHAR_MAX;
and run 'gcc -E <filename>.c'? The last two lines should give the values of CHAR_MAX and SCHAR_MAX for your system. Generally I would expect them both to be 127.
AGL
-- Adam Langley agl@imperialviolet.org http://www.imperialviolet.org 650-283-9641