Project

General

Profile

Actions

Bug #11065

closed

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.

Added by orderthruchaos (Brett DiFrischia) over 9 years ago. Updated over 9 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:<unknown>]

Description

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

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0