michael@0: diff --git a/gfx/cairo/cairo/src/cairo-compiler-private.h b/gfx/cairo/cairo/src/cairo-compiler-private.h michael@0: index ffac9ce..9a05831 100644 michael@0: --- a/gfx/cairo/cairo/src/cairo-compiler-private.h michael@0: +++ b/gfx/cairo/cairo/src/cairo-compiler-private.h michael@0: @@ -229,16 +229,20 @@ ffs (int x) michael@0: michael@0: if (_BitScanForward(&i, x) != 0) michael@0: return i + 1; michael@0: michael@0: return 0; michael@0: } michael@0: #endif michael@0: michael@0: +#elif defined(__WIN32__) && defined(__GNUC__) michael@0: + michael@0: +#define ffs(x) __builtin_ffs(x) michael@0: + michael@0: #endif michael@0: michael@0: #if defined(_MSC_VER) && defined(_M_IX86) michael@0: /* When compiling with /Gy and /OPT:ICF identical functions will be folded in together. michael@0: The CAIRO_ENSURE_UNIQUE macro ensures that a function is always unique and michael@0: will never be folded into another one. Something like this might eventually michael@0: be needed for GCC but it seems fine for now. */ michael@0: #define CAIRO_ENSURE_UNIQUE \