-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
linkers: Fix AppleDynamicLinker not returning any RPATHs to remove #13365
linkers: Fix AppleDynamicLinker not returning any RPATHs to remove #13365
Conversation
Thank you, I'm rather disappointed that that PR apparently never got tested by the person who had macOS hardware and developed the code and was in a position to test it... |
745d428
to
4b0d4e5
Compare
I reflowed the commit message a bit for better readability in git log:
|
Thanks! |
Fixes regression from commit 78e9009. The above commit relied on rpath_dirs_to_remove being present and correctly filled, which was never the case for the AppleDynamicLinker. The result was that all the build-dir-only RPATHs were being carried over to the installed files. This commit implements returning the list of RPATHs to remove in AppleDynamicLinker, doing pretty much the same thing as what's in the GnuLikeDynamicLinkerMixin. Thanks to that, depfixer now correctly removes build-time Meson-created RPATHs, as it used to before 1.4.1.
4b0d4e5
to
55b49d0
Compare
Sorry about the force-push, had the wrong e-mail set in the commit. |
I'm sorry if I caused this. To the best of my knowledge and testing the patch worked. |
Fixes another regression from #13012 - before it, all RPATHs were removed on install, now none of them were :)
That PR relied on rpath_dirs_to_remove being present and correctly filled, which was never the case for the AppleDynamicLinker. The result was that all the build-dir-only RPATHs were being carried over to the installed files. For example, in a local GStreamer build, I was seeing paths like
@loader_path/../../../gstreamer/gst
present after installation, which were only valid in the builddir and should've been removed.I implemented returning the list of RPATHs to remove in AppleDynamicLinker, doing pretty much the same thing as what's in the GnuLikeDynamicLinkerMixin. Thanks to that, depfixer now correctly removes build-time Meson-created RPATHs, as it used to before 1.4.1.
I also added a unit test trying to prevent a similar scenario (on macOS only) in the future.