Skip to content

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

Description

@pitrou
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']

    Activity

    1. pitrou commented on May 12, 2012

      @pitrou
      MemberAuthor

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

    2. added
      buildThe build process and cross-build
      type-bugAn unexpected behavior, bug, or error
      on May 12, 2012
    3. Arfrever commented on May 12, 2012

      Arfrevermannequin
      Mannequin

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

    4. doko42 commented on Jul 8, 2012

      @doko42
      Member

      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.

    5. ned-deily commented on Jul 8, 2012

      @ned-deily
      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.

    6. iritkatriel commented on Nov 6, 2020

      @iritkatriel
      Member

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

    7. Arfrever commented on Nov 7, 2020

      Arfrevermannequin
      Mannequin

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

    8. transferred this issue fromon Apr 10, 2022
    9. serhiy-storchaka commented on Dec 26, 2023

      @serhiy-storchaka
      Member

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

    10. added
      pendingThe issue will be closed if no feedback is provided
      on Dec 27, 2023
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

    Metadata

    Metadata

    Assignees

    No one assigned

      Labels

      3.10 (EOL)end of life3.8 (EOL)end of life3.9 (EOL)end of lifebuildThe build process and cross-buildpendingThe issue will be closed if no feedback is providedtype-bugAn unexpected behavior, bug, or error

      Projects

      No projects

        Milestone

        No milestone

        Relationships

        None yet

        Development

        No branches or pull requests

        Issue actions