[ELF][test] Restore linkerscript/symbol-location.s to test getLinkerScriptLocation()

The test (the only test that checks getLinkerScriptLocation()) deleted
by r358652 can be restored by replacing R_X86_64_PLT32 with
R_X86_64_PC32, and changing -pie to -shared (preemptable). Then, the
symbol will not be a link-time constant and a -fPIC error will be
issued.

llvm-svn: 362207
This commit is contained in:
Fangrui Song 2019-05-31 08:20:43 +00:00
parent 9058b50fb2
commit 750d148e8f
1 changed files with 16 additions and 0 deletions

View File

@ -0,0 +1,16 @@
# REQUIRES: x86
# RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t.o
# RUN: echo 'foo = _start;' > %t.script
# RUN: not ld.lld -shared -T %t.script %t.o -o /dev/null 2>&1 | FileCheck %s
## Here we check that symbol 'foo' location is reported properly.
# CHECK: error: relocation R_X86_64_PC32 cannot be used against symbol foo
# CHECK: >>> defined in {{.*}}.script:1
# CHECK: >>> referenced by {{.*}}.o:(.text+0x1)
.text
.globl _start
_start:
.byte 0xe8
.long foo - .