distutils: pass -rpath on macOS when requested #2627
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary of changes
Resurrecting a patch to an old issue that is still relevant: distutils does not set the runtime search path when linking the shared object on macOS, passing a
-L
argument instead of an-rpath
argument, like on the other systems. The code in question states that OS X linker doesn't accept-rpath
, but that code was written 19 years ago, and that comment is no longer true (certainly not on macOS 11.2, but I do not know what is the newest system version for which-rpath
is not accepted, if any).The
runtime_library_dirs
configuration option is vital for extensions that need to build against libraries that temporarily exist in a location different from their final installation location (such as during the build of a package for a distro).Fix -R option of build_ext for OSX
Resolves this old bug against distutils that expired due to PIP 632:
https://bugs.python.org/issue36353
Applies patch originally submitted to CPython:
python/cpython#12418
Pull Request Checklist
changelog.d/
.(See documentation for details)