Skip to content
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

setup.py only adds /prefix/lib, not /prefix/lib64 #58996

Closed
pitrou opened this issue May 12, 2012 · 7 comments
Closed

setup.py only adds /prefix/lib, not /prefix/lib64 #58996

pitrou opened this issue May 12, 2012 · 7 comments
Labels
3.8 (EOL) end of life 3.9 only security fixes 3.10 only security fixes build The build process and cross-build pending The issue will be closed if no feedback is provided type-bug An unexpected behavior, bug, or error

Comments

@pitrou
Copy link
Member

pitrou commented May 12, 2012

BPO 14791
Nosy @doko42, @jcea, @pitrou, @ned-deily, @davidmalcolm, @iritkatriel
Files
  • setup_lib64.patch
  • setup.diff
  • 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:

    assignee = None
    closed_at = None
    created_at = <Date 2012-05-12.16:40:42.512>
    labels = ['3.10', 'type-bug', '3.8', '3.9', 'build']
    title = 'setup.py only adds /prefix/lib, not /prefix/lib64'
    updated_at = <Date 2020-11-07.10:02:02.370>
    user = 'https://github.com/pitrou'

    bugs.python.org fields:

    activity = <Date 2020-11-07.10:02:02.370>
    actor = 'iritkatriel'
    assignee = 'none'
    closed = False
    closed_date = None
    closer = None
    components = ['Build']
    creation = <Date 2012-05-12.16:40:42.512>
    creator = 'pitrou'
    dependencies = []
    files = ['25551', '26313']
    hgrepos = []
    issue_num = 14791
    keywords = ['patch']
    message_count = 6.0
    messages = ['160478', '160483', '164956', '164965', '380458', '380492']
    nosy_count = 7.0
    nosy_names = ['doko', 'jcea', 'pitrou', 'ned.deily', 'Arfrever', 'dmalcolm', 'iritkatriel']
    pr_nums = []
    priority = 'low'
    resolution = None
    stage = 'patch review'
    status = 'open'
    superseder = None
    type = 'behavior'
    url = 'https://bugs.python.org/issue14791'
    versions = ['Python 3.8', 'Python 3.9', 'Python 3.10']

    @pitrou
    Copy link
    Member Author

    pitrou commented May 12, 2012

    setup.py adds <prefix>/lib to the list of directories where libraries are looked for, but not <prefix>/lib64. Patch attached.

    @pitrou pitrou added build The build process and cross-build type-bug An unexpected behavior, bug, or error labels May 12, 2012
    @Arfrever
    Copy link
    Mannequin

    Arfrever mannequin commented 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".

    @doko42
    Copy link
    Member

    doko42 commented Jul 8, 2012

    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.

    @ned-deily
    Copy link
    Member

    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.

    @iritkatriel
    Copy link
    Member

    Was this resolved by the fix for https://bugs.python.org/issue32059?

    @Arfrever
    Copy link
    Mannequin

    Arfrever mannequin commented Nov 7, 2020

    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).

    @iritkatriel iritkatriel added 3.8 (EOL) end of life 3.9 only security fixes 3.10 only security fixes labels Nov 7, 2020
    @ezio-melotti ezio-melotti transferred this issue from another repository Apr 10, 2022
    @serhiy-storchaka
    Copy link
    Member

    setup.py no longer used to build CPython since 3.12 (see #94474).

    @erlend-aasland erlend-aasland added the pending The issue will be closed if no feedback is provided label Dec 27, 2023
    @hugovk hugovk closed this as not planned Won't fix, can't repro, duplicate, stale Mar 18, 2024
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    3.8 (EOL) end of life 3.9 only security fixes 3.10 only security fixes build The build process and cross-build pending The issue will be closed if no feedback is provided type-bug An unexpected behavior, bug, or error
    Projects
    None yet
    Development

    No branches or pull requests

    7 participants