summaryrefslogtreecommitdiff
path: root/tool/runruby.rb
diff options
context:
space:
mode:
authorYuta Saito <kateinoigakukun@gmail.com>2022-12-04 06:34:55 +0000
committerYuta Saito <kateinoigakukun@gmail.com>2022-12-05 17:24:17 +0900
commit48644e71096c70132be9dfdcbfb414ec2e68d18b (patch)
tree86511d2f3cdb0ae87697114ab006ec53f92f1d56 /tool/runruby.rb
parent3396b10ff191a8ac7c4d0dfa051930ce55c53fcf (diff)
downloadruby-48644e71096c70132be9dfdcbfb414ec2e68d18b.tar.gz
tool/runruby.rb: remove LD_PRELOAD-like env-var options from runruby.rb
LD_PRELOAD sometimes forces loading libraries into unrelated executables. For example, macOS on recent Apple Silicon can execute arm64 and arm64e binaries by default, and /usr/bin/clang is built as arm64e. If Ruby is built as arm64, and mkmf launched through runruby.rb spawns /usr/bin/clang, dynamic loader tries to load libruby (arm64e) into clang (arm64). This force-load causes library load failure. In theory, we don't need both LD_PRELOAD and LD_LIBRARY_PATH at the same time, because executables requiring libruby already have libruby dependency, so LD_LIBRARY_PATH is enough for this case.
Diffstat (limited to 'tool/runruby.rb')
-rwxr-xr-xtool/runruby.rb9
1 files changed, 0 insertions, 9 deletions
diff --git a/tool/runruby.rb b/tool/runruby.rb
index d9a4c855d3..1efe38fd13 100755
--- a/tool/runruby.rb
+++ b/tool/runruby.rb
@@ -133,15 +133,6 @@ if File.file?(libruby_so)
if e = config['LIBPATHENV'] and !e.empty?
env[e] = [abs_archdir, ENV[e]].compact.join(File::PATH_SEPARATOR)
end
- unless runner
- if e = config['PRELOADENV']
- e = nil if e.empty?
- e ||= "LD_PRELOAD" if /linux/ =~ RUBY_PLATFORM
- end
- if e
- env[e] = [libruby_so, ENV[e]].compact.join(File::PATH_SEPARATOR)
- end
- end
end
ENV.update env