mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-15 16:09:57 +00:00
31e081ed96
The goal of this tool is to replicate Darwin's dsymutil functionality based on LLVM. dsymutil is a DWARF linker. Darwin's linker (ld64) does not link the debug information, it leaves it in the object files in relocatable form, but embbeds a `debug map` into the executable that describes where to find the debug information and how to relocate it. When releasing/archiving a binary, dsymutil is called to link all the DWARF information into a `dsym bundle` that can distributed/stored along with the binary. With this commit, the LLVM based dsymutil is just able to parse the STABS debug maps embedded by ld64 in linked binaries (and not all of them, for example archives aren't supported yet). Note that the tool directory is called dsymutil, but the executable is currently called llvm-dsymutil. This discrepancy will disappear once the tool will be feature complete. At this point the executable will be renamed to dsymutil, but until then you do not want it to override the system one. Differential Revision: http://reviews.llvm.org/D6242 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224134 91177308-0d34-0410-b5e6-96231b3b80d8
87 lines
2.4 KiB
CMake
87 lines
2.4 KiB
CMake
add_llvm_tool_subdirectory(llvm-config)
|
|
|
|
# Build polly before the tools: the tools link against polly when
|
|
# LINK_POLLY_INTO_TOOLS is set.
|
|
if(WITH_POLLY)
|
|
add_llvm_external_project(polly)
|
|
else(WITH_POLLY)
|
|
list(APPEND LLVM_IMPLICIT_PROJECT_IGNORE "${LLVM_MAIN_SRC_DIR}/tools/polly")
|
|
endif(WITH_POLLY)
|
|
|
|
if( LLVM_BUILD_LLVM_DYLIB )
|
|
add_llvm_tool_subdirectory(llvm-shlib)
|
|
else()
|
|
ignore_llvm_tool_subdirectory(llvm-shlib)
|
|
endif()
|
|
|
|
add_llvm_tool_subdirectory(opt)
|
|
add_llvm_tool_subdirectory(llvm-as)
|
|
add_llvm_tool_subdirectory(llvm-dis)
|
|
add_llvm_tool_subdirectory(llvm-mc)
|
|
|
|
add_llvm_tool_subdirectory(llc)
|
|
add_llvm_tool_subdirectory(llvm-ar)
|
|
add_llvm_tool_subdirectory(llvm-nm)
|
|
add_llvm_tool_subdirectory(llvm-size)
|
|
|
|
add_llvm_tool_subdirectory(llvm-cov)
|
|
add_llvm_tool_subdirectory(llvm-profdata)
|
|
add_llvm_tool_subdirectory(llvm-link)
|
|
add_llvm_tool_subdirectory(lli)
|
|
|
|
add_llvm_tool_subdirectory(llvm-extract)
|
|
add_llvm_tool_subdirectory(llvm-diff)
|
|
add_llvm_tool_subdirectory(macho-dump)
|
|
add_llvm_tool_subdirectory(llvm-objdump)
|
|
add_llvm_tool_subdirectory(llvm-readobj)
|
|
add_llvm_tool_subdirectory(llvm-rtdyld)
|
|
add_llvm_tool_subdirectory(llvm-dwarfdump)
|
|
add_llvm_tool_subdirectory(dsymutil)
|
|
add_llvm_tool_subdirectory(llvm-vtabledump)
|
|
if( LLVM_USE_INTEL_JITEVENTS )
|
|
add_llvm_tool_subdirectory(llvm-jitlistener)
|
|
else()
|
|
ignore_llvm_tool_subdirectory(llvm-jitlistener)
|
|
endif( LLVM_USE_INTEL_JITEVENTS )
|
|
|
|
add_llvm_tool_subdirectory(bugpoint)
|
|
add_llvm_tool_subdirectory(bugpoint-passes)
|
|
add_llvm_tool_subdirectory(llvm-bcanalyzer)
|
|
add_llvm_tool_subdirectory(llvm-stress)
|
|
add_llvm_tool_subdirectory(llvm-mcmarkup)
|
|
|
|
add_llvm_tool_subdirectory(verify-uselistorder)
|
|
|
|
add_llvm_tool_subdirectory(llvm-symbolizer)
|
|
|
|
add_llvm_tool_subdirectory(llvm-c-test)
|
|
|
|
add_llvm_tool_subdirectory(obj2yaml)
|
|
add_llvm_tool_subdirectory(yaml2obj)
|
|
|
|
add_llvm_tool_subdirectory(llvm-go)
|
|
|
|
if(NOT CYGWIN AND LLVM_ENABLE_PIC)
|
|
add_llvm_tool_subdirectory(lto)
|
|
add_llvm_tool_subdirectory(llvm-lto)
|
|
else()
|
|
ignore_llvm_tool_subdirectory(lto)
|
|
ignore_llvm_tool_subdirectory(llvm-lto)
|
|
endif()
|
|
|
|
add_llvm_tool_subdirectory(gold)
|
|
|
|
add_llvm_external_project(clang)
|
|
add_llvm_external_project(llgo)
|
|
|
|
if( NOT LLVM_INCLUDE_TOOLS STREQUAL "bootstrap-only" )
|
|
add_llvm_external_project(lld)
|
|
add_llvm_external_project(lldb)
|
|
|
|
# Automatically add remaining sub-directories containing a 'CMakeLists.txt'
|
|
# file as external projects.
|
|
add_llvm_implicit_external_projects()
|
|
endif()
|
|
|
|
set(LLVM_COMMON_DEPENDS ${LLVM_COMMON_DEPENDS} PARENT_SCOPE)
|