72 lines · plain
1// REQUIRES: x862// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t3// RUN: ld.lld %t -o %tout4// RUN: llvm-readobj -S %tout | FileCheck --check-prefixes=CHECK,CHECK1 %s5// RUN: echo "SECTIONS { \6// RUN: . = 0x201000; \7// RUN: .text : { *(.text) } \8// RUN: . = 0x202000; \9// RUN: .tdata : { *(.tdata) } \10// RUN: .tbss : { *(.tbss) } \11// RUN: .data.rel.ro : { *(.data.rel.ro) } \12// RUN: }" > %t.script13// RUN: ld.lld -T %t.script %t -o %tout214// RUN: llvm-readobj -S %tout2 | FileCheck --check-prefixes=CHECK,CHECK2 %s15 .global _start16_start:17 retq18 19 .section .tdata,"awT",@progbits20 .align 421 .long 4222 23 .section .tbss,"awT",@nobits24 .align 1625 .zero 1626 27 .section .data.rel.ro,"aw",@progbits28 .long 129 30 31// Test that .tbss doesn't show up in the offset or in the address. If this32// gets out of sync what we get a runtime is different from what the section33// table says.34 35// CHECK: Name: .tdata36// CHECK-NEXT: Type: SHT_PROGBITS37// CHECK-NEXT: Flags [38// CHECK-NEXT: SHF_ALLOC39// CHECK-NEXT: SHF_TLS40// CHECK-NEXT: SHF_WRITE41// CHECK-NEXT: ]42// CHECK1-NEXT: Address: 0x2021D043// CHECK1-NEXT: Offset: 0x1D044// CHECK2-NEXT: Address: 0x20200045// CHECK2-NEXT: Offset: 0x200046// CHECK-NEXT: Size: 447 48// CHECK: Name: .tbss49// CHECK-NEXT: Type: SHT_NOBITS50// CHECK-NEXT: Flags [51// CHECK-NEXT: SHF_ALLOC52// CHECK-NEXT: SHF_TLS53// CHECK-NEXT: SHF_WRITE54// CHECK-NEXT: ]55// CHECK1-NEXT: Address: 0x2021E056// CHECK1-NEXT: Offset: 0x1D457// CHECK2-NEXT: Address: 0x20201058// CHECK2-NEXT: Offset: 0x200459// CHECK-NEXT: Size: 1660 61// CHECK: Name: .data.rel.ro62// CHECK-NEXT: Type: SHT_PROGBITS63// CHECK-NEXT: Flags [64// CHECK-NEXT: SHF_ALLOC65// CHECK-NEXT: SHF_WRITE66// CHECK-NEXT: ]67// CHECK1-NEXT: Address: 0x2021D468// CHECK1-NEXT: Offset: 0x1D469// CHECK2-NEXT: Address: 0x20200470// CHECK2-NEXT: Offset: 0x200471// CHECK-NEXT: Size: 472