[ruby-trunk - Bug #10648] [Open] libffi can't build on mswin32


#1

Issue #10648 has been reported by Koichi Sasada.


Bug #10648: libffi can’t build on mswin32
https://bugs.ruby-lang.org/issues/10648

  • Author: Koichi Sasada
  • Status: Open
  • Priority: Normal
  • Assignee:
  • Category: ext
  • Target version: current: 2.2.0
  • ruby -v: ruby 2.2.0p0 (2014-12-25 revision 49005) [i386-mswin32_110]
  • Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN

mswin32 で libffiをビルドしようとして失敗してビルドが止まります。

$ nmake
...
types.c
        cl -c -MD -Zi -W2 -wd4996 -we4028 -we4142 -O2sy-  -Zm600 -I. 
-I./include
 -I./src/x86  -I../../../../ext/fiddle/libffi-3.2.1/include 
-I../../../../ext/fi
ddle/libffi-3.2.1/include/src/x86 -Fo./src/x86/ffi.obj 
-Fd./.libs/ffi-src ../../
../../ext/fiddle/libffi-3.2.1/src/x86/ffi.c
Microsoft(R) C/C++ Optimizing Compiler Version 17.00.61030 for x86
Copyright (C) Microsoft Corporation.  All rights reserved.

ffi.c
../../../../ext/fiddle/libffi-3.2.1/src/x86/ffi.c(215) : error C2143: 
構文エラー
 : ';' が '型' の前にありません。
../../../../ext/fiddle/libffi-3.2.1/src/x86/ffi.c(578) : error C2143: 
構文エラー
 : ';' が '型' の前にありません。
../../../../ext/fiddle/libffi-3.2.1/src/x86/ffi.c(579) : error C2065: 
'sz' : 定
義されていない識別子です。
../../../../ext/fiddle/libffi-3.2.1/src/x86/ffi.c(724) : error C2061: 
構文エラー
 : 識別子 'ffi_prep_closure_loc'
../../../../ext/fiddle/libffi-3.2.1/src/x86/ffi.c(724) : error C2059: 
構文エラー
 : ';'
../../../../ext/fiddle/libffi-3.2.1/src/x86/ffi.c(724) : error C2059: 
構文エラー
 : '型'
../../../../ext/fiddle/libffi-3.2.1/src/x86/ffi.c(866) : error C2143: 
構文エラー
 : ';' が '型' の前にありません。
../../../../ext/fiddle/libffi-3.2.1/src/x86/ffi.c(867) : error C2065: 
'sz' : 定
義されていない識別子です。
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual 
Studio 11.0
\VC\BIN\cl.EXE"' : リターン コード '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : リターン コード '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : リターン コード '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual 
Studio 11.0
\VC\BIN\nmake.EXE"' : リターン コード '0x2'
Stop.