summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-06-14 23:25:53 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-06-14 23:25:53 +0000
commit250bfb1745fd72615b618e3c8748321a104d80d0 (patch)
tree0aeaf51210822a37de79ba4b6ba6dbc766b8e5c6 /include
parentd6055262d23b1a8f2b5c74ab94fc6c143aca1c45 (diff)
downloadllvm-250bfb1745fd72615b618e3c8748321a104d80d0.tar.gz
llvm-250bfb1745fd72615b618e3c8748321a104d80d0.tar.bz2
llvm-250bfb1745fd72615b618e3c8748321a104d80d0.tar.xz
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
Diffstat (limited to 'include')
-rw-r--r--include/llvm/Bitcode/Archive.h23
1 files changed, 4 insertions, 19 deletions
diff --git a/include/llvm/Bitcode/Archive.h b/include/llvm/Bitcode/Archive.h
index d27f690cb5..e576463c85 100644
--- a/include/llvm/Bitcode/Archive.h
+++ b/include/llvm/Bitcode/Archive.h
@@ -50,11 +50,10 @@ class ArchiveMember : public ilist_node<ArchiveMember> {
enum Flags {
SVR4SymbolTableFlag = 1, ///< Member is a SVR4 symbol table
BSD4SymbolTableFlag = 2, ///< Member is a BSD4 symbol table
- LLVMSymbolTableFlag = 4, ///< Member is an LLVM symbol table
- BitcodeFlag = 8, ///< Member is bitcode
- HasPathFlag = 16, ///< Member has a full or partial path
- HasLongFilenameFlag = 32, ///< Member uses the long filename syntax
- StringTableFlag = 64 ///< Member is an ar(1) format string table
+ BitcodeFlag = 4, ///< Member is bitcode
+ HasPathFlag = 8, ///< Member has a full or partial path
+ HasLongFilenameFlag = 16, ///< Member uses the long filename syntax
+ StringTableFlag = 32 ///< Member is an ar(1) format string table
};
/// @}
@@ -117,10 +116,6 @@ class ArchiveMember : public ilist_node<ArchiveMember> {
/// @brief Determine if this member is a BSD4.4 symbol table.
bool isBSD4SymbolTable() const { return flags&BSD4SymbolTableFlag; }
- /// @returns true iff the archive member is the LLVM symbol table
- /// @brief Determine if this member is the LLVM symbol table.
- bool isLLVMSymbolTable() const { return flags&LLVMSymbolTableFlag; }
-
/// @returns true iff the archive member is the ar(1) string table
/// @brief Determine if this member is the ar(1) string table.
bool isStringTable() const { return flags&StringTableFlag; }
@@ -445,13 +440,6 @@ class Archive {
/// into memory.
explicit Archive(const sys::Path& filename, LLVMContext& C);
- /// @param data The symbol table data to be parsed
- /// @param len The length of the symbol table data
- /// @param error Set to address of a std::string to get error messages
- /// @returns false on error
- /// @brief Parse the symbol table at \p data.
- bool parseSymbolTable(const void* data,unsigned len,std::string* error);
-
/// @returns A fully populated ArchiveMember or 0 if an error occurred.
/// @brief Parse the header of a member starting at \p At
ArchiveMember* parseMemberHeader(
@@ -475,9 +463,6 @@ class Archive {
/// @brief Load just the symbol table.
bool loadSymbolTable(std::string* ErrMessage);
- /// @brief Write the symbol table to an ofstream.
- void writeSymbolTable(std::ofstream& ARFile);
-
/// Writes one ArchiveMember to an ofstream. If an error occurs, returns
/// false, otherwise true. If an error occurs and error is non-null then
/// it will be set to an error message.