mirror of
https://github.com/ruby/ruby.git
synced 2025-09-20 19:14:00 +02:00
merge revision(s) 38073,38251,38252: [Backport #7552]
* ext/fiddle/extconf.rb, ext/fiddle/function.c (Fiddle::Function::STDCALL): FFI_STDCALL is not a macro, but an enumeration. [ruby-core:50398] [Bug #7483] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@38505 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
449bf5f93d
commit
3912b7f29d
5 changed files with 40 additions and 4 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
Thu Dec 20 18:43:00 2012 Naohisa Goto <ngotogenome@gmail.com>
|
||||||
|
|
||||||
|
* ext/fiddle/extconf.rb, ext/fiddle/function.c
|
||||||
|
(Fiddle::Function::STDCALL): FFI_STDCALL is not a macro, but an
|
||||||
|
enumeration. [ruby-core:50398] [Bug #7483]
|
||||||
|
|
||||||
Thu Dec 20 18:40:25 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Thu Dec 20 18:40:25 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* thread.c (exec_event_hooks): exceptions in event hooks should not
|
* thread.c (exec_event_hooks): exceptions in event hooks should not
|
||||||
|
|
|
@ -284,7 +284,7 @@ Init_fiddle_closure()
|
||||||
/*
|
/*
|
||||||
* Document-method: new
|
* Document-method: new
|
||||||
*
|
*
|
||||||
* call-seq: new(ret, *args, abi = Fiddle::DEFAULT)
|
* call-seq: new(ret, args, abi = Fiddle::DEFAULT)
|
||||||
*
|
*
|
||||||
* Construct a new Closure object.
|
* Construct a new Closure object.
|
||||||
*
|
*
|
||||||
|
|
|
@ -19,6 +19,36 @@ end
|
||||||
|
|
||||||
have_header 'sys/mman.h'
|
have_header 'sys/mman.h'
|
||||||
|
|
||||||
|
if have_header "dlfcn.h"
|
||||||
|
have_library "dl"
|
||||||
|
|
||||||
|
%w{ dlopen dlclose dlsym }.each do |func|
|
||||||
|
abort "missing function #{func}" unless have_func(func)
|
||||||
|
end
|
||||||
|
|
||||||
|
have_func "dlerror"
|
||||||
|
elsif have_header "windows.h"
|
||||||
|
%w{ LoadLibrary FreeLibrary GetProcAddress }.each do |func|
|
||||||
|
abort "missing function #{func}" unless have_func(func)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
have_const('FFI_STDCALL', 'ffi.h') || have_const('FFI_STDCALL', 'ffi/ffi.h')
|
||||||
|
|
||||||
|
config = File.read(RbConfig.expand(File.join($arch_hdrdir, "ruby/config.h")))
|
||||||
|
types = {"SIZE_T"=>"SSIZE_T", "PTRDIFF_T"=>nil, "INTPTR_T"=>nil}
|
||||||
|
types.each do |type, signed|
|
||||||
|
if /^\#define\s+SIZEOF_#{type}\s+(SIZEOF_(.+)|\d+)/ =~ config
|
||||||
|
if size = $2 and size != 'VOIDP'
|
||||||
|
size = types.fetch(size) {size}
|
||||||
|
$defs << format("-DTYPE_%s=TYPE_%s", signed||type, size)
|
||||||
|
end
|
||||||
|
if signed
|
||||||
|
check_signedness(type.downcase, "stddef.h")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
create_makefile 'fiddle'
|
create_makefile 'fiddle'
|
||||||
|
|
||||||
# :startdoc:
|
# :startdoc:
|
||||||
|
|
|
@ -179,7 +179,7 @@ Init_fiddle_function(void)
|
||||||
*/
|
*/
|
||||||
rb_define_const(cFiddleFunction, "DEFAULT", INT2NUM(FFI_DEFAULT_ABI));
|
rb_define_const(cFiddleFunction, "DEFAULT", INT2NUM(FFI_DEFAULT_ABI));
|
||||||
|
|
||||||
#ifdef FFI_STDCALL
|
#ifdef HAVE_CONST_FFI_STDCALL
|
||||||
/*
|
/*
|
||||||
* Document-const: STDCALL
|
* Document-const: STDCALL
|
||||||
*
|
*
|
||||||
|
@ -203,7 +203,7 @@ Init_fiddle_function(void)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Document-method: new
|
* Document-method: new
|
||||||
* call-seq: new(ptr, *args, ret_type, abi = DEFAULT)
|
* call-seq: new(ptr, args, ret_type, abi = DEFAULT)
|
||||||
*
|
*
|
||||||
* Constructs a Function object.
|
* Constructs a Function object.
|
||||||
* * +ptr+ is a referenced function, of a DL::Handle
|
* * +ptr+ is a referenced function, of a DL::Handle
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#define RUBY_VERSION "1.9.3"
|
#define RUBY_VERSION "1.9.3"
|
||||||
#define RUBY_PATCHLEVEL 351
|
#define RUBY_PATCHLEVEL 352
|
||||||
|
|
||||||
#define RUBY_RELEASE_DATE "2012-12-20"
|
#define RUBY_RELEASE_DATE "2012-12-20"
|
||||||
#define RUBY_RELEASE_YEAR 2012
|
#define RUBY_RELEASE_YEAR 2012
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue