https://llvm.org/bugs/show_bug.cgi?id=25446

            Bug ID: 25446
           Summary: lldb Python extension module is linked to libpython
           Product: lldb
           Version: unspecified
          Hardware: PC
                OS: MacOS X
            Status: NEW
          Severity: normal
          Priority: P
         Component: All Bugs
          Assignee: lldb-dev@lists.llvm.org
          Reporter: l...@tim-smith.us
                CC: llvm-b...@lists.llvm.org
    Classification: Unclassified

Hi; I'm a maintainer of Homebrew, a package manager for OS X. We package and
distribute LLVM. LLDB builds an import-able Python module which lands in
lib/python2.7/site-packages/lldb/_lldb.so. When LLVM and LLDB are built using
the cmake build (and possibly otherwise), this module is explicitly linked
against a Python framework, and it should not be, because that prevents the
module from being imported by a compatible interpreter located somewhere else
on the system. An attempt to do so will result in segfaults. This is
unnecessary and makes the module harder to distribute. The module should be
built with -undefined dynamic_lookup instead of -lpython.

Please see this blog post for more background:
http://blog.tim-smith.us/2015/09/python-extension-modules-os-x/

Running otool -L against the module shows that it has an explicit link to a
Python framework:

tim@rocketman:~$ otool -L
/usr/local/Cellar/llvm/3.6.2/lib/python2.7/site-packages/lldb/_lldb.so
/usr/local/Cellar/llvm/3.6.2/lib/python2.7/site-packages/lldb/_lldb.so:
        ...
    /System/Library/Frameworks/Python.framework/Versions/2.7/Python
(compatibility version 2.7.0, current version 2.7.10)

Extension modules should not show this linkage.

This Homebrew bug is related: https://github.com/Homebrew/homebrew/pull/45787

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
lldb-dev mailing list
lldb-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev

Reply via email to