[llvm] db91320 - Revert "Move ELFObjHandler to TextAPI library"

Haowei Wu via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 10 21:31:56 PDT 2020


Author: Haowei Wu
Date: 2020-08-10T21:31:29-07:00
New Revision: db91320a898625484184d47a86b8ac1e4ae25aee

URL: https://github.com/llvm/llvm-project/commit/db91320a898625484184d47a86b8ac1e4ae25aee
DIFF: https://github.com/llvm/llvm-project/commit/db91320a898625484184d47a86b8ac1e4ae25aee.diff

LOG: Revert "Move ELFObjHandler to TextAPI library"

This reverts commit e6f8ba12e6ea97cbf4374b70e78309c2d859ca1c due
to build failures.

Added: 
    llvm/tools/llvm-elfabi/ELFObjHandler.cpp
    llvm/tools/llvm-elfabi/ELFObjHandler.h

Modified: 
    llvm/lib/TextAPI/CMakeLists.txt
    llvm/tools/llvm-elfabi/CMakeLists.txt
    llvm/tools/llvm-elfabi/llvm-elfabi.cpp

Removed: 
    llvm/include/llvm/TextAPI/ELF/ELFObjHandler.h
    llvm/lib/TextAPI/ELF/ELFObjHandler.cpp


################################################################################
diff  --git a/llvm/lib/TextAPI/CMakeLists.txt b/llvm/lib/TextAPI/CMakeLists.txt
index ed3cd4ee480d..36528f0995d8 100644
--- a/llvm/lib/TextAPI/CMakeLists.txt
+++ b/llvm/lib/TextAPI/CMakeLists.txt
@@ -1,5 +1,4 @@
 add_llvm_component_library(LLVMTextAPI
-  ELF/ELFObjHandler.cpp
   ELF/ELFStub.cpp
   ELF/TBEHandler.cpp
   MachO/Architecture.cpp
@@ -14,6 +13,6 @@ add_llvm_component_library(LLVMTextAPI
 
   ADDITIONAL_HEADER_DIRS
   "${LLVM_MAIN_INCLUDE_DIR}/llvm/TextAPI"
-  "${LLVM_MAIN_INCLUDE_DIR}/llvm/TextAPI/ELF"
+  "${LLVM_MAIN_INCLUDE_DIR}/llvm/TextAPI/Elf"
   "${LLVM_MAIN_INCLUDE_DIR}/llvm/TextAPI/MachO"
 )

diff  --git a/llvm/tools/llvm-elfabi/CMakeLists.txt b/llvm/tools/llvm-elfabi/CMakeLists.txt
index bd4875f0be4d..bd3ec851887a 100644
--- a/llvm/tools/llvm-elfabi/CMakeLists.txt
+++ b/llvm/tools/llvm-elfabi/CMakeLists.txt
@@ -5,6 +5,7 @@ set(LLVM_LINK_COMPONENTS
   )
 
 add_llvm_tool(llvm-elfabi
+  ELFObjHandler.cpp
   ErrorCollector.cpp
   llvm-elfabi.cpp
   )

diff  --git a/llvm/lib/TextAPI/ELF/ELFObjHandler.cpp b/llvm/tools/llvm-elfabi/ELFObjHandler.cpp
similarity index 91%
rename from llvm/lib/TextAPI/ELF/ELFObjHandler.cpp
rename to llvm/tools/llvm-elfabi/ELFObjHandler.cpp
index f43fbf99ba99..124fffbb9cf6 100644
--- a/llvm/lib/TextAPI/ELF/ELFObjHandler.cpp
+++ b/llvm/tools/llvm-elfabi/ELFObjHandler.cpp
@@ -6,7 +6,7 @@
 //
 //===-----------------------------------------------------------------------===/
 
-#include "llvm/TextAPI/ELF/ELFObjHandler.h"
+#include "ELFObjHandler.h"
 #include "llvm/Object/Binary.h"
 #include "llvm/Object/ELFObjectFile.h"
 #include "llvm/Object/ELFTypes.h"
@@ -128,17 +128,19 @@ static Error populateDynamic(DynamicEntries &Dyn,
         "Couldn't locate dynamic symbol table (no DT_SYMTAB entry)");
   }
   if (Dyn.SONameOffset.hasValue() && *Dyn.SONameOffset >= Dyn.StrSize) {
-    return createStringError(object_error::parse_failed,
-                             "DT_SONAME string offset (0x%016" PRIx64
-                             ") outside of dynamic string table",
-                             *Dyn.SONameOffset);
+    return createStringError(
+        object_error::parse_failed,
+        "DT_SONAME string offset (0x%016" PRIx64
+        ") outside of dynamic string table",
+        *Dyn.SONameOffset);
   }
   for (uint64_t Offset : Dyn.NeededLibNames) {
     if (Offset >= Dyn.StrSize) {
-      return createStringError(object_error::parse_failed,
-                               "DT_NEEDED string offset (0x%016" PRIx64
-                               ") outside of dynamic string table",
-                               Offset);
+      return createStringError(
+          object_error::parse_failed,
+          "DT_NEEDED string offset (0x%016" PRIx64
+          ") outside of dynamic string table",
+          Offset);
     }
   }
 
@@ -210,16 +212,16 @@ static Expected<uint64_t> getNumSyms(DynamicEntries &Dyn,
 static ELFSymbolType convertInfoToType(uint8_t Info) {
   Info = Info & 0xf;
   switch (Info) {
-  case ELF::STT_NOTYPE:
-    return ELFSymbolType::NoType;
-  case ELF::STT_OBJECT:
-    return ELFSymbolType::Object;
-  case ELF::STT_FUNC:
-    return ELFSymbolType::Func;
-  case ELF::STT_TLS:
-    return ELFSymbolType::TLS;
-  default:
-    return ELFSymbolType::Unknown;
+    case ELF::STT_NOTYPE:
+      return ELFSymbolType::NoType;
+    case ELF::STT_OBJECT:
+      return ELFSymbolType::Object;
+    case ELF::STT_FUNC:
+      return ELFSymbolType::Func;
+    case ELF::STT_TLS:
+      return ELFSymbolType::TLS;
+    default:
+      return ELFSymbolType::Unknown;
   }
 }
 
@@ -257,8 +259,8 @@ static ELFSymbol createELFSym(StringRef SymName,
 /// @param DynStr StringRef to the dynamic string table.
 template <class ELFT>
 static Error populateSymbols(ELFStub &TargetStub,
-                             const typename ELFT::SymRange DynSym,
-                             StringRef DynStr) {
+                            const typename ELFT::SymRange DynSym,
+                            StringRef DynStr) {
   // Skips the first symbol since it's the NULL symbol.
   for (auto RawSym : DynSym.drop_front(1)) {
     // If a symbol does not have global or weak binding, ignore it.
@@ -309,7 +311,7 @@ buildStub(const ELFObjectFile<ELFT> &ElfObj) {
   if (Error Err = populateDynamic<ELFT>(DynEnt, *DynTable))
     return std::move(Err);
 
-  // Get pointer to in-memory location of .dynstr section.
+    // Get pointer to in-memory location of .dynstr section.
   Expected<const uint8_t *> DynStrPtr =
       ElfFile->toMappedAddr(DynEnt.StrTabAddr);
   if (!DynStrPtr)
@@ -353,8 +355,9 @@ buildStub(const ELFObjectFile<ELFT> &ElfObj) {
     if (!DynSymPtr)
       return appendToError(DynSymPtr.takeError(),
                            "when locating .dynsym section contents");
-    Elf_Sym_Range DynSyms = ArrayRef<Elf_Sym>(
-        reinterpret_cast<const Elf_Sym *>(*DynSymPtr), *SymCount);
+    Elf_Sym_Range DynSyms =
+        ArrayRef<Elf_Sym>(reinterpret_cast<const Elf_Sym *>(*DynSymPtr),
+                          *SymCount);
     Error SymReadError = populateSymbols<ELFT>(*DestStub, DynSyms, DynStr);
     if (SymReadError)
       return appendToError(std::move(SymReadError),

diff  --git a/llvm/include/llvm/TextAPI/ELF/ELFObjHandler.h b/llvm/tools/llvm-elfabi/ELFObjHandler.h
similarity index 87%
rename from llvm/include/llvm/TextAPI/ELF/ELFObjHandler.h
rename to llvm/tools/llvm-elfabi/ELFObjHandler.h
index 5abed3af9f4e..97f0d68f4d4f 100644
--- a/llvm/include/llvm/TextAPI/ELF/ELFObjHandler.h
+++ b/llvm/tools/llvm-elfabi/ELFObjHandler.h
@@ -10,8 +10,8 @@
 ///
 //===-----------------------------------------------------------------------===/
 
-#ifndef LLVM_TEXTAPI_ELF_ELFOBJHANDLER_H
-#define LLVM_TEXTAPI_ELF_ELFOBJHANDLER_H
+#ifndef LLVM_TOOLS_ELFABI_ELFOBJHANDLER_H
+#define LLVM_TOOLS_ELFABI_ELFOBJHANDLER_H
 
 #include "llvm/Object/ELFObjectFile.h"
 #include "llvm/Object/ELFTypes.h"
@@ -29,4 +29,4 @@ Expected<std::unique_ptr<ELFStub>> readELFFile(MemoryBufferRef Buf);
 } // end namespace elfabi
 } // end namespace llvm
 
-#endif // LLVM_TEXTAPI_ELF_ELFOBJHANDLER_H
+#endif // LLVM_TOOLS_ELFABI_ELFOBJHANDLER_H

diff  --git a/llvm/tools/llvm-elfabi/llvm-elfabi.cpp b/llvm/tools/llvm-elfabi/llvm-elfabi.cpp
index e70df2697d1d..044b5f77c6d7 100644
--- a/llvm/tools/llvm-elfabi/llvm-elfabi.cpp
+++ b/llvm/tools/llvm-elfabi/llvm-elfabi.cpp
@@ -6,15 +6,15 @@
 //
 //===-----------------------------------------------------------------------===/
 
+#include "ELFObjHandler.h"
 #include "ErrorCollector.h"
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Support/Errc.h"
 #include "llvm/Support/FileOutputBuffer.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include "llvm/Support/Path.h"
-#include "llvm/Support/WithColor.h"
 #include "llvm/Support/raw_ostream.h"
-#include "llvm/TextAPI/ELF/ELFObjHandler.h"
+#include "llvm/Support/WithColor.h"
 #include "llvm/TextAPI/ELF/TBEHandler.h"
 #include <string>
 


        


More information about the llvm-commits mailing list