diff options
Diffstat (limited to 'lld/test/elf/tls-tbss-size.test')
| -rw-r--r-- | lld/test/elf/tls-tbss-size.test | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/lld/test/elf/tls-tbss-size.test b/lld/test/elf/tls-tbss-size.test new file mode 100644 index 00000000000..52550f7d394 --- /dev/null +++ b/lld/test/elf/tls-tbss-size.test @@ -0,0 +1,177 @@ +# This test verify if external TLS non initialized variables (tbss) are +# accounted in TBSS segment size + +# The input file 'test/elf/Inputs/tls-tbss-size.yaml' declares: +# +# __thread int t0; +# __thread int t1; +# __thread int t2; +# __thread int t3; +# +# And the 'test/elf/tls-tbss-size.test' defines: +# +# __thread int t4; +# __thread int t5; +# __thread int t6; +# __thread int t7; +# +# __thread int t8 = 3; +# __thread int t9 = 4; +# __thread int t10 = 5; +# __thread int t11 = 6; + +#RUN: yaml2obj -format=elf -o=%t-t1.o %p/Inputs/tls-tbss-size.yaml +#RUN: yaml2obj -format=elf -o=%t-t0.o %s +#RUN: lld -flavor gnu -target x86_64-linux --noinhibit-exec -o %t.exe %t-t0.o %t-t1.o +#RUN: llvm-readobj --sections %t.exe | FileCheck %s + +#CHECK: Sections [ +#CHECK: Section { +#CHECK: Index: 9 +#CHECK: Name: .tdata (71) +#CHECK: Size: 16 +#CHECK: } +#CHECK: Section { +#CHECK: Index: 10 +#CHECK: Name: .tbss (78) +#CHECK: Size: 32 +#CHECK: } + +--- +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + OSABI: ELFOSABI_GNU + Type: ET_REL + Machine: EM_X86_64 +Sections: + - Name: .text + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC, SHF_EXECINSTR ] + AddressAlign: 0x0000000000000010 + Content: 488B050000000064C70001000000488B050000000064C70002000000488B050000000064C70003000000488B050000000064C7000400000064C70425000000000500000064C70425000000000600000064C70425000000000700000064C70425000000000800000031C0C3 + - Name: .rela.text + Type: SHT_RELA + Link: .symtab + AddressAlign: 0x0000000000000008 + Info: .text + Relocations: + - Offset: 0x0000000000000003 + Symbol: t0 + Type: R_X86_64_GOTTPOFF + Addend: -4 + - Offset: 0x0000000000000011 + Symbol: t1 + Type: R_X86_64_GOTTPOFF + Addend: -4 + - Offset: 0x000000000000001F + Symbol: t2 + Type: R_X86_64_GOTTPOFF + Addend: -4 + - Offset: 0x000000000000002D + Symbol: t3 + Type: R_X86_64_GOTTPOFF + Addend: -4 + - Offset: 0x000000000000003C + Symbol: t4 + Type: R_X86_64_TPOFF32 + - Offset: 0x0000000000000048 + Symbol: t5 + Type: R_X86_64_TPOFF32 + - Offset: 0x0000000000000054 + Symbol: t6 + Type: R_X86_64_TPOFF32 + - Offset: 0x0000000000000060 + Symbol: t7 + Type: R_X86_64_TPOFF32 + - Name: .data + Type: SHT_PROGBITS + Flags: [ SHF_WRITE, SHF_ALLOC ] + AddressAlign: 0x0000000000000004 + Content: '' + - Name: .bss + Type: SHT_NOBITS + Flags: [ SHF_WRITE, SHF_ALLOC ] + AddressAlign: 0x0000000000000004 + Content: '' + - Name: .tdata + Type: SHT_PROGBITS + Flags: [ SHF_WRITE, SHF_ALLOC, SHF_TLS ] + AddressAlign: 0x0000000000000004 + Content: '03000000040000000500000006000000' + - Name: .tbss + Type: SHT_NOBITS + Flags: [ SHF_WRITE, SHF_ALLOC, SHF_TLS ] + AddressAlign: 0x0000000000000004 + Content: 00636C616E672076657273696F6E2033 + - Name: .note.GNU-stack + Type: SHT_PROGBITS + AddressAlign: 0x0000000000000001 + Content: '' + - Name: .eh_frame + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC ] + AddressAlign: 0x0000000000000008 + Content: 1400000000000000017A5200017810011B0C070890010000140000001C000000000000006B0000000000000000000000 +Symbols: + Local: + - Name: .tbss + Type: STT_TLS + Section: .tbss + - Name: .tdata + Type: STT_TLS + Section: .tdata + - Type: STT_SECTION + Section: .text + Global: + - Name: main + Type: STT_FUNC + Section: .text + Size: 0x000000000000006B + - Name: t0 + Type: STT_TLS + - Name: t1 + Type: STT_TLS + - Name: t10 + Type: STT_TLS + Section: .tdata + Value: 0x0000000000000008 + Size: 0x0000000000000004 + - Name: t11 + Type: STT_TLS + Section: .tdata + Value: 0x000000000000000C + Size: 0x0000000000000004 + - Name: t2 + Type: STT_TLS + - Name: t3 + Type: STT_TLS + - Name: t4 + Type: STT_TLS + Section: .tbss + Size: 0x0000000000000004 + - Name: t5 + Type: STT_TLS + Section: .tbss + Value: 0x0000000000000004 + Size: 0x0000000000000004 + - Name: t6 + Type: STT_TLS + Section: .tbss + Value: 0x0000000000000008 + Size: 0x0000000000000004 + - Name: t7 + Type: STT_TLS + Section: .tbss + Value: 0x000000000000000C + Size: 0x0000000000000004 + - Name: t8 + Type: STT_TLS + Section: .tdata + Size: 0x0000000000000004 + - Name: t9 + Type: STT_TLS + Section: .tdata + Value: 0x0000000000000004 + Size: 0x0000000000000004 +... |

