Not all MinGW build environments include a library which provides ffs(), and some versions of gcc create a function call instead of inline code.
When gcc is called with -ansi, it will always create a function call. This usually results in an unresolved symbol "ffs" at link time. The patch enforces inline code for this special case. Cc: Jacob Kroon <jacob.kr...@gmail.com> Signed-off-by: Stefan Weil <s...@weilnetz.de> --- Hi Jacob, please try the patch below. If it does not fix the linker problem, you can define ffs unconditionally. Regards Stefan include/sysemu/os-win32.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/sysemu/os-win32.h b/include/sysemu/os-win32.h index bf9edeb..a885162 100644 --- a/include/sysemu/os-win32.h +++ b/include/sysemu/os-win32.h @@ -66,6 +66,9 @@ /* Declaration of ffs() is missing in MinGW's strings.h. */ int ffs(int i); +#if defined(__STRICT_ANSI__) +# define ffs(i) __builtin_ffs(i) +#endif /* Missing POSIX functions. Don't use MinGW-w64 macros. */ #undef gmtime_r -- 1.7.10.4