Index: lld/trunk/ELF/Relocations.cpp
===================================================================
--- lld/trunk/ELF/Relocations.cpp
+++ lld/trunk/ELF/Relocations.cpp
@@ -401,8 +401,8 @@
   // only memory. We can hack around it if we are producing an executable and
   // the refered symbol can be preemepted to refer to the executable.
   if (Config->Shared || (Config->Pic && !isRelExpr(Expr))) {
-    error("relocation " + getRelName(Type) +
-          " cannot be used when making a shared object; recompile with -fPIC.");
+    error("can't create dynamic relocation " + getRelName(Type) +
+          " against readonly segment");
     return Expr;
   }
   if (Body.getVisibility() != STV_DEFAULT) {
Index: lld/trunk/test/ELF/aarch64-fpic-add_abs_lo12_nc.s
===================================================================
--- lld/trunk/test/ELF/aarch64-fpic-add_abs_lo12_nc.s
+++ lld/trunk/test/ELF/aarch64-fpic-add_abs_lo12_nc.s
@@ -1,7 +1,7 @@
 // REQUIRES: aarch64
 // RUN: llvm-mc -filetype=obj -triple=aarch64-none-freebsd %s -o %t.o
 // RUN: not ld.lld -shared %t.o -o %t.so 2>&1 | FileCheck %s
-// CHECK: relocation R_AARCH64_ADD_ABS_LO12_NC cannot be used when making a shared object; recompile with -fPIC.
+// CHECK: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against readonly segment
 
   add x0, x0, :lo12:dat
 .data
Index: lld/trunk/test/ELF/aarch64-fpic-adr_prel_lo21.s
===================================================================
--- lld/trunk/test/ELF/aarch64-fpic-adr_prel_lo21.s
+++ lld/trunk/test/ELF/aarch64-fpic-adr_prel_lo21.s
@@ -1,7 +1,7 @@
 // REQUIRES: aarch64
 // RUN: llvm-mc -filetype=obj -triple=aarch64-none-freebsd %s -o %t.o
 // RUN: not ld.lld -shared %t.o -o %t.so 2>&1 | FileCheck %s
-// CHECK: relocation R_AARCH64_ADR_PREL_LO21 cannot be used when making a shared object; recompile with -fPIC.
+// CHECK: can't create dynamic relocation R_AARCH64_ADR_PREL_LO21 against readonly segment
 
   adr x0, dat
 .data
Index: lld/trunk/test/ELF/aarch64-fpic-adr_prel_pg_hi21.s
===================================================================
--- lld/trunk/test/ELF/aarch64-fpic-adr_prel_pg_hi21.s
+++ lld/trunk/test/ELF/aarch64-fpic-adr_prel_pg_hi21.s
@@ -1,7 +1,7 @@
 // REQUIRES: aarch64
 // RUN: llvm-mc -filetype=obj -triple=aarch64-none-freebsd %s -o %t.o
 // RUN: not ld.lld -shared %t.o -o %t.so 2>&1 | FileCheck %s
-// CHECK: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used when making a shared object; recompile with -fPIC.
+// CHECK: can't create dynamic relocation R_AARCH64_ADR_PREL_PG_HI21 against readonly segment
 
   adrp x0, dat
 .data
Index: lld/trunk/test/ELF/aarch64-fpic-ldst32_abs_lo12_nc.s
===================================================================
--- lld/trunk/test/ELF/aarch64-fpic-ldst32_abs_lo12_nc.s
+++ lld/trunk/test/ELF/aarch64-fpic-ldst32_abs_lo12_nc.s
@@ -1,7 +1,7 @@
 // REQUIRES: aarch64
 // RUN: llvm-mc -filetype=obj -triple=aarch64-none-freebsd %s -o %t.o
 // RUN: not ld.lld -shared %t.o -o %t.so 2>&1 | FileCheck %s
-// CHECK: relocation R_AARCH64_LDST32_ABS_LO12_NC cannot be used when making a shared object; recompile with -fPIC.
+// CHECK: can't create dynamic relocation R_AARCH64_LDST32_ABS_LO12_NC against readonly segment
 
   ldr s4, [x0, :lo12:dat]
 .data
Index: lld/trunk/test/ELF/aarch64-fpic-ldst64_abs_lo12_nc.s
===================================================================
--- lld/trunk/test/ELF/aarch64-fpic-ldst64_abs_lo12_nc.s
+++ lld/trunk/test/ELF/aarch64-fpic-ldst64_abs_lo12_nc.s
@@ -1,7 +1,7 @@
 // REQUIRES: aarch64
 // RUN: llvm-mc -filetype=obj -triple=aarch64-none-freebsd %s -o %t.o
 // RUN: not ld.lld -shared %t.o -o %t.so 2>&1 | FileCheck %s
-// CHECK: relocation R_AARCH64_LDST64_ABS_LO12_NC cannot be used when making a shared object; recompile with -fPIC.
+// CHECK: can't create dynamic relocation R_AARCH64_LDST64_ABS_LO12_NC against readonly segment
 
   ldr x0, [x0, :lo12:dat]
 .data
Index: lld/trunk/test/ELF/aarch64-fpic-ldst8_abs_lo12_nc.s
===================================================================
--- lld/trunk/test/ELF/aarch64-fpic-ldst8_abs_lo12_nc.s
+++ lld/trunk/test/ELF/aarch64-fpic-ldst8_abs_lo12_nc.s
@@ -1,7 +1,7 @@
 // REQUIRES: aarch64
 // RUN: llvm-mc -filetype=obj -triple=aarch64-none-freebsd %s -o %t.o
 // RUN: not ld.lld -shared %t.o -o %t.so 2>&1 | FileCheck %s
-// CHECK: relocation R_AARCH64_LDST8_ABS_LO12_NC cannot be used when making a shared object; recompile with -fPIC.
+// CHECK: can't create dynamic relocation R_AARCH64_LDST8_ABS_LO12_NC against readonly segment
 
   ldrsb x0, [x1, :lo12:dat]
 .data
Index: lld/trunk/test/ELF/copy-in-shared.s
===================================================================
--- lld/trunk/test/ELF/copy-in-shared.s
+++ lld/trunk/test/ELF/copy-in-shared.s
@@ -7,4 +7,4 @@
 
 .quad foo
 
-// CHECK: relocation R_X86_64_64 cannot be used when making a shared object; recompile with -fPIC.
+// CHECK: can't create dynamic relocation R_X86_64_64 against readonly segment
Index: lld/trunk/test/ELF/copy-rel-pie-error.s
===================================================================
--- lld/trunk/test/ELF/copy-rel-pie-error.s
+++ lld/trunk/test/ELF/copy-rel-pie-error.s
@@ -3,8 +3,8 @@
 // RUN: ld.lld %t2.o -o %t2.so -shared
 // RUN: not ld.lld %t.o %t2.so -o %t.exe -pie 2>&1 | FileCheck %s
 
-// CHECK: relocation R_X86_64_64 cannot be used when making a shared object; recompile with -fPIC.
-// CHECK: relocation R_X86_64_64 cannot be used when making a shared object; recompile with -fPIC.
+// CHECK: can't create dynamic relocation R_X86_64_64 against readonly segment
+// CHECK: can't create dynamic relocation R_X86_64_64 against readonly segment
 
 .global _start
 _start:
Index: lld/trunk/test/ELF/dynamic-reloc-in-ro.s
===================================================================
--- lld/trunk/test/ELF/dynamic-reloc-in-ro.s
+++ lld/trunk/test/ELF/dynamic-reloc-in-ro.s
@@ -5,4 +5,4 @@
 foo:
 .quad foo
 
-// CHECK: relocation R_X86_64_64 cannot be used when making a shared object; recompile with -fPIC.
+// CHECK: can't create dynamic relocation R_X86_64_64 against readonly segment
Index: lld/trunk/test/ELF/eh-frame-dyn-rel.s
===================================================================
--- lld/trunk/test/ELF/eh-frame-dyn-rel.s
+++ lld/trunk/test/ELF/eh-frame-dyn-rel.s
@@ -7,4 +7,4 @@
         .cfi_personality 0x8c, foo
         .cfi_endproc
 
-// CHECK: relocation R_X86_64_64 cannot be used when making a shared object; recompile with -fPIC.
+// CHECK: can't create dynamic relocation R_X86_64_64 against readonly segment
Index: lld/trunk/test/ELF/x86-64-reloc-32-fpic.s
===================================================================
--- lld/trunk/test/ELF/x86-64-reloc-32-fpic.s
+++ lld/trunk/test/ELF/x86-64-reloc-32-fpic.s
@@ -1,6 +1,6 @@
 # REQUIRES: x86
 # RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
 # RUN: not ld.lld -shared %t.o -o %t.so 2>&1 | FileCheck %s
-# CHECK: relocation R_X86_64_32 cannot be used when making a shared object; recompile with -fPIC.
+# CHECK: can't create dynamic relocation R_X86_64_32 against readonly segment
 
 .long _shared
Index: lld/trunk/test/ELF/x86-64-reloc-pc32-fpic.s
===================================================================
--- lld/trunk/test/ELF/x86-64-reloc-pc32-fpic.s
+++ lld/trunk/test/ELF/x86-64-reloc-pc32-fpic.s
@@ -1,6 +1,6 @@
 # REQUIRES: x86
 # RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
 # RUN: not ld.lld -shared %t.o -o %t.so 2>&1 | FileCheck %s
-# CHECK: relocation R_X86_64_PC32 cannot be used when making a shared object; recompile with -fPIC.
+# CHECK: can't create dynamic relocation R_X86_64_PC32 against readonly segment
 
 call _shared