mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 20:23:11 +01:00
3654a51c98
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 llvm-svn: 224134
82 lines
2.5 KiB
Makefile
82 lines
2.5 KiB
Makefile
##===- tools/Makefile --------------------------------------*- Makefile -*-===##
|
|
#
|
|
# The LLVM Compiler Infrastructure
|
|
#
|
|
# This file is distributed under the University of Illinois Open Source
|
|
# License. See LICENSE.TXT for details.
|
|
#
|
|
##===----------------------------------------------------------------------===##
|
|
|
|
LEVEL := ..
|
|
|
|
include $(LEVEL)/Makefile.config
|
|
|
|
# Build clang if present.
|
|
|
|
ifneq ($(CLANG_SRC_ROOT),)
|
|
OPTIONAL_PARALLEL_DIRS := $(CLANG_SRC_ROOT)
|
|
else
|
|
OPTIONAL_PARALLEL_DIRS := clang
|
|
endif
|
|
|
|
# Build LLD and LLDB if present. Note LLDB must be built last as it depends on
|
|
# the wider LLVM infrastructure (including Clang).
|
|
OPTIONAL_PARALLEL_DIRS += lld
|
|
OPTIONAL_DIRS := lldb
|
|
|
|
# NOTE: The tools are organized into five groups of four consisting of one
|
|
# large and three small executables. This is done to minimize memory load
|
|
# in parallel builds. Please retain this ordering.
|
|
DIRS := llvm-config
|
|
PARALLEL_DIRS := opt llvm-as llvm-dis llc llvm-ar llvm-nm llvm-link \
|
|
lli llvm-extract llvm-mc bugpoint llvm-bcanalyzer llvm-diff \
|
|
macho-dump llvm-objdump llvm-readobj llvm-rtdyld \
|
|
llvm-dwarfdump llvm-cov llvm-size llvm-stress llvm-mcmarkup \
|
|
llvm-profdata llvm-symbolizer obj2yaml yaml2obj llvm-c-test \
|
|
llvm-vtabledump verify-uselistorder dsymutil
|
|
|
|
# If Intel JIT Events support is configured, build an extra tool to test it.
|
|
ifeq ($(USE_INTEL_JITEVENTS), 1)
|
|
PARALLEL_DIRS += llvm-jitlistener
|
|
endif
|
|
|
|
# Let users override the set of tools to build from the command line.
|
|
ifdef ONLY_TOOLS
|
|
OPTIONAL_PARALLEL_DIRS :=
|
|
OPTIONAL_DIRS := $(findstring lldb,$(ONLY_TOOLS))
|
|
PARALLEL_DIRS := $(filter-out lldb,$(ONLY_TOOLS))
|
|
endif
|
|
|
|
# These libraries build as dynamic libraries (.dylib /.so), they can only be
|
|
# built if ENABLE_PIC is set.
|
|
ifndef ONLY_TOOLS
|
|
ifeq ($(ENABLE_PIC),1)
|
|
# gold only builds if binutils is around. It requires "lto" to build before
|
|
# it so it is added to DIRS. llvm-lto also requires lto
|
|
DIRS += lto llvm-lto
|
|
ifdef BINUTILS_INCDIR
|
|
DIRS += gold
|
|
endif
|
|
|
|
PARALLEL_DIRS += bugpoint-passes
|
|
endif
|
|
|
|
ifdef LLVM_HAS_POLLY
|
|
PARALLEL_DIRS += polly
|
|
endif
|
|
endif
|
|
|
|
# On Win32, loadable modules can be built with ENABLE_SHARED.
|
|
ifneq ($(ENABLE_SHARED),1)
|
|
ifneq (,$(filter $(HOST_OS), Cygwin MingW))
|
|
PARALLEL_DIRS := $(filter-out bugpoint-passes, \
|
|
$(PARALLEL_DIRS))
|
|
endif
|
|
endif
|
|
|
|
ifneq (,$(filter go,$(BINDINGS_TO_BUILD)))
|
|
PARALLEL_DIRS += llvm-go
|
|
endif
|
|
|
|
include $(LEVEL)/Makefile.common
|