tech-toolchain archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: [PATCH 5/7] Hackaround lldb-server path detection
On 28.03.2020 14:52, Michał Górny wrote:
> Add a hack to help lldb locate lldb-server. The upstream code for this
> relies on liblldb being built as a shared library, as it uses dlinfo
> to determine the path to the library and find executables relative
> to that. We cannot build liblldb.so at the moment since it would
> require building whole LLVM and Clang with -fPIC.
>
> The patch hardcodes a path equivalent to the expected value. This way
> we can avoid having to change more than one statement, as the relative
> path logic remains correct.
> ---
> .../llvm/dist/lldb/source/Host/common/HostInfoBase.cpp | 8 +-------
> 1 file changed, 1 insertion(+), 7 deletions(-)
>
> diff --git a/external/apache2/llvm/dist/lldb/source/Host/common/HostInfoBase.cpp b/external/apache2/llvm/dist/lldb/source/Host/common/HostInfoBase.cpp
> index 3765f36fc79a..ac36bdbbdc27 100644
> --- a/external/apache2/llvm/dist/lldb/source/Host/common/HostInfoBase.cpp
> +++ b/external/apache2/llvm/dist/lldb/source/Host/common/HostInfoBase.cpp
> @@ -248,13 +248,7 @@ bool HostInfoBase::ComputeSharedLibraryDirectory(FileSpec &file_spec) {
> // contains this function. On MacOSX this will be "LLDB.framework/.../LLDB".
> // On other posix systems, we will get .../lib(64|32)?/liblldb.so.
>
> - FileSpec lldb_file_spec(Host::GetModuleFileSpecForHostAddress(
> - reinterpret_cast<void *>(reinterpret_cast<intptr_t>(
> - HostInfoBase::ComputeSharedLibraryDirectory))));
> -
> - // This is necessary because when running the testsuite the shlib might be a
> - // symbolic link inside the Python resource dir.
> - FileSystem::Instance().ResolveSymbolicLink(lldb_file_spec, lldb_file_spec);
> + FileSpec lldb_file_spec("/usr/lib/liblldb.so");
>
> // Remove the filename so that this FileSpec only represents the directory.
> file_spec.GetDirectory() = lldb_file_spec.GetDirectory();
>
I would go here for
#if 1 // workaround missing liblldb.so
FileSpec lldb_file_spec("/usr/lib/liblldb.so");
#else
FileSpec lldb_file_spec(Host::GetModuleFileSpecForHostAddress(
reinterpret_cast<void *>(reinterpret_cast<intptr_t>(
HostInfoBase::ComputeSharedLibraryDirectory))));
// This is necessary because when running the testsuite the shlib
might be a
// symbolic link inside the Python resource dir.
FileSystem::Instance().ResolveSymbolicLink(lldb_file_spec,
lldb_file_spec);
#endif
Home |
Main Index |
Thread Index |
Old Index