[ELF] Error for undefined foo@v1
If an object file has an undefined foo@v1, we emit a dynamic symbol foo. This is incorrect if at runtime a shared object provides the non-default version foo@v1 (the undefined foo may bind to foo@@v2, for example). GNU ld issues an error for this case, even if foo@v1 is undefined weak (https://sourceware.org/bugzilla/show_bug.cgi?id=3351). This behavior makes sense because to represent an undefined foo@v1, we have to construct a Verneed entry. However, without knowing the defining filename, we cannot construct a Verneed entry (Verneed::vn_file is unavailable). This patch implements the error. Depends on D92258 Reviewed By: grimar Differential Revision: https://reviews.llvm.org/D92260
Loading
Please sign in to comment