mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-29 16:04:33 +00:00
250bfb1745
Archive files (.a) can have a symbol table indicating which object files in them define which symbols. The purpose of this symbol table is to speed up linking by allowing the linker the read only the .o files it is actually going to use instead of having to parse every object's symbol table. LLVM's archive library currently supports a LLVM specific format for such table. It is hard to see any value in that now that llvm-ld is gone: * System linkers don't use it: GNU ar uses the same plugin as the linker to create archive files with a regular index. The OS X ar creates no symbol table for IL files, I assume the linker just parses all IL files. * It doesn't interact well with archives having both IL and native objects. * We probably don't want to be responsible for yet another archive format variant. This patch then: * Removes support for creating and reading such index from lib/Archive. * Remove llvm-ranlib, since there is nothing left for it to do. We should in the future add support for regular indexes to llvm-ar for both native and IL objects. When we do that, llvm-ranlib should be reimplemented as a symlink to llvm-ar, as it is equivalent to "ar s". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184019 91177308-0d34-0410-b5e6-96231b3b80d8
81 lines
2.4 KiB
Makefile
81 lines
2.4 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 LLDB if present. Note LLDB must be built last as it depends on the
|
|
# wider LLVM infrastructure (including Clang).
|
|
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-prof 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-symbolizer obj2yaml yaml2obj
|
|
|
|
# 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.
|
|
ifdef BINUTILS_INCDIR
|
|
DIRS += lto gold
|
|
else
|
|
PARALLEL_DIRS += lto
|
|
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
|
|
|
|
include $(LEVEL)/Makefile.common
|