os/mac/mach: fix rpath deletion of fat machos

Fixes #15859.
This commit is contained in:
Carlo Cabrera 2023-08-14 14:29:05 +08:00
parent 2cfea600d4
commit 93b43ad7a9
No known key found for this signature in database
GPG Key ID: C74D447FC549A1D0

View File

@ -60,12 +60,12 @@ module MachOShim
# TODO: See if the `#write!` call can be delayed until
# we know we're not making any changes to the rpaths.
def delete_rpath(rpath, **options)
candidates = macho.command(:LC_RPATH).select do |r|
resolve_variable_name(r.path.to_s) == resolve_variable_name(rpath)
candidates = rpaths(resolve_variable_references: false).select do |r|
resolve_variable_name(r) == resolve_variable_name(rpath)
end
# Delete the last instance to avoid changing the order in which rpaths are searched.
rpath_to_delete = candidates.last.path.to_s
rpath_to_delete = candidates.last
options[:last] = true
macho.delete_rpath(rpath_to_delete, options)