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

via llvm-commits llvm-commits at lists.llvm.org
Sat Oct 3 22:39:58 PDT 2026


================
@@ -244,18 +380,28 @@ template <class ELFT> class ELFStubBuilder {
     // Fill Addr back to dynamic table.
     DynTab.Content.modifyAddr(DynSymIndex, DynSym.Addr);
     DynTab.Content.modifyAddr(DynStrIndex, DynStr.Addr);
+    if (HasVersion) {
+      DynTab.Content.modifyAddr(VerSymIndex, VerSym.Addr);
+      DynTab.Content.modifyAddr(VerDefIndex, VerDef.Addr);
+    }
     // Write section headers of string tables.
     fillSymTabShdr(DynSym, SHT_DYNSYM);
     fillStrTabShdr(DynStr, SHF_ALLOC);
     fillDynTabShdr(DynTab);
     fillStrTabShdr(ShStrTab);
+    if (HasVersion) {
+      fillVerSymShdr(VerSym);
+      fillVerDefShdr(VerDef, Vdndx);
----------------
ur4t wrote:

There are always at least 2 definitions: `0` for `local` and `1` for `global`.
Ref: https://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/symversion.html#SYMVERTBL

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


More information about the llvm-commits mailing list