From: "luislavena (Luis Lavena)" Date: 2012-07-22T09:38:06+09:00 Subject: [ruby-core:46606] [Backport86 - Backport #3887][Closed] extension socket fails to compile with "two or more data types in declaration specifiers" under MinGW Issue #3887 has been updated by luislavena (Luis Lavena). Description updated Status changed from Assigned to Closed Closing this out for two reasons: duplicate of #3382 and 1.8.6 has been dead long time ago. ---------------------------------------- Backport #3887: extension socket fails to compile with "two or more data types in declaration specifiers" under MinGW https://bugs.ruby-lang.org/issues/3887#change-28270 Author: luislavena (Luis Lavena) Status: Closed Priority: Normal Assignee: wyhaines (Kirk Haines) Category: Target version: =begin Hello, This seems to be the same issue as the closed report #1292 make[1]: Entering directory `/c/Users/Luis/Projects/oss/oci/rubyinstaller/sandbox/ruby18_build/ext/socket' gcc -I. -I../.. -I../../../../../../ruby -I../../../../../../ruby/ext/socket -DHAVE_SOCKADDR_STORAGE -DHAVE_INET_NTOA -DHAVE_GETSERVBYPORT -Dsocklen_t=int -DHAVE_WSACLEANUP -DHAVE_GETHOSTNAME -I. -g -O2 -DFD_SETSIZE=256 -c ../../../../../../ruby/ext/socket/socket.c In file included from ../../../../../../ruby/win32/win32.h:30:0, from ../../../../../../ruby/defines.h:183, from ../../../../../../ruby/ruby.h:37, from ../../../../../../ruby/ext/socket/socket.c:13: c:\users\luis\projects\oss\oci\rubyinstaller\sandbox\devkit\mingw\bin\../lib/gcc/mingw32/4.5.1/../../../../include/ws2tcpip.h:272:13: error: two or more data types in declaration specifiers make[1]: *** [socket.o] Error 1 make[1]: Leaving directory `/c/Users/Luis/Projects/oss/oci/rubyinstaller/sandbox/ruby18_build/ext/socket' make: *** [all] Error 1 This is ruby_1_8_6 r29162 with #3883 patch applied. Ruby configuration options were: sh ../configure --enable-shared --with-winsock2 --disable-install-doc CFLAGS='-g -O2 -DFD_SETSIZE=256' mkmf check for socklen_t: -------------------- have_type: checking for socklen_t... -------------------- no "gcc -I../.. -I../../../../../../ruby -I../../../../../../ruby/ext/socket -I. -g -O2 -DFD_SETSIZE=256 -c conftest.c" conftest.c:5:19: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'conftest_type' conftest.c:6:22: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'conftestval' checked program was: /* begin */ 1: #include 2: #include 3: 4: /*top*/ 5: typedef socklen_t conftest_type; 6: static conftest_type conftestval[sizeof(conftest_type)?1:-1]; /* end */ -------------------- Checking rbconfig.rb COMMON_HEADERS: CONFIG["COMMON_HEADERS"] = "windows.h winsock.h" Which could indicate even --with-winsock2 has been defined, winsock.h is been forced. Find attached the full file and generated Makefile, also config.log generated by the configure process. GCC been used: gcc (tdm-1) 4.5.1 Package provided by tdragon: http://tdm-gcc.tdragon.net/ =end -- http://bugs.ruby-lang.org/