diff options
Diffstat (limited to 'llvm/include/llvm/InterfaceStub/ELFStub.h')
-rw-r--r-- | llvm/include/llvm/InterfaceStub/ELFStub.h | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/llvm/include/llvm/InterfaceStub/ELFStub.h b/llvm/include/llvm/InterfaceStub/ELFStub.h deleted file mode 100644 index 7832c1c7413b..000000000000 --- a/llvm/include/llvm/InterfaceStub/ELFStub.h +++ /dev/null @@ -1,66 +0,0 @@ -//===- ELFStub.h ------------------------------------------------*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===-----------------------------------------------------------------------===/ -/// -/// \file -/// This file defines an internal representation of an ELF stub. -/// -//===-----------------------------------------------------------------------===/ - -#ifndef LLVM_TEXTAPI_ELF_ELFSTUB_H -#define LLVM_TEXTAPI_ELF_ELFSTUB_H - -#include "llvm/BinaryFormat/ELF.h" -#include "llvm/Support/VersionTuple.h" -#include <set> -#include <vector> - -namespace llvm { -namespace elfabi { - -typedef uint16_t ELFArch; - -enum class ELFSymbolType { - NoType = ELF::STT_NOTYPE, - Object = ELF::STT_OBJECT, - Func = ELF::STT_FUNC, - TLS = ELF::STT_TLS, - - // Type information is 4 bits, so 16 is safely out of range. - Unknown = 16, -}; - -struct ELFSymbol { - ELFSymbol(std::string SymbolName) : Name(SymbolName) {} - std::string Name; - uint64_t Size; - ELFSymbolType Type; - bool Undefined; - bool Weak; - Optional<std::string> Warning; - bool operator<(const ELFSymbol &RHS) const { return Name < RHS.Name; } -}; - -// A cumulative representation of ELF stubs. -// Both textual and binary stubs will read into and write from this object. -class ELFStub { - // TODO: Add support for symbol versioning. -public: - VersionTuple TbeVersion; - Optional<std::string> SoName; - ELFArch Arch; - std::vector<std::string> NeededLibs; - std::set<ELFSymbol> Symbols; - - ELFStub() {} - ELFStub(const ELFStub &Stub); - ELFStub(ELFStub &&Stub); -}; -} // end namespace elfabi -} // end namespace llvm - -#endif // LLVM_TEXTAPI_ELF_ELFSTUB_H |