diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-06-17 15:47:20 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-06-17 15:47:20 +0000 |
commit | 8496faea07de27b6d3435d02855db4bfebcc2781 (patch) | |
tree | 4345703a348c3b6144793e0b7f9b2a672cadb54f /lib/Archive/ArchiveInternals.h | |
parent | 5cd6db9a514ccb37df20455e543c88df5594eec0 (diff) |
Move lib/Archive to tools/llvm-ar.
llvm-ar is the only tool that needs to write archive files. Every other tool
should be able to use the lib/Object interface.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184083 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Archive/ArchiveInternals.h')
-rw-r--r-- | lib/Archive/ArchiveInternals.h | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/lib/Archive/ArchiveInternals.h b/lib/Archive/ArchiveInternals.h deleted file mode 100644 index bc5046de397..00000000000 --- a/lib/Archive/ArchiveInternals.h +++ /dev/null @@ -1,87 +0,0 @@ -//===-- lib/Archive/ArchiveInternals.h -------------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// Internal implementation header for LLVM Archive files. -// -//===----------------------------------------------------------------------===// - -#ifndef LIB_ARCHIVE_ARCHIVEINTERNALS_H -#define LIB_ARCHIVE_ARCHIVEINTERNALS_H - -#include "llvm/ADT/StringExtras.h" -#include "llvm/Bitcode/Archive.h" -#include "llvm/Support/TimeValue.h" -#include <cstring> - -#define ARFILE_MAGIC "!<arch>\n" ///< magic string -#define ARFILE_MAGIC_LEN (sizeof(ARFILE_MAGIC)-1) ///< length of magic string -#define ARFILE_SVR4_SYMTAB_NAME "/ " ///< SVR4 symtab entry name -#define ARFILE_BSD4_SYMTAB_NAME "__.SYMDEF SORTED" ///< BSD4 symtab entry name -#define ARFILE_STRTAB_NAME "// " ///< Name of string table -#define ARFILE_PAD "\n" ///< inter-file align padding -#define ARFILE_MEMBER_MAGIC "`\n" ///< fmag field magic # - -namespace llvm { - - class LLVMContext; - - /// The ArchiveMemberHeader structure is used internally for bitcode - /// archives. - /// The header precedes each file member in the archive. This structure is - /// defined using character arrays for direct and correct interpretation - /// regardless of the endianess of the machine that produced it. - /// @brief Archive File Member Header - class ArchiveMemberHeader { - /// @name Data - /// @{ - public: - char name[16]; ///< Name of the file member. - char date[12]; ///< File date, decimal seconds since Epoch - char uid[6]; ///< user id in ASCII decimal - char gid[6]; ///< group id in ASCII decimal - char mode[8]; ///< file mode in ASCII octal - char size[10]; ///< file size in ASCII decimal - char fmag[2]; ///< Always contains ARFILE_MAGIC_TERMINATOR - - /// @} - /// @name Methods - /// @{ - public: - void init() { - memset(name,' ',16); - memset(date,' ',12); - memset(uid,' ',6); - memset(gid,' ',6); - memset(mode,' ',8); - memset(size,' ',10); - fmag[0] = '`'; - fmag[1] = '\n'; - } - - bool checkSignature() const { - return 0 == memcmp(fmag, ARFILE_MEMBER_MAGIC,2); - } - }; - - // Get just the externally visible defined symbols from the bitcode - bool GetBitcodeSymbols(const sys::Path& fName, - LLVMContext& Context, - std::vector<std::string>& symbols, - std::string* ErrMsg); - - Module* GetBitcodeSymbols(const char *Buffer, unsigned Length, - const std::string& ModuleID, - LLVMContext& Context, - std::vector<std::string>& symbols, - std::string* ErrMsg); -} - -#endif - -// vim: sw=2 ai |