compiler_gcc.h defined _rotl/_rotr/_rotl64/_rotr64 as macros before mingw's <stdlib.h> got a chance to declare them as functions. Any translation unit that did `#include "lib_common.h"` (which transitively pulls in compiler_gcc.h) and later included <stdlib.h> — utils.c does exactly this — would have the mingw function declarations textually substituted by the macros, producing a syntax error. Force <stdlib.h> in from compiler_gcc.h on mingw so the function declarations are parsed before the macro names get shadowed. The later #include in utils.c becomes a no-op via the header guard, and call sites still resolve to the macros below (so the generated code is unchanged on every other compiler/target). This unblocks the Crafter.Build CI's x86_64-w64-mingw32 cross-compile, which has been failing for a while when building Crafter.Asset → gdeflate → libdeflate as a dep. |
||
|---|---|---|
| .. | ||
| common | ||
| lib | ||
| COPYING | ||
| libdeflate.h | ||