blob: 75a48099f50892b3a5d4a11a4a25cdf35e2b291d [file] [log] [blame]
# REQUIRES: x86
# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
# RUN: ld.lld %t.o -r -o %t.ro
# RUN: llvm-readelf -S %t.ro | FileCheck %s
# RUN: llvm-objdump -s %t.ro | FileCheck %s --check-prefix=OBJDUMP
# RUN: ld.lld %t.o -o %t
# RUN: llvm-readelf -S %t | FileCheck %s --check-prefix=CHECK-PDE
# CHECK: [Nr] Name Type Address Off Size ES Flg Lk Inf Al
# CHECK-NEXT: [ 0] NULL 0000000000000000 000000 000000 00 0 0 0
# CHECK-NEXT: [ 1] .text PROGBITS 0000000000000000 000040 000000 00 AX 0 0 4
# CHECK-NEXT: [ 2] .rodata.1 PROGBITS 0000000000000000 000040 000004 04 AM 0 0 4
# CHECK-NEXT: [ 3] .rodata.2 PROGBITS 0000000000000000 000048 000008 08 AM 0 0 8
# CHECK-NEXT: [ 4] .rodata.cst8 PROGBITS 0000000000000000 000050 000010 08 AM 0 0 1
# CHECK-NEXT: [ 5] .rela.rodata.cst8 RELA 0000000000000000 000068 000030 18 I 9 4 8
# CHECK-NEXT: [ 6] .cst4 PROGBITS 0000000000000000 000060 000008 04 AM 0 0 1
# CHECK-NEXT: [ 7] .rela.cst4 RELA 0000000000000000 000098 000030 18 I 9 6 8
# OBJDUMP: Contents of section .rodata.1:
# OBJDUMP-NEXT: 0000 42000000 B...
# OBJDUMP-NEXT: Contents of section .rodata.2:
# OBJDUMP-NEXT: 0000 42000000 42000000 B...B...
# OBJDUMP-NEXT: Contents of section .rodata.cst8:
# OBJDUMP-NEXT: 0000 00000000 00000000 00000000 00000000 ................
# OBJDUMP: Contents of section .cst4:
# OBJDUMP-NEXT: 0000 00000000 00000000 ........
# CHECK-PDE: [ 2] .cst4 PROGBITS 0000000000200140 000140 000008 04 AM 0 0 1
foo:
.section .rodata.1,"aM",@progbits,4
.align 4
.long 0x42
.long 0x42
.long 0x42
.section .rodata.2,"aM",@progbits,8
.align 8
.long 0x42
.long 0x42
.long 0x42
.long 0x42
## Test that we keep a SHT_REL[A] section which relocates a SHF_MERGE section
## in -r mode. The relocated SHF_MERGE section is handled as non-mergeable.
.section .rodata.cst8,"aM",@progbits,8,unique,0
.quad foo
.section .rodata.cst8,"aM",@progbits,8,unique,1
.quad foo
.section .cst4,"aM",@progbits,4,unique,0
.long foo
.section .cst4,"aM",@progbits,4,unique,1
.long foo