76 lines · plain
1# REQUIRES: systemz2# RUN: llvm-mc -filetype=obj -triple=s390x-none-linux-gnu %s -o %t.o3# RUN: ld.lld -static %t.o -o %t4# RUN: ld.lld -static %t.o -o %t.apply --apply-dynamic-relocs5# RUN: llvm-readelf --section-headers --relocations --symbols %t | FileCheck %s6# RUN: llvm-readelf -x .got.plt %t | FileCheck %s --check-prefix=NO-APPLY-RELOC7# RUN: llvm-readelf -x .got.plt %t.apply | FileCheck %s --check-prefix=APPLY-RELOC8# RUN: llvm-objdump --no-print-imm-hex -d --no-show-raw-insn %t | FileCheck %s --check-prefix=DISASM9 10# CHECK: Section Headers:11# CHECK-NEXT: [Nr] Name Type Address Off Size ES Flg Lk Inf Al12# CHECK-NEXT: [ 0] NULL 0000000000000000 000000 000000 00 0 0 013# CHECK-NEXT: [ 1] .rela.dyn RELA 0000000001000158 000158 000030 18 A 0 0 814# CHECK-NEXT: [ 2] .text PROGBITS 0000000001001188 000188 00001c 00 AX 0 0 415# CHECK-NEXT: [ 3] .iplt PROGBITS 00000000010011b0 0001b0 000040 00 AX 0 0 1616# CHECK-NEXT: [ 4] .got.plt PROGBITS 00000000010021f0 0001f0 000010 00 WA 0 0 817 18# CHECK: Relocation section '.rela.dyn' at offset 0x158 contains 2 entries:19# CHECK-NEXT: Offset Info Type Symbol's Value Symbol's Name + Addend20# CHECK-NEXT: 00000000010021f0 000000000000003d R_390_IRELATIVE 100118821# CHECK-NEXT: 00000000010021f8 000000000000003d R_390_IRELATIVE 100118a22 23# CHECK: Symbol table '.symtab' contains 6 entries:24# CHECK-NEXT: Num: Value Size Type Bind Vis Ndx Name25# CHECK-NEXT: 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND26# CHECK-NEXT: 1: 0000000001000158 0 NOTYPE LOCAL HIDDEN 1 __rela_iplt_start27# CHECK-NEXT: 2: 0000000001000188 0 NOTYPE LOCAL HIDDEN 1 __rela_iplt_end28# CHECK-NEXT: 3: 0000000001001188 0 IFUNC GLOBAL DEFAULT 2 foo29# CHECK-NEXT: 4: 000000000100118a 0 IFUNC GLOBAL DEFAULT 2 bar30# CHECK-NEXT: 5: 000000000100118c 0 NOTYPE GLOBAL DEFAULT 2 _start31 32# NO-APPLY-RELOC-LABEL: Hex dump of section '.got.plt':33# NO-APPLY-RELOC-NEXT: 0x010021f0 00000000 00000000 00000000 0000000034# NO-APPLY-RELOC-EMPTY:35 36# APPLY-RELOC-LABEL: Hex dump of section '.got.plt':37# APPLY-RELOC-NEXT: 0x010021f0 00000000 01001188 00000000 0100118a38# APPLY-RELOC-EMPTY:39 40# DISASM: Disassembly of section .text:41# DISASM: 0000000001001188 <foo>:42# DISASM-NEXT: br %r1443# DISASM: 000000000100118a <bar>:44# DISASM-NEXT: br %r1445# DISASM: 000000000100118c <_start>:46# DISASM-NEXT: brasl %r14, 0x10011b047# DISASM-NEXT: brasl %r14, 0x10011d048# DISASM-NEXT: larl %r2, 0x100015849# DISASM-NEXT: larl %r2, 0x100018850# DISASM: Disassembly of section .iplt:51# DISASM: <.iplt>:52# DISASM: 10011b0: larl %r1, 0x10021f053# DISASM-NEXT: 10011b6: lg %r1, 0(%r1)54# DISASM-NEXT: 10011bc: br %r155# DISASM: 10011d0: larl %r1, 0x10021f856# DISASM-NEXT: 10011d6: lg %r1, 0(%r1)57# DISASM-NEXT: 10011dc: br %r158 59.text60.type foo STT_GNU_IFUNC61.globl foo62foo:63 br %r1464 65.type bar STT_GNU_IFUNC66.globl bar67bar:68 br %r1469 70.globl _start71_start:72 brasl %r14, foo@plt73 brasl %r14, bar@plt74 larl %r2, __rela_iplt_start75 larl %r2, __rela_iplt_end76