diff options
author | shadchin <shadchin@yandex-team.ru> | 2022-02-10 16:44:30 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:44:30 +0300 |
commit | 2598ef1d0aee359b4b6d5fdd1758916d5907d04f (patch) | |
tree | 012bb94d777798f1f56ac1cec429509766d05181 /contrib/libs/llvm12/include/llvm/InterfaceStub | |
parent | 6751af0b0c1b952fede40b19b71da8025b5d8bcf (diff) | |
download | ydb-2598ef1d0aee359b4b6d5fdd1758916d5907d04f.tar.gz |
Restoring authorship annotation for <shadchin@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/llvm12/include/llvm/InterfaceStub')
3 files changed, 189 insertions, 189 deletions
diff --git a/contrib/libs/llvm12/include/llvm/InterfaceStub/ELFObjHandler.h b/contrib/libs/llvm12/include/llvm/InterfaceStub/ELFObjHandler.h index 815bf6da45..a030f06baa 100644 --- a/contrib/libs/llvm12/include/llvm/InterfaceStub/ELFObjHandler.h +++ b/contrib/libs/llvm12/include/llvm/InterfaceStub/ELFObjHandler.h @@ -1,58 +1,58 @@ -#pragma once - -#ifdef __GNUC__ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunused-parameter" -#endif - -//===- ELFObjHandler.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 -// -//===-----------------------------------------------------------------------===/ -/// -/// This supports reading and writing of elf dynamic shared objects. -/// -//===-----------------------------------------------------------------------===/ - -#ifndef LLVM_TOOLS_ELFABI_ELFOBJHANDLER_H -#define LLVM_TOOLS_ELFABI_ELFOBJHANDLER_H - -#include "llvm/InterfaceStub/ELFStub.h" -#include "llvm/Object/ELFObjectFile.h" -#include "llvm/Object/ELFTypes.h" -#include "llvm/Support/FileSystem.h" - -namespace llvm { - -class MemoryBuffer; - -namespace elfabi { - -enum class ELFTarget { ELF32LE, ELF32BE, ELF64LE, ELF64BE }; - -/// Attempt to read a binary ELF file from a MemoryBuffer. -Expected<std::unique_ptr<ELFStub>> readELFFile(MemoryBufferRef Buf); - -/// Attempt to write a binary ELF stub. -/// This function determines appropriate ELFType using the passed ELFTarget and -/// then writes a binary ELF stub to a specified file path. -/// -/// @param FilePath File path for writing the ELF binary. -/// @param Stub Source ELFStub to generate a binary ELF stub from. -/// @param OutputFormat Target ELFType to write binary as. -/// @param WriteIfChanged Whether or not to preserve timestamp if -/// the output stays the same. -Error writeBinaryStub(StringRef FilePath, const ELFStub &Stub, - ELFTarget OutputFormat, bool WriteIfChanged = false); - -} // end namespace elfabi -} // end namespace llvm - -#endif // LLVM_TOOLS_ELFABI_ELFOBJHANDLER_H - -#ifdef __GNUC__ -#pragma GCC diagnostic pop -#endif +#pragma once + +#ifdef __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-parameter" +#endif + +//===- ELFObjHandler.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 +// +//===-----------------------------------------------------------------------===/ +/// +/// This supports reading and writing of elf dynamic shared objects. +/// +//===-----------------------------------------------------------------------===/ + +#ifndef LLVM_TOOLS_ELFABI_ELFOBJHANDLER_H +#define LLVM_TOOLS_ELFABI_ELFOBJHANDLER_H + +#include "llvm/InterfaceStub/ELFStub.h" +#include "llvm/Object/ELFObjectFile.h" +#include "llvm/Object/ELFTypes.h" +#include "llvm/Support/FileSystem.h" + +namespace llvm { + +class MemoryBuffer; + +namespace elfabi { + +enum class ELFTarget { ELF32LE, ELF32BE, ELF64LE, ELF64BE }; + +/// Attempt to read a binary ELF file from a MemoryBuffer. +Expected<std::unique_ptr<ELFStub>> readELFFile(MemoryBufferRef Buf); + +/// Attempt to write a binary ELF stub. +/// This function determines appropriate ELFType using the passed ELFTarget and +/// then writes a binary ELF stub to a specified file path. +/// +/// @param FilePath File path for writing the ELF binary. +/// @param Stub Source ELFStub to generate a binary ELF stub from. +/// @param OutputFormat Target ELFType to write binary as. +/// @param WriteIfChanged Whether or not to preserve timestamp if +/// the output stays the same. +Error writeBinaryStub(StringRef FilePath, const ELFStub &Stub, + ELFTarget OutputFormat, bool WriteIfChanged = false); + +} // end namespace elfabi +} // end namespace llvm + +#endif // LLVM_TOOLS_ELFABI_ELFOBJHANDLER_H + +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif diff --git a/contrib/libs/llvm12/include/llvm/InterfaceStub/ELFStub.h b/contrib/libs/llvm12/include/llvm/InterfaceStub/ELFStub.h index 41777d5a48..bcd5b2fcbf 100644 --- a/contrib/libs/llvm12/include/llvm/InterfaceStub/ELFStub.h +++ b/contrib/libs/llvm12/include/llvm/InterfaceStub/ELFStub.h @@ -1,77 +1,77 @@ -#pragma once - -#ifdef __GNUC__ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunused-parameter" -#endif - -//===- 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 - -#ifdef __GNUC__ -#pragma GCC diagnostic pop -#endif +#pragma once + +#ifdef __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-parameter" +#endif + +//===- 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 + +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif diff --git a/contrib/libs/llvm12/include/llvm/InterfaceStub/TBEHandler.h b/contrib/libs/llvm12/include/llvm/InterfaceStub/TBEHandler.h index f3a4afef30..d86a99610b 100644 --- a/contrib/libs/llvm12/include/llvm/InterfaceStub/TBEHandler.h +++ b/contrib/libs/llvm12/include/llvm/InterfaceStub/TBEHandler.h @@ -1,54 +1,54 @@ -#pragma once - -#ifdef __GNUC__ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunused-parameter" -#endif - -//===- TBEHandler.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 declares an interface for reading and writing .tbe (text-based -/// ELF) files. -/// -//===-----------------------------------------------------------------------===/ - -#ifndef LLVM_TEXTAPI_ELF_TBEHANDLER_H -#define LLVM_TEXTAPI_ELF_TBEHANDLER_H - -#include "llvm/Support/Error.h" -#include "llvm/Support/VersionTuple.h" -#include <memory> - -namespace llvm { - -class raw_ostream; -class Error; -class StringRef; - -namespace elfabi { - -class ELFStub; - -const VersionTuple TBEVersionCurrent(1, 0); - -/// Attempts to read an ELF interface file from a StringRef buffer. -Expected<std::unique_ptr<ELFStub>> readTBEFromBuffer(StringRef Buf); - -/// Attempts to write an ELF interface file to a raw_ostream. -Error writeTBEToOutputStream(raw_ostream &OS, const ELFStub &Stub); - -} // end namespace elfabi -} // end namespace llvm - -#endif // LLVM_TEXTAPI_ELF_TBEHANDLER_H - -#ifdef __GNUC__ -#pragma GCC diagnostic pop -#endif +#pragma once + +#ifdef __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-parameter" +#endif + +//===- TBEHandler.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 declares an interface for reading and writing .tbe (text-based +/// ELF) files. +/// +//===-----------------------------------------------------------------------===/ + +#ifndef LLVM_TEXTAPI_ELF_TBEHANDLER_H +#define LLVM_TEXTAPI_ELF_TBEHANDLER_H + +#include "llvm/Support/Error.h" +#include "llvm/Support/VersionTuple.h" +#include <memory> + +namespace llvm { + +class raw_ostream; +class Error; +class StringRef; + +namespace elfabi { + +class ELFStub; + +const VersionTuple TBEVersionCurrent(1, 0); + +/// Attempts to read an ELF interface file from a StringRef buffer. +Expected<std::unique_ptr<ELFStub>> readTBEFromBuffer(StringRef Buf); + +/// Attempts to write an ELF interface file to a raw_ostream. +Error writeTBEToOutputStream(raw_ostream &OS, const ELFStub &Stub); + +} // end namespace elfabi +} // end namespace llvm + +#endif // LLVM_TEXTAPI_ELF_TBEHANDLER_H + +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif |