Remove the LLVM specific archive index.
authorRafael Espindola <rafael.espindola@gmail.com>
Fri, 14 Jun 2013 23:25:53 +0000 (23:25 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Fri, 14 Jun 2013 23:25:53 +0000 (23:25 +0000)
commit250bfb1745fd72615b618e3c8748321a104d80d0
tree0aeaf51210822a37de79ba4b6ba6dbc766b8e5c6
parentd6055262d23b1a8f2b5c74ab94fc6c143aca1c45
Remove the LLVM specific archive index.

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
19 files changed:
docs/CommandGuide/index.rst
docs/CommandGuide/llvm-ar.rst
docs/CommandGuide/llvm-ranlib.rst [deleted file]
include/llvm/Bitcode/Archive.h
lib/Archive/Archive.cpp
lib/Archive/ArchiveInternals.h
lib/Archive/ArchiveReader.cpp
lib/Archive/ArchiveWriter.cpp
lib/Object/Archive.cpp
test/Archive/README.txt
test/lit.cfg
tools/CMakeLists.txt
tools/LLVMBuild.txt
tools/Makefile
tools/llvm-ar/llvm-ar.cpp
tools/llvm-ranlib/CMakeLists.txt [deleted file]
tools/llvm-ranlib/LLVMBuild.txt [deleted file]
tools/llvm-ranlib/Makefile [deleted file]
tools/llvm-ranlib/llvm-ranlib.cpp [deleted file]