Add `-z nocopyreloc` option.
This option disable creating copy relocations. ld.bfd and ld.gold
have the same option.
llvm-svn: 295772
diff --git a/lld/ELF/Relocations.cpp b/lld/ELF/Relocations.cpp
index defbec4..0842331 100644
--- a/lld/ELF/Relocations.cpp
+++ b/lld/ELF/Relocations.cpp
@@ -543,8 +543,14 @@
if (Body.isObject()) {
// Produce a copy relocation.
auto *B = cast<SharedSymbol<ELFT>>(&Body);
- if (!B->NeedsCopy)
+ if (!B->NeedsCopy) {
+ if (Config->ZNocopyreloc)
+ error(S.getLocation(RelOff) + ": unresolvable relocation " + toString(Type)
+ + " against symbol '" + toString(*B) +
+ "'; recompile with -fPIC or remove '-z nocopyreloc'");
+
addCopyRelSymbol(B);
+ }
return Expr;
}
if (Body.isFunc()) {