зеркало из https://github.com/github/ruby.git
Remove files to build libffi in mswin
These files were to build libffi from the bundled source, but are no
longer used since we stopped bundling the libffi sources in commit
e4f5296f06
.
The gemspec file is unchanged because fiddle gem itself still supports
ruby 2.5.
This commit is contained in:
Родитель
19ec803179
Коммит
92865d8760
|
@ -1,29 +0,0 @@
|
|||
#define HAVE_ALLOCA 1
|
||||
#define HAVE_MEMCPY 1
|
||||
#define HAVE_MEMORY_H 1
|
||||
#define HAVE_STDLIB_H 1
|
||||
#define HAVE_STRING_H 1
|
||||
#define HAVE_SYS_STAT_H 1
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
#if _MSC_VER >= 1600
|
||||
#define HAVE_INTTYPES_H 1
|
||||
#define HAVE_STDINT_H 1
|
||||
#endif
|
||||
|
||||
#define SIZEOF_DOUBLE 8
|
||||
#if defined(X86_WIN64)
|
||||
#define SIZEOF_SIZE_T 8
|
||||
#else
|
||||
#define SIZEOF_SIZE_T 4
|
||||
#endif
|
||||
|
||||
#define STACK_DIRECTION -1
|
||||
|
||||
#define STDC_HEADERS 1
|
||||
|
||||
#ifdef LIBFFI_ASM
|
||||
#define FFI_HIDDEN(name)
|
||||
#else
|
||||
#define FFI_HIDDEN
|
||||
#endif
|
||||
|
|
@ -1,191 +0,0 @@
|
|||
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-25 18:46:14.806761900 +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
|
||||
@@ -202,6 +204,7 @@
|
||||
on top of stack, so that those can be moved to registers by call-handler. */
|
||||
if (stack_args_count > 0)
|
||||
{
|
||||
+ int i;
|
||||
if (dir < 0 && stack_args_count > 1)
|
||||
{
|
||||
/* Reverse order if iterating arguments backwards */
|
||||
@@ -210,7 +213,6 @@
|
||||
*(ffi_arg*) p_stack_data[stack_args_count - 1] = tmp;
|
||||
}
|
||||
|
||||
- int i;
|
||||
for (i = 0; i < stack_args_count; i++)
|
||||
{
|
||||
if (p_stack_data[i] != argp2)
|
||||
@@ -569,11 +571,12 @@
|
||||
i < cif->nargs && passed_regs < max_stack_count;
|
||||
i++, p_arg++)
|
||||
{
|
||||
+ size_t sz;
|
||||
if ((*p_arg)->type == FFI_TYPE_FLOAT
|
||||
|| (*p_arg)->type == FFI_TYPE_STRUCT)
|
||||
continue;
|
||||
|
||||
- size_t sz = (*p_arg)->size;
|
||||
+ sz = (*p_arg)->size;
|
||||
if(sz == 0 || sz > FFI_SIZEOF_ARG)
|
||||
continue;
|
||||
|
||||
@@ -599,11 +602,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 +647,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) \
|
||||
@@ -855,11 +860,12 @@
|
||||
|
||||
for (i = 0; i < cif->nargs && passed_regs <= max_regs; i++)
|
||||
{
|
||||
+ size_t sz;
|
||||
if (cif->arg_types[i]->type == FFI_TYPE_FLOAT
|
||||
|| cif->arg_types[i]->type == FFI_TYPE_STRUCT)
|
||||
continue;
|
||||
|
||||
- size_t sz = cif->arg_types[i]->size;
|
||||
+ sz = cif->arg_types[i]->size;
|
||||
if (sz == 0 || sz > FFI_SIZEOF_ARG)
|
||||
continue;
|
||||
|
||||
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
|
||||
diff -ru libffi-3.2.1/include/ffi.h.in libffi-3.2.1/include/ffi.h.in
|
||||
--- libffi-3.2.1/include/ffi.h.in 2014-11-08 21:47:24.000000000 +0900
|
||||
+++ libffi-3.2.1/include/ffi.h.in 2015-01-11 12:35:30.000000000 +0900
|
||||
@@ -103,6 +103,11 @@
|
||||
# undef FFI_64_BIT_MAX
|
||||
# define FFI_64_BIT_MAX 9223372036854775807LL
|
||||
# endif
|
||||
+# ifdef _MSC_VER
|
||||
+# define FFI_LONG_LONG_MAX _I64_MAX
|
||||
+# undef FFI_64_BIT_MAX
|
||||
+# define FFI_64_BIT_MAX 9223372036854775807I64
|
||||
+# endif
|
||||
# endif
|
||||
#endif
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
#!/usr/bin/ruby
|
||||
# frozen_string_literal: true
|
||||
require 'fileutils'
|
||||
|
||||
basedir = File.dirname(__FILE__)
|
||||
conf = {}
|
||||
enable = {}
|
||||
until ARGV.empty?
|
||||
arg = ARGV.shift
|
||||
case arg
|
||||
when '-C'
|
||||
# ignore
|
||||
when /\A--srcdir=(.*)/
|
||||
conf['SRCDIR'] = srcdir = $1
|
||||
when /\A(CC|CFLAGS|CXX|CXXFLAGS|LD|LDFLAGS)=(.*)/
|
||||
conf[$1] = $2
|
||||
when /\A--host=(.*)/
|
||||
host = $1
|
||||
when /\A--enable-([^=]+)(?:=(.*))?/
|
||||
enable[$1] = $2 || true
|
||||
when /\A--disable-([^=]+)/
|
||||
enable[$1] = false
|
||||
end
|
||||
end
|
||||
|
||||
File.foreach("#{srcdir}/configure.ac") do |line|
|
||||
if /^AC_INIT\((.*)\)/ =~ line
|
||||
version = $1.split(/,\s*/)[1]
|
||||
version.gsub!(/\A\[|\]\z/, '')
|
||||
conf['VERSION'] = version
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
builddir = srcdir == "." ? (enable['builddir'] || ".") : "."
|
||||
conf['TARGET'] = /^x64/ =~ host ? "X86_WIN64" : "X86_WIN32"
|
||||
|
||||
FileUtils.mkdir_p([builddir, "#{builddir}/include", "#{builddir}/src/x86"])
|
||||
FileUtils.cp("#{basedir}/fficonfig.h", ".", preserve: true)
|
||||
|
||||
hdr = File.binread("#{srcdir}/include/ffi.h.in")
|
||||
hdr.gsub!(/@(\w+)@/) {conf[$1] || $&}
|
||||
hdr.gsub!(/^(#if\s+)@\w+@/, '\10')
|
||||
File.binwrite("#{builddir}/include/ffi.h", hdr)
|
||||
|
||||
mk = File.binread("#{basedir}/libffi.mk.tmpl")
|
||||
mk.gsub!(/@(\w+)@/) {conf[$1] || $&}
|
||||
File.binwrite("Makefile", mk)
|
|
@ -1,96 +0,0 @@
|
|||
# -*- makefile -*-
|
||||
# ====================================================================
|
||||
#
|
||||
# libffi Windows Makefile
|
||||
#
|
||||
#
|
||||
# ====================================================================
|
||||
#
|
||||
NAME = ffi
|
||||
TARGET = @TARGET@
|
||||
CC = cl
|
||||
!if "$(TARGET)" == "X86_WIN64"
|
||||
AS = ml64
|
||||
!else
|
||||
AS = ml
|
||||
!endif
|
||||
AR = link
|
||||
DLEXT = dll
|
||||
OBJEXT = obj
|
||||
LIBEXT = lib
|
||||
TOPDIR = @SRCDIR@
|
||||
CPP = $(CC) -EP
|
||||
CFLAGS = @CFLAGS@
|
||||
ARFLAGS = -lib
|
||||
ASFLAGS = -coff -W3 -Cx
|
||||
INCLUDES= -I. -I./include -I./src/x86 \
|
||||
-I$(TOPDIR)/include -I$(TOPDIR)/include/src/x86
|
||||
|
||||
SRCDIR = $(TOPDIR)/src
|
||||
WORKDIR = ./.libs
|
||||
BUILDDIR= ./src
|
||||
LIBNAME = lib$(NAME)
|
||||
STATICLIB= $(WORKDIR)/$(LIBNAME)_convenience.$(LIBEXT)
|
||||
|
||||
HEADERS = \
|
||||
./fficonfig.h
|
||||
FFI_HEADERS = \
|
||||
./include/ffi.h \
|
||||
./include/ffitarget.h
|
||||
|
||||
!if "$(TARGET)" == "X86_WIN32"
|
||||
OSSRC = win32
|
||||
!else if "$(TARGET)" == "X86_WIN64"
|
||||
OSSRC = win64
|
||||
!else
|
||||
! error unknown target: $(TARGET)
|
||||
!endif
|
||||
|
||||
OBJECTS = \
|
||||
$(BUILDDIR)/closures.$(OBJEXT) \
|
||||
$(BUILDDIR)/debug.$(OBJEXT) \
|
||||
$(BUILDDIR)/java_raw_api.$(OBJEXT) \
|
||||
$(BUILDDIR)/prep_cif.$(OBJEXT) \
|
||||
$(BUILDDIR)/raw_api.$(OBJEXT) \
|
||||
$(BUILDDIR)/types.$(OBJEXT) \
|
||||
$(BUILDDIR)/x86/ffi.$(OBJEXT) \
|
||||
$(BUILDDIR)/x86/$(OSSRC).$(OBJEXT)
|
||||
ASMSRCS = \
|
||||
$(BUILDDIR)/x86/$(OSSRC).asm
|
||||
|
||||
.SUFFIXES : .S .asm
|
||||
|
||||
all: $(WORKDIR) $(STATICLIB)
|
||||
|
||||
{$(SRCDIR)}.c{$(BUILDDIR)}.$(OBJEXT):
|
||||
$(CC) -c $(CFLAGS) $(INCLUDES) -Fo$(@:\=/) -Fd$(WORKDIR)/$(NAME)-src $(<:\=/)
|
||||
|
||||
{$(SRCDIR)/x86}.c{$(BUILDDIR)/x86}.$(OBJEXT):
|
||||
$(CC) -c $(CFLAGS) $(INCLUDES) -Fo$(@:\=/) -Fd$(WORKDIR)/$(NAME)-src $(<:\=/)
|
||||
|
||||
{$(SRCDIR)/x86}.S{$(BUILDDIR)/x86}.asm:
|
||||
$(CPP) $(CFLAGS) $(INCLUDES) $(<:\=/) >$(@:\=/)
|
||||
|
||||
{$(BUILDDIR)/x86}.asm{$(BUILDDIR)/x86}.$(OBJEXT):
|
||||
cd $(@D) && $(AS) -c $(ASFLAGS) -Fo $(@F) $(<F)
|
||||
|
||||
$(BUILDDIR)/x86/$(OSSRC).asm: $(SRCDIR)/x86/$(OSSRC).S
|
||||
|
||||
$(OBJECTS): $(FFI_HEADERS) $(HEADERS)
|
||||
|
||||
$(WORKDIR):
|
||||
-@if not exist "$(WORKDIR:/=\)\$(NULL)" mkdir $(WORKDIR:/=\)
|
||||
|
||||
$(STATICLIB): $(WORKDIR) $(OBJECTS)
|
||||
$(AR) $(ARFLAGS) -out:$(STATICLIB) @<<
|
||||
$(OBJECTS)
|
||||
<<
|
||||
|
||||
clean:
|
||||
-@del /Q $(OBJECTS:/=\) 2>NUL
|
||||
-@del /Q $(ASMSRCS:/=\) 2>NUL
|
||||
-@del /Q /S $(WORKDIR:/=\) 2>NUL
|
||||
|
||||
distclean: clean
|
||||
-@del /Q $(HEADERS:/=\) $(FFI_HEADERS:/=\) 2>NUL
|
||||
-@del /Q Makefile 2>NUL
|
Загрузка…
Ссылка в новой задаче