[PATCH] D54624: [LLD][ELF] Error if _GLOBAL_OFFSET_TABLE_ is defined in input objects

Rui Ueyama via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 27 09:16:45 PST 2018


ruiu added inline comments.


================
Comment at: ELF/Writer.cpp:219-220
+      (Config->EMachine == EM_PPC64) ? ".TOC." : "_GLOBAL_OFFSET_TABLE_";
+  if (Symtab->find(GotTableSymName))
+    ElfSym::GlobalOffsetTable = Symtab->addDefined(
+        GotTableSymName, STV_HIDDEN, STT_NOTYPE, Target->GotBaseSymOff,
----------------
Calling `find` before `addDefined` seems a bit odd to me. Doesn't this print out a "duplicate symbol" error that may be confusing to users? Perhaps it is better to print out a more concrete warning message like "you cannot redefine linker-reserved symbol: _GLOBAL_OFFSET_TABLE_" if `Symtab->find()` returns a defined symbol?


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D54624/new/

https://reviews.llvm.org/D54624





More information about the llvm-commits mailing list