Repository navigation
setup.py only adds /prefix/lib, not /prefix/lib64 #58996
Description
Activity
setup.py adds <prefix>/lib to the list of directories where libraries are looked for, but not <prefix>/lib64. Patch attached.
- addedbuildThe build process and cross-buildThe build process and cross-buildtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
on May 12, 2012 It would be better to fix issue bpo-1294959 and use os.path.join(sys.prefix, sys.libdir).
IIRC some mips architectures need "/usr/lib32", while x32 architecture needs "/usr/libx32".using sys.maxsize isn't safe for cross builds. it should at least guarded by 'if not cross_compiling'.
I still think that the preferred way to get the library dirs is to ask the compiler (patch attached), however this will add "incompatible" library dirs as well, at least for multilib'd gcc builds, and leading to linker warnings when building the extensions. At least when using gcc this should address the issue finding the lib32 and libx32 dirs.
Also OS X universal builds have many of the characteristics of a cross-build. In particular, one executable (like the python interpreter) can contain both 32-bit and 64-bit architecture files. So tests for 32-bit vs 64-bit at build time using the running compiler's arch are problematic. Another issue is the support for building with an OS X SDK. Basically, all /usr include and lib file paths used for searching in setup.py need to be prefixed by the SDK path if configured. There are some holes in this right now. I plan to fix them soon; it would better to have this issue resolved and applied first.
Was this resolved by the fix for https://bugs.python.org/issue32059?
No.
setup.py still contains several hardcoded paths with "lib" (e.g. "/usr/local/lib", "/usr/lib/termcap").There are also some places in setup.py which check both "lib64" and "lib", but such checks can possibly return incorrect results on multilib systems (when a library happens to be available for another ABI (32-bit vs 64-bit) but not ABI for which Python is being built).
- added3.8 (EOL)end of lifeend of life3.9 (EOL)end of lifeend of life3.10 (EOL)end of lifeend of life
on Nov 7, 2020 setup.pyno longer used to build CPython since 3.12 (see #94474).Reacted by Erlend E. Aasland- addedpendingThe issue will be closed if no feedback is providedThe issue will be closed if no feedback is provided
on Dec 27, 2023
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: