1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Now all extension libraries must consider the ABI header

This commit is contained in:
Nobuyoshi Nakada 2022-03-24 08:59:24 +09:00
parent cccfd65350
commit 1357b14750
No known key found for this signature in database
GPG key ID: 7CD2805BFA3770C6

View file

@ -29,7 +29,9 @@ def compile_extension(name)
ext = "#{name}_spec"
lib = "#{object_path}/#{ext}.#{RbConfig::CONFIG['DLEXT']}"
ruby_header = "#{RbConfig::CONFIG['rubyhdrdir']}/ruby.h"
rubyhdrdir = RbConfig::CONFIG['rubyhdrdir']
ruby_header = "#{rubyhdrdir}/ruby.h"
abi_header = "#{rubyhdrdir}/ruby/internal/abi.h"
if RbConfig::CONFIG["ENABLE_SHARED"] == "yes"
libdirname = RbConfig::CONFIG['libdirname'] # defined since 2.1
@ -45,6 +47,7 @@ def compile_extension(name)
when mtime <= File.mtime("#{core_ext_dir}/rubyspec.h")
when mtime <= File.mtime("#{spec_ext_dir}/#{ext}.c")
when mtime <= File.mtime(ruby_header)
when (mtime <= File.mtime(abi_header) rescue nil)
when libruby && mtime <= File.mtime(libruby)
else
return lib # up-to-date