Issue #11065 has been updated by Usaku NAKAMURA.

Backport changed from 2.0.0: WONTFIX, 2.1: REQUIRED, 2.2: REQUIRED to 2.0.0: WONTFIX, 2.1: DONE, 2.2: REQUIRED

ruby_2_1 r50577 merged revision(s) 50305.

----------------------------------------
Bug #11065: Ruby 2.2.2 fails to build on Cygwin64:  static function, utoa, in ext/-test-/printf/printf.c has different signature in system stdlib.h.
https://bugs.ruby-lang.org/issues/11065#change-52537

* Author: Brett DiFrischia
* Status: Closed
* Priority: Normal
* Assignee: 
* ruby -v: 2.2.2
* Backport: 2.0.0: WONTFIX, 2.1: DONE, 2.2: REQUIRED
----------------------------------------
Hello,

While attempting to build Ruby 2.2.2 on Cygwin (x86_64), I got the following error:

~~~
make[2]: Entering directory '/home/bnd/ext/cc/build/cygwin64/ruby-2.2.2/ext/-test-/printf'
compiling printf.c
printf.c:23:1: error: conflicting types for 'utoa'
 utoa(char *p, char *e, unsigned int x)
 ^
In file included from /usr/include/stdio.h:29:0,
                 from ../../.././include/ruby/defines.h:26,
                 from ../../.././include/ruby/ruby.h:29,
                 from ../../.././include/ruby.h:33,
                 from printf.c:1:
/usr/include/stdlib.h:184:8: note: previous declaration of 'utoa' was here
 char * _EXFUN(utoa,(unsigned, char *, int));
        ^
Makefile:241: recipe for target 'printf.o' failed
make[2]: *** [printf.o] Error 1
make[2]: Leaving directory '/home/bnd/ext/cc/build/cygwin64/ruby-2.2.2/ext/-test-/printf'
exts.mk:118: recipe for target 'ext/-test-/printf/all' failed
make[1]: *** [ext/-test-/printf/all] Error 2
make[1]: Leaving directory '/home/bnd/ext/cc/build/cygwin64/ruby-2.2.2'
uncommon.mk:189: recipe for target 'build-ext' failed
make: *** [build-ext] Error 2
~~~

I was able to overcome this error by renaming the function to `utoa2`, though you may wish to use something more appropriate.

Thank you,
Brett



-- 
https://bugs.ruby-lang.org/