[Lldb-commits] OSX cmake+ninja build broken by [lldb] r225398 - lldb-platform - static link all llvm dependencies

Bob Campbell bobcampbell_llvm at icloud.com
Fri Jan 9 22:47:05 PST 2015


> On Jan 9, 2015, at 10:47 AM, Dawn Perchik <dperchik at embarcadero.com> wrote:
> 
> Vince Harron <vharron <at> google.com> writes:
>> 
>> Author: vharron
>> Date: Wed Jan  7 15:35:07 2015
>> New Revision: 225398
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=225398&view=rev
>> Log:
>> lldb-platform - static link all llvm dependencies
>> 
>> Differential Revision: http://reviews.llvm.org/D6797
>> 
>> lldb-gdbserver statically links all llvm dependencies. This allows
>> dead stripping code and reduces total binary size.
>> 
>> This change modifies lldb-plaform to static link llvm dependencies
>> like lldb-gdbserver.
> 
> Our upstream build has been broken since this commit and is preventing us from
> merging.   Vince, can you please have a look?  Build errors are:
> 
> [...]
> Undefined symbols for architecture x86_64:
>  "_liblldb_coreVersionString", referenced from:
>      lldb_private::GetVersion() in lldb.cpp.o
> ld: symbol(s) not found for architecture x86_64
> clang: error: linker command failed with exit code 1 (use -v to see invocation)
> [6/12] Linking CXX shared library lib/liblldb.3.6.0.dylib
> ninja: build stopped: subcommand failed.
> 
> Build commands used are:
> cmake -G Ninja .. "-DLLVM_TARGETS_TO_BUILD=ARM;X86;AArch64" \
>   -DCMAKE_CXX_FLAGS="-std=c++11 -stdlib=libc++" -DCMAKE_BUILD_TYPE=Debug
> ninja

The change from:

target_link_libraries(lldb-platform liblldb)

to directly referencing the sources does not include some sources for Mac OS
(and perhaps other hosts?) which are defined by the variables LLDB_WRAP_PYTHON
and LLDB_VERS_GENERATED_FILE.

Adding them back in, and also adding in the dependency to the target
which generates these files seems to work.

I have not extensively testing but this patch worked for me to build the target lldb-platform:

diff --git a/tools/lldb-platform/CMakeLists.txt b/tools/lldb-platform/CMakeLists.txt
index 1577765..d4a1e0a 100644
--- a/tools/lldb-platform/CMakeLists.txt
+++ b/tools/lldb-platform/CMakeLists.txt
@@ -22,8 +22,14 @@ add_lldb_executable(lldb-platform
   lldb-platform.cpp
   ../../source/lldb-log.cpp
   ../../source/lldb.cpp
+  ${LLDB_WRAP_PYTHON}
+  ${LLDB_VERS_GENERATED_FILE}
   )
 
+if (LLDB_WRAP_PYTHON OR LLDB_VERS_GENERATED_FILE)
+  add_dependencies(lldb-platform swig_wrapper)
+endif()
+
 # The Darwin linker doesn't understand --start-group/--end-group.
 if (LLVM_COMPILER_IS_GCC_COMPATIBLE AND NOT "${CMAKE_SYSTEM_NAME}" MATCHES "Darwin")
   target_link_libraries(lldb-platform


> 

> Thanks,
> -Dawn
> 
> PS: I'm using my work e-mail since burble.org is down - when it recovers you
> might get another e-mail about this - if so, please ignore :) .
> 
> _______________________________________________
> lldb-commits mailing list
> lldb-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits





More information about the lldb-commits mailing list