diff options
author | Nobuyoshi Nakada <[email protected]> | 2024-01-15 10:20:16 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <[email protected]> | 2024-01-17 19:37:56 +0900 |
commit | c68ce6f7f5e6020409cfe689ba5946f284828d4b (patch) | |
tree | a9fefa40e62398b1961d356e52c3407e3f6ef89a /tool/leaked-globals | |
parent | 6215b5ba9811ae1a1e631f01a88fd5b32043effa (diff) |
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.
Diffstat (limited to 'tool/leaked-globals')
-rwxr-xr-x | tool/leaked-globals | 13 |
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? |