[ruby-core:76283] [Ruby trunk Bug#12545] Ruby 2.3.1 compilation error [Windows]

From: duerst@...
Date: 2016-07-07 01:14:41 UTC
List: ruby-core #76283
Issue #12545 has been updated by Martin D端rst.


Ivan Serdyuk wrote:
> Various versions of Microsoft compiler gave same errors.

Can you say which ones, exactly? Were there Microsoft compilers that didn't give these errors?

> Might suggestion is that it is some sort of typdef related resolution issue.
> 
> My proposal is to split this win32.c file into different files, allow one of those to completely cover all definitions, and compiler would compile .a (or .lib ?) file. After that, another file would contain practical code, with pre-compiled header as a MUST. But that would require to modify Makefile generator.

A patch, or a series of patches, would be very helpful.

> I do not see any configuration against Windows version (WinAPI). API seam to got changed since versions. Besides performance improvements would be affected for Windows 7/8/10, so this raises more questions. My guess is to compare MSDN libraries, and to choose different implementation.

The cygwin and mingw versions seem to work independently of Windows versions, which suggests that it's not a Windows versions problem. But I'm not at all a Windows expert.

> Please vote and switch it to a proper status.

For Ruby, there's no voting (except with actual contributions such as patches). I'm keeping it in the 'feedback' state because a patch is also a kind of feedback.

----------------------------------------
Bug #12545: Ruby 2.3.1 compilation error [Windows]
https://bugs.ruby-lang.org/issues/12545#change-59527

* Author: Ivan Serdyuk
* Status: Feedback
* Priority: Normal
* Assignee: Nobuyoshi Nakada
* ruby -v: ruby 2.3.1 (2016-04-26 patchlevel 112) [i386-mswin32_80]
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
Greetings. Having problems with compilation:

Microsoft (R) Program Maintenance Utility Version 8.00.50727.42
Copyright (C) Microsoft Corporation.  All rights reserved.

        CC = cl -nologo
        LD = cl -nologo
        LDSHARED = cl -nologo -LD
        CFLAGS = -MD -Zi -W2 -wd4100 -wd4127 -wd4210 -wd4214 -wd4255 -wd4574  -w
d4668 -wd4710 -wd4711 -wd4820 -wd4996  -we4028 -we4142 -O2sy-  -Zm600
        XCFLAGS = -DRUBY_EXPORT -I. -I.ext/include/i386-mswin32_80 -I./include -
I. -I./missing
        CPPFLAGS =  -D_WIN32_WINNT=0x0600
        DLDFLAGS = -incremental:no -debug -opt:ref -opt:icf -dll
        SOLIBS =
compiling win32/win32.c
win32.c
win32/win32.c(3953) : error C2143: syntax error : missing ')' before '*'
win32/win32.c(3953) : error C2081: 'NET_LUID' : name in formal parameter list il
legal
win32/win32.c(3953) : error C2143: syntax error : missing '{' before '*'
win32/win32.c(3953) : error C2059: syntax error : ')'
win32/win32.c(3953) : error C2059: syntax error : ';'
win32/win32.c(3954) : error C2143: syntax error : missing ')' before '*'
win32/win32.c(3954) : error C2143: syntax error : missing '{' before '*'
win32/win32.c(3954) : error C2059: syntax error : ','
win32/win32.c(3954) : error C2059: syntax error : ')'
win32/win32.c(3955) : error C2061: syntax error : identifier 'pConvertInterfaceG
uidToLuid'
win32/win32.c(3955) : error C2059: syntax error : ';'
win32/win32.c(3955) : error C2513: '/*global*/ ' : no variable declared before '
='
win32/win32.c(3956) : error C2061: syntax error : identifier 'pConvertInterfaceL
uidToNameA'
win32/win32.c(3956) : error C2059: syntax error : ';'
win32/win32.c(3956) : error C2513: '/*global*/ ' : no variable declared before '
='
win32/win32.c(3979) : error C2065: 'pConvertInterfaceGuidToLuid' : undeclared id
entifier
win32/win32.c(3981) : error C2065: 'cigl_t' : undeclared identifier
win32/win32.c(3981) : error C2146: syntax error : missing ';' before identifier
'get_proc_address'
win32/win32.c(3983) : error C2065: 'pConvertInterfaceLuidToNameA' : undeclared i
dentifier
win32/win32.c(3985) : error C2065: 'cilnA_t' : undeclared identifier
win32/win32.c(3985) : error C2146: syntax error : missing ';' before identifier
'get_proc_address'
win32/win32.c(3992) : error C2065: 'NET_LUID' : undeclared identifier
win32/win32.c(3992) : error C2146: syntax error : missing ';' before identifier
'luid'
win32/win32.c(3992) : error C2065: 'luid' : undeclared identifier
win32/win32.c(4001) : error C2063: 'pConvertInterfaceGuidToLuid' : not a functio
n
win32/win32.c(4002) : error C2063: 'pConvertInterfaceLuidToNameA' : not a functi
on
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 8\VC\BIN\c
l.EXE"' : return code '0x2'
Stop.

Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for 80x86

---Files--------------------------------
win32.c (171 KB)


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

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next