-
-
Notifications
You must be signed in to change notification settings - Fork 32.2k
Compiler build paths and related environment variables are ignored for native builds #82730
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
Comments
In e.g. Linux users can set CPATH and LIBRARY_PATH to a list of paths considered by e.g. GCC, Clang, ... as if they were passed to These paths show up in the verbose compiler output too. However in native builds (not cross-compiling) these variables/directories are ignored which leads to failure of e.g. building the BZip2 extension (among others). Use case: On HPC modules are used, which means e.g. BZip2 is not installed into a system directory but into some other folder and CPATH, LIBRARY_PATH, LD_LIBRARY_PATH, ... are modified so it can be found by compiler and runtime. However the Python build script does not find it as it ignores those "compiler paths". This did work ages ago, but was broken when it was decided that compiler paths (output of I propose to rename the function back to its original name and use it always. |
Can you please elaborate? setup.py of Python 2.7: if cross_compiling:
self.add_gcc_paths() setup.py of Python 3.5: # only change this for cross builds for 3.3, issues on Mageia
if cross_compiling:
self.add_gcc_paths() In the 2.7, this code was changed in 2013 to fix bpo-17990: "For bpo-17086, 8ee6d96a1019 backported some cross-build patches to the 2.7 branch. The changes to setup.py detect_modules differ in the backport from those in default. In particular, in default, changes to the library and include directory lists used to build extensions modules are only made conditionally when cross-compiling. But the 2.7 backport makes these changes unconditionally." commit 6166709
|
Python does not explicitly ignore these environment variable, so I'm not sure how setup.py prevent that. For example, the _bz2 module is built by setup.py by default in the master branch of Python. |
Simply because |
Previously reported in #65770. |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: