This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author vstinner
Recipients cstratak, fweimer, koobs, vstinner
Date 2019-04-23.15:26:25
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1556033185.6.0.894512710342.issue36659@roundup.psfhosted.org>
In-reply-to
Content
To come back to RPATH vs RUNPATH: these 2 are very different in term of priorities in search (see other comments).

distutils uses an heuristic to opt-in for RUNPATH using GNU ld --enable-new-dtags option. This option is only used if the following 3 conditions are met:

(1) the OS is not macOS, not FreeBSD, nor HP-UX
(2) the C compiler is detected as GCC
(3) Python detected the linker as being GNU ld

Problem: the heuristic is not very reliable:

(3) only checks the linker when Python is build, it's implemented as: sysconfig.get_config_var("GNULD") == "yes". In practice, the linker can be changed at runtime using environment variables and so Python may miss the oportunity for opt-in for --enable-new-dtags, or pass this option which is unknown to another linker.

(2) The detection of GCC checks for "gcc" or "g++" string if the name of the compiler program name. If you use "cc", it's not detected as GCC.

I'm not sure that these 2 problems are real problems "in practice".

My main concern is that you might get RPATH or RUNPATH depending on operating system, the C compiler and the linker, whereas RPATH semantics is very different from RUNPATH semantics (search priority).
History
Date User Action Args
2019-04-23 15:26:25vstinnersetrecipients: + vstinner, koobs, fweimer, cstratak
2019-04-23 15:26:25vstinnersetmessageid: <1556033185.6.0.894512710342.issue36659@roundup.psfhosted.org>
2019-04-23 15:26:25vstinnerlinkissue36659 messages
2019-04-23 15:26:25vstinnercreate