summaryrefslogtreecommitdiff
path: root/tool
diff options
context:
space:
mode:
Diffstat (limited to 'tool')
-rwxr-xr-xtool/leaked-globals13
1 files changed, 11 insertions, 2 deletions
diff --git a/tool/leaked-globals b/tool/leaked-globals
index 87089ebd81..ee75f78d1d 100755
--- a/tool/leaked-globals
+++ b/tool/leaked-globals
@@ -13,12 +13,15 @@ until ARGV.empty?
soext = $1
when /\A SYMBOLS_IN_EMPTYLIB=(.*)/x
SYMBOLS_IN_EMPTYLIB = $1.split(" ")
+ when /\A EXTSTATIC=(.+)?/x
+ EXTSTATIC = true
else
break
end
ARGV.shift
end
SYMBOLS_IN_EMPTYLIB ||= nil
+EXTSTATIC ||= false
config = ARGV.shift
count = 0
@@ -56,8 +59,14 @@ REPLACE.push("rust_eh_personality") if RUBY_PLATFORM.include?("darwin")
print "Checking leaked global symbols..."
STDOUT.flush
-soext = /\.#{soext}(?:$|\.)/ if soext
-so = soext =~ ARGV.first if ARGV.size == 1
+if soext
+ 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|
line.chomp!
next so = nil if line.empty?