Skip checking for symbol leaks in libruby.so linking extensions
The libruby.so linking extension libraries contain symbols exported from extension libraries, and is not subject of test-leaked-globals.
This commit is contained in:
parent
6215b5ba98
commit
c68ce6f7f5
@ -643,7 +643,7 @@ un-runnable:
|
|||||||
$(ECHO) cannot make runnable, configure with --enable-load-relative.
|
$(ECHO) cannot make runnable, configure with --enable-load-relative.
|
||||||
$(Q) exit 1
|
$(Q) exit 1
|
||||||
|
|
||||||
LIBRUBY_FOR_LEAKED_GLOBALS = $(enable_shared:no=$(EXTSTATIC:static=))
|
LIBRUBY_FOR_LEAKED_GLOBALS = $(enable_shared:no=)
|
||||||
yes-test-basic: $(DOT_WAIT) test-leaked-globals
|
yes-test-basic: $(DOT_WAIT) test-leaked-globals
|
||||||
leaked-globals: test-leaked-globals
|
leaked-globals: test-leaked-globals
|
||||||
yes-test-leaked-globals-precheck: $(COMMONOBJS) prog $(tooldir)/leaked-globals
|
yes-test-leaked-globals-precheck: $(COMMONOBJS) prog $(tooldir)/leaked-globals
|
||||||
@ -653,6 +653,7 @@ yes-test-leaked-globals: yes-test-leaked-globals-precheck
|
|||||||
$(Q) $(XRUBY) $(tooldir)/leaked-globals \
|
$(Q) $(XRUBY) $(tooldir)/leaked-globals \
|
||||||
SOEXT=$(SOEXT) NM="$(NM) -Pgp" SYMBOL_PREFIX=$(SYMBOL_PREFIX) \
|
SOEXT=$(SOEXT) NM="$(NM) -Pgp" SYMBOL_PREFIX=$(SYMBOL_PREFIX) \
|
||||||
SYMBOLS_IN_EMPTYLIB="@XSYMBOLS_IN_EMPTYLIB@" \
|
SYMBOLS_IN_EMPTYLIB="@XSYMBOLS_IN_EMPTYLIB@" \
|
||||||
|
EXTSTATIC="$(EXTSTATIC)" \
|
||||||
PLATFORM=$(hdrdir)/ruby/$(PLATFORM_DIR).h $(srcdir)/configure.ac \
|
PLATFORM=$(hdrdir)/ruby/$(PLATFORM_DIR).h $(srcdir)/configure.ac \
|
||||||
$(COMMONOBJS) $(LIBRUBY_FOR_LEAKED_GLOBALS:yes=$(LIBRUBY_SO))
|
$(COMMONOBJS) $(LIBRUBY_FOR_LEAKED_GLOBALS:yes=$(LIBRUBY_SO))
|
||||||
$(ACTIONS_ENDGROUP)
|
$(ACTIONS_ENDGROUP)
|
||||||
|
@ -13,12 +13,15 @@ until ARGV.empty?
|
|||||||
soext = $1
|
soext = $1
|
||||||
when /\A SYMBOLS_IN_EMPTYLIB=(.*)/x
|
when /\A SYMBOLS_IN_EMPTYLIB=(.*)/x
|
||||||
SYMBOLS_IN_EMPTYLIB = $1.split(" ")
|
SYMBOLS_IN_EMPTYLIB = $1.split(" ")
|
||||||
|
when /\A EXTSTATIC=(.+)?/x
|
||||||
|
EXTSTATIC = true
|
||||||
else
|
else
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
ARGV.shift
|
ARGV.shift
|
||||||
end
|
end
|
||||||
SYMBOLS_IN_EMPTYLIB ||= nil
|
SYMBOLS_IN_EMPTYLIB ||= nil
|
||||||
|
EXTSTATIC ||= false
|
||||||
|
|
||||||
config = ARGV.shift
|
config = ARGV.shift
|
||||||
count = 0
|
count = 0
|
||||||
@ -56,8 +59,14 @@ REPLACE.push("rust_eh_personality") if RUBY_PLATFORM.include?("darwin")
|
|||||||
|
|
||||||
print "Checking leaked global symbols..."
|
print "Checking leaked global symbols..."
|
||||||
STDOUT.flush
|
STDOUT.flush
|
||||||
soext = /\.#{soext}(?:$|\.)/ if soext
|
if soext
|
||||||
so = soext =~ ARGV.first if ARGV.size == 1
|
soext = /\.#{soext}(?:$|\.)/
|
||||||
|
if EXTSTATIC
|
||||||
|
ARGV.delete_if {|n| soext =~ n}
|
||||||
|
elsif ARGV.size == 1
|
||||||
|
so = soext =~ ARGV.first
|
||||||
|
end
|
||||||
|
end
|
||||||
IO.foreach("|#{NM} #{ARGV.join(' ')}") do |line|
|
IO.foreach("|#{NM} #{ARGV.join(' ')}") do |line|
|
||||||
line.chomp!
|
line.chomp!
|
||||||
next so = nil if line.empty?
|
next so = nil if line.empty?
|
||||||
|
Loading…
x
Reference in New Issue
Block a user