[llvm] Add symbol version support to llvm-ifs (PR #163030)

via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 14 14:23:39 PST 2026


================
@@ -124,6 +128,88 @@ template <class ELFT> class ELFSymbolTableBuilder {
   llvm::SmallVector<Elf_Sym, 8> Symbols;
 };
 
+template <class ELFT> class ELFVersionSymbolBuilder {
+public:
+  using Elf_Versym = typename ELFT::Versym;
+
+  ELFVersionSymbolBuilder() { VerSyms.push_back({}); }
+
+  void add(uint16_t Index) {
+    Elf_Versym VerSym;
+    VerSym.vs_index = Index;
+    VerSyms.push_back(VerSym);
+  }
+
+  size_t getSize() const { return VerSyms.size() * sizeof(Elf_Versym); }
+
+  void write(uint8_t *Buf) const {
+    memcpy(Buf, VerSyms.data(), VerSyms.size() * sizeof(Elf_Versym));
----------------
zeroomega wrote:

Replace with getSize() to reduce duplicated code?

https://github.com/llvm/llvm-project/pull/163030


More information about the llvm-commits mailing list