George Rimar | 0a7412f | 2017-03-09 08:48:34 | [diff] [blame] | 1 | # REQUIRES: x86 |
| 2 | # RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o |
Rui Ueyama | b3ee432 | 2018-03-01 23:01:41 | [diff] [blame] | 3 | # RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %p/Inputs/ztext.s -o %t2.o |
Rafael Espindola | d3c22f0 | 2017-03-14 22:50:07 | [diff] [blame] | 4 | # RUN: ld.lld %t2.o -o %t2.so -shared |
Rui Ueyama | 88fe5c9 | 2018-04-20 21:24:08 | [diff] [blame] | 5 | |
Rafael Espindola | d3c22f0 | 2017-03-14 22:50:07 | [diff] [blame] | 6 | # RUN: ld.lld -z notext %t.o %t2.so -o %t -shared |
Fangrui Song | b159906 | 2019-05-01 05:49:01 | [diff] [blame^] | 7 | # RUN: llvm-readobj --dynamic-table -r %t | FileCheck %s |
Rafael Espindola | d3c22f0 | 2017-03-14 22:50:07 | [diff] [blame] | 8 | # RUN: ld.lld -z notext %t.o %t2.so -o %t2 -pie |
Fangrui Song | b159906 | 2019-05-01 05:49:01 | [diff] [blame^] | 9 | # RUN: llvm-readobj --dynamic-table -r %t2 | FileCheck %s |
Rafael Espindola | d3c22f0 | 2017-03-14 22:50:07 | [diff] [blame] | 10 | # RUN: ld.lld -z notext %t.o %t2.so -o %t3 |
Fangrui Song | b159906 | 2019-05-01 05:49:01 | [diff] [blame^] | 11 | # RUN: llvm-readobj --dynamic-table -r %t3 | FileCheck --check-prefix=STATIC %s |
Rafael Espindola | d3c22f0 | 2017-03-14 22:50:07 | [diff] [blame] | 12 | |
Rui Ueyama | 88fe5c9 | 2018-04-20 21:24:08 | [diff] [blame] | 13 | # RUN: not ld.lld %t.o %t2.so -o %t -shared 2>&1 | FileCheck --check-prefix=ERR %s |
| 14 | # RUN: not ld.lld -z text %t.o %t2.so -o %t -shared 2>&1 | FileCheck --check-prefix=ERR %s |
| 15 | # ERR: error: can't create dynamic relocation |
| 16 | |
Rafael Espindola | d3c22f0 | 2017-03-14 22:50:07 | [diff] [blame] | 17 | # If the preference is to have text relocations, don't create plt of copy relocations. |
George Rimar | 0a7412f | 2017-03-09 08:48:34 | [diff] [blame] | 18 | |
| 19 | # CHECK: Relocations [ |
Rui Ueyama | b3ee432 | 2018-03-01 23:01:41 | [diff] [blame] | 20 | # CHECK-NEXT: Section {{.*}} .rela.dyn { |
| 21 | # CHECK-NEXT: 0x1000 R_X86_64_RELATIVE - 0x1000 |
| 22 | # CHECK-NEXT: 0x1008 R_X86_64_64 bar 0x0 |
| 23 | # CHECK-NEXT: 0x1010 R_X86_64_PC64 zed 0x0 |
| 24 | # CHECK-NEXT: } |
| 25 | # CHECK-NEXT: ] |
Rui Ueyama | 7c18abf | 2018-03-01 22:56:52 | [diff] [blame] | 26 | |
George Rimar | 0a7412f | 2017-03-09 08:48:34 | [diff] [blame] | 27 | # CHECK: DynamicSection [ |
Rui Ueyama | 7c18abf | 2018-03-01 22:56:52 | [diff] [blame] | 28 | # CHECK: FLAGS TEXTREL |
| 29 | # CHECK: TEXTREL 0x0 |
George Rimar | 0a7412f | 2017-03-09 08:48:34 | [diff] [blame] | 30 | |
Rafael Espindola | d3c22f0 | 2017-03-14 22:50:07 | [diff] [blame] | 31 | # STATIC: Relocations [ |
Rui Ueyama | b3ee432 | 2018-03-01 23:01:41 | [diff] [blame] | 32 | # STATIC-NEXT: Section {{.*}} .rela.dyn { |
| 33 | # STATIC-NEXT: 0x201008 R_X86_64_64 bar 0x0 |
| 34 | # STATIC-NEXT: 0x201010 R_X86_64_PC64 zed 0x0 |
| 35 | # STATIC-NEXT: } |
| 36 | # STATIC-NEXT: ] |
Rui Ueyama | 7c18abf | 2018-03-01 22:56:52 | [diff] [blame] | 37 | |
Rafael Espindola | d3c22f0 | 2017-03-14 22:50:07 | [diff] [blame] | 38 | # STATIC: DynamicSection [ |
Rui Ueyama | 7c18abf | 2018-03-01 22:56:52 | [diff] [blame] | 39 | # STATIC: FLAGS TEXTREL |
| 40 | # STATIC: TEXTREL 0x0 |
Rafael Espindola | d3c22f0 | 2017-03-14 22:50:07 | [diff] [blame] | 41 | |
George Rimar | 0a7412f | 2017-03-09 08:48:34 | [diff] [blame] | 42 | foo: |
| 43 | .quad foo |
Rafael Espindola | d3c22f0 | 2017-03-14 22:50:07 | [diff] [blame] | 44 | .quad bar |
| 45 | .quad zed - . |