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) about 12 years ago. Updated over 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 #1

Updated by shyouhei (Shyouhei Urabe) about 12 years ago

  • Status changed from Open to Assigned
  • Assignee set to wyhaines (Kirk Haines)

=begin
duplicates #3382.
=end

Updated by luislavena (Luis Lavena) over 10 years ago

  • Description updated (diff)
  • 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.

Actions

Also available in: Atom PDF

Like0
Like0Like0