[前][次][番号順一覧][スレッド一覧]

ruby-changes:36855

From: nobu <ko1@a...>
Date: Tue, 23 Dec 2014 22:39:22 +0900 (JST)
Subject: [ruby-changes:36855] nobu:r48936 (trunk): fiddle: extlibs

nobu	2014-12-23 22:39:13 +0900 (Tue, 23 Dec 2014)

  New Revision: 48936

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=48936

  Log:
    fiddle: extlibs
    
    * ext/fiddle/extlibs: libffi-3.2.1 and patch for mswin.

  Added files:
    trunk/ext/fiddle/extlibs
    trunk/ext/fiddle/win32/libffi-3.2.1-mswin.patch
  Modified directories:
    trunk/ext/fiddle/
  Modified files:
    trunk/.gitignore
    trunk/ChangeLog
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 48935)
+++ ChangeLog	(revision 48936)
@@ -1,3 +1,7 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1
+Tue Dec 23 22:39:11 2014  Nobuyoshi Nakada  <nobu@r...>
+
+	* ext/fiddle/extlibs: libffi-3.2.1 and patch for mswin.
+
 Tue Dec 23 22:04:38 2014  NARUSE, Yui  <naruse@r...>
 
 	* lib/uri/generic.rb (URI::Generic#query=): don't escape [\]^
Index: ext/fiddle/win32/libffi-3.2.1-mswin.patch
===================================================================
--- ext/fiddle/win32/libffi-3.2.1-mswin.patch	(revision 0)
+++ ext/fiddle/win32/libffi-3.2.1-mswin.patch	(revision 48936)
@@ -0,0 +1,132 @@ https://github.com/ruby/ruby/blob/trunk/ext/fiddle/win32/libffi-3.2.1-mswin.patch#L1
+diff -ru libffi-3.2.1/src/x86/ffi.c libffi-3.2.1/src/x86/ffi.c
+--- libffi-3.2.1/src/x86/ffi.c	2014-11-08 21:47:24.000000000 +0900
++++ libffi-3.2.1/src/x86/ffi.c	2014-12-22 16:00:42.000000000 +0900
+@@ -99,11 +99,13 @@
+        i != 0;
+        i--, p_arg += dir, p_argv += dir)
+     {
++      size_t z;
++
+       /* Align if necessary */
+       if ((sizeof(void*) - 1) & (size_t) argp)
+         argp = (char *) ALIGN(argp, sizeof(void*));
+ 
+-      size_t z = (*p_arg)->size;
++      z = (*p_arg)->size;
+ 
+ #ifdef X86_WIN64
+       if (z > FFI_SIZEOF_ARG
+@@ -599,11 +601,13 @@
+        i != 0;
+        i--, p_arg += dir, p_argv += dir)
+     {
++      size_t z;
++
+       /* Align if necessary */
+       if ((sizeof(void*) - 1) & (size_t) argp)
+         argp = (char *) ALIGN(argp, sizeof(void*));
+ 
+-      size_t z = (*p_arg)->size;
++      z = (*p_arg)->size;
+ 
+ #ifdef X86_WIN64
+       if (z > FFI_SIZEOF_ARG
+@@ -642,7 +646,7 @@
+ #endif
+     }
+ 
+-  return (size_t)argp - (size_t)stack;
++  return (int)((size_t)argp - (size_t)stack);
+ }
+ 
+ #define FFI_INIT_TRAMPOLINE_WIN64(TRAMP,FUN,CTX,MASK) \
+diff -ru libffi-3.2.1/src/x86/ffitarget.h libffi-3.2.1/src/x86/ffitarget.h
+--- libffi-3.2.1/src/x86/ffitarget.h	2014-11-08 21:47:24.000000000 +0900
++++ libffi-3.2.1/src/x86/ffitarget.h	2014-12-22 15:45:54.000000000 +0900
+@@ -50,7 +50,9 @@
+ #endif
+ 
+ #define FFI_TARGET_SPECIFIC_STACK_SPACE_ALLOCATION
++#ifndef _MSC_VER
+ #define FFI_TARGET_HAS_COMPLEX_TYPE
++#endif
+ 
+ /* ---- Generic type definitions ----------------------------------------- */
+ 
+diff -ru libffi-3.2.1/src/x86/win64.S libffi-3.2.1/src/x86/win64.S
+--- libffi-3.2.1/src/x86/win64.S	2014-11-08 21:47:24.000000000 +0900
++++ libffi-3.2.1/src/x86/win64.S	2014-12-22 16:14:40.000000000 +0900
+@@ -127,7 +127,7 @@
+ 
+ 	mov	rcx, QWORD PTR RVALUE[rbp]
+ 	mov	DWORD PTR [rcx], eax
+-	jmp	ret_void$
++	jmp	SHORT ret_void$
+ 
+ ret_struct2b$:
+  	cmp	DWORD PTR CIF_FLAGS[rbp], FFI_TYPE_SMALL_STRUCT_2B
+@@ -135,7 +135,7 @@
+ 
+ 	mov	rcx, QWORD PTR RVALUE[rbp]
+ 	mov	WORD PTR [rcx], ax
+-	jmp	ret_void$
++	jmp	SHORT ret_void$
+ 
+ ret_struct1b$:
+  	cmp	DWORD PTR CIF_FLAGS[rbp], FFI_TYPE_SMALL_STRUCT_1B
+@@ -143,7 +143,7 @@
+ 
+ 	mov	rcx, QWORD PTR RVALUE[rbp]
+ 	mov	BYTE PTR [rcx], al
+-	jmp	ret_void$
++	jmp	SHORT ret_void$
+ 
+ ret_uint8$:
+  	cmp	DWORD PTR CIF_FLAGS[rbp], FFI_TYPE_UINT8
+@@ -152,7 +152,7 @@
+ 	mov	rcx, QWORD PTR RVALUE[rbp]
+ 	movzx   rax, al
+ 	mov	QWORD PTR [rcx], rax
+-	jmp	ret_void$
++	jmp	SHORT ret_void$
+ 
+ ret_sint8$:
+  	cmp	DWORD PTR CIF_FLAGS[rbp], FFI_TYPE_SINT8
+@@ -161,7 +161,7 @@
+ 	mov	rcx, QWORD PTR RVALUE[rbp]
+ 	movsx   rax, al
+ 	mov	QWORD PTR [rcx], rax
+-	jmp	ret_void$
++	jmp	SHORT ret_void$
+ 
+ ret_uint16$:
+  	cmp	DWORD PTR CIF_FLAGS[rbp], FFI_TYPE_UINT16
+@@ -188,7 +188,13 @@
+ 	mov	rcx, QWORD PTR RVALUE[rbp]
+ 	mov     eax, eax
+ 	mov	QWORD PTR [rcx], rax
+-	jmp	SHORT ret_void$
++
++ret_void$:
++	xor	rax, rax
++
++	lea	rsp, QWORD PTR [rbp+16]
++	pop	rbp
++	ret	0
+ 
+ ret_sint32$:
+  	cmp	DWORD PTR CIF_FLAGS[rbp], FFI_TYPE_SINT32
+@@ -247,13 +253,6 @@
+ 	cdqe
+ 	mov	QWORD PTR [rcx], rax
+  	jmp	SHORT ret_void$
+-
+-ret_void$:
+-	xor	rax, rax
+-
+-	lea	rsp, QWORD PTR [rbp+16]
+-	pop	rbp
+-	ret	0
+ ffi_call_win64 ENDP
+ _TEXT	ENDS
+ END

Property changes on: ext/fiddle/win32/libffi-3.2.1-mswin.patch
___________________________________________________________________
Added: svn:eol-style
   + LF

Index: ext/fiddle/extlibs
===================================================================
--- ext/fiddle/extlibs	(revision 0)
+++ ext/fiddle/extlibs	(revision 48936)
@@ -0,0 +1,2 @@ https://github.com/ruby/ruby/blob/trunk/ext/fiddle/extlibs#L1
+ftp://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz md5:83b89587607e3eb65c70d361f13bab43
+	win32/libffi-3.2.1-mswin.patch -p0

Property changes on: ext/fiddle/extlibs
___________________________________________________________________
Added: svn:eol-style
   + LF


Property changes on: ext/fiddle
___________________________________________________________________
Modified: svn:ignore
   - *.def
Makefile
extconf.h
mkmf.log

   + *.def
Makefile
extconf.h
mkmf.log
libffi-*


Index: .gitignore
===================================================================
--- .gitignore	(revision 48935)
+++ .gitignore	(revision 48936)
@@ -120,6 +120,9 @@ y.tab.c https://github.com/ruby/ruby/blob/trunk/.gitignore#L120
 # /ext/etc/
 /ext/etc/constdefs.h
 
+# /ext/fiddle/
+/ext/fiddle/libffi-*
+
 # /ext/rbconfig/
 /ext/rbconfig/sizeof/sizes.c
 

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]