| // REQUIRES: x86 | |
| // RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o | |
| // RUN: ld.lld --hash-style=sysv %t.o %S/Inputs/segment-start.script -shared -o %t.so | |
| // RUN: llvm-readobj --dyn-symbols %t.so | FileCheck %s | |
| // CHECK: Name: foobar1 | |
| // CHECK-NEXT: Value: 0x8001 | |
| // CHECK: Name: foobar2 | |
| // CHECK-NEXT: Value: 0x8002 | |
| // CHECK: Name: foobar3 | |
| // CHECK-NEXT: Value: 0x8003 | |
| // CHECK: Name: foobar4 | |
| // CHECK-NEXT: Value: 0x8004 | |
| .data | |
| .quad foobar1 | |
| .quad foobar2 | |
| .quad foobar3 | |
| .quad foobar4 | |
| // RUN: echo "SECTIONS { . = SEGMENT_START(\"foobar\", foo); }" > %t.script | |
| // RUN: not ld.lld %t.o %t.script -shared -o /dev/null 2>&1 \ | |
| // RUN: | FileCheck --check-prefix=ERR %s | |
| // ERR: {{.*}}.script:1: symbol not found: foo |