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

From: local.tourist.kiev@...
Date: 2016-07-06 20:05:06 UTC
List: ruby-core #76279
Issue #12545 has been updated by Ivan Serdyuk.


Various versions of Microsoft compiler gave same 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.

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.

Please vote and switch it to a proper status.



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

* 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