[lldb] Enable building with Cmake/BUILD_SHARED_LIBS

Summary:
Several changes to fix CMake builds of LLDB with the
BUILD_SHARED_LIBS setting on.

- Force all internal libraries to be built STATIC.
- Add additional library dependencies (pthread, dl,
  runtimedyld).
- modify finalisation of SWIG wrapper to symlink the
  "lib" dir into python/site-packages, so _lldb.so's
  RPATH resolves.

Test Plan: Verified one test case with "dotest.py".

Reviewers: sylvestre.ledru, zturner

Reviewed By: zturner

Subscribers: zturner, ted, tberghammer, emaste, lldb-commits

Differential Revision: http://reviews.llvm.org/D10157

llvm-svn: 239007
This commit is contained in:
Andrew Wilkins
2015-06-04 03:12:37 +00:00
parent d31203ae21
commit 7175f16cdb
5 changed files with 26 additions and 4 deletions

View File

@@ -304,6 +304,8 @@ def make_symlink( vDictArgs, vstrFrameworkPythonDir, vstrSrcFile, vstrTargetFile
# llvm/build/lib/python2.7/site-packages/lldb
strBuildDir = os.path.join("..", "..", "..", "..");
strSrc = os.path.normcase(os.path.join(strBuildDir, vstrSrcFile));
strTargetDir = os.path.dirname(strTarget);
strSrc = os.path.relpath(os.path.abspath(strSrc), strTargetDir);
if eOSType == utilsOsType.EnumOsType.Unknown:
bOk = False;
@@ -371,6 +373,13 @@ def make_symlink_liblldb( vDictArgs, vstrFrameworkPythonDir, vstrLiblldbFileName
strLibFileExtn = ".so";
strSrc = os.path.join("lib", "liblldb" + strLibFileExtn);
if eOSType != utilsOsType.EnumOsType.Windows:
# Create a symlink to the "lib" directory, to ensure liblldb's RPATH is
# effective.
bOk, strErrMsg = make_symlink( vDictArgs, vstrFrameworkPythonDir, "lib", os.path.join("../lib") );
if not bOk:
return (bOk, strErrMsg)
bOk, strErrMsg = make_symlink( vDictArgs, vstrFrameworkPythonDir, strSrc, strTarget );
return (bOk, strErrMsg);