Project

General

Profile

Actions

Backport #3887

closed

extension socket fails to compile with "two or more data types in declaration specifiers" under MinGW

Added by luislavena (Luis Lavena) almost 12 years ago. Updated almost 10 years ago.

Status:
Closed
Priority:
Normal
[ruby-core:32625]

Description

=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 <windows.h>
2: #include <winsock.h>
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


Files

mkmf.log (25.9 KB) mkmf.log luislavena (Luis Lavena), 09/29/2010 09:01 PM
Makefile (4.38 KB) Makefile luislavena (Luis Lavena), 09/29/2010 09:01 PM
config.log.zip (19.2 KB) config.log.zip luislavena (Luis Lavena), 09/29/2010 09:01 PM

Related issues 1 (0 open1 closed)

Is duplicate of Ruby master - Bug #3382: cannot cross-compile socket.so for winsock2 (mingw32)Closedwyhaines (Kirk Haines)Actions
Actions

Also available in: Atom PDF