jazzyb/libforchess — Issue #9: Cannot Build with --std=c89 on 32-bit Systems
Author: jazzyb
Created: 2011-11-29 01:51:30+00:00
State: open
Labels: Bug

"gcc --std=c89" does not allow the ULL syntax to declare an unsigned long long constant. This feature was added with the C99 standard. I got around this originally by converting the UINT64_C(x) macro to "((uint64_t)x)". However, I only tested this on my 64-bit Mac OS X where longs (the default constant type) are 64 bits. When "make check" was run on a 32-bit Ubuntu box, the source files utilizing UINT64_C() failed to build.

I suggest that either we remove the C89 flag requirement for compilation or we convert all UINT64_C(x) to ((uint64_t) << 32) | ((uint64_t)) or some equivalent.