#source: tlspic1.s
#source: tlspic2.s
#as: --64
#ld: -shared -melf_x86_64
#readelf: -WSsrl
#target: x86_64-*-*

There are 16 section headers, starting at offset 0x[0-9a-f]+:

Section Headers:
  \[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al
  \[ 0\] +NULL +0+ 0+ 0+ 00 +0 +0 +0
  \[ 1\] .hash +.*
  \[ 2\] .dynsym +.*
  \[ 3\] .dynstr +.*
  \[ 4\] .rela.dyn +.*
  \[ 5\] .rela.plt +.*
  \[ 6\] .plt +.*
  \[ 7\] .text +PROGBITS +0+1000 0+1000 0+1ac 00 +AX +0 +0 4096
  \[ 8\] .tdata +PROGBITS +0+2011ac 0+11ac 0+60 00 WAT +0 +0 +1
  \[ 9\] .tbss +NOBITS +0+20120c 0+120c 0+20 00 WAT +0 +0 +1
  \[10\] .dynamic +DYNAMIC +0+201210 0+1210 0+130 10 +WA +3 +0 +8
  \[11\] .got +PROGBITS +0+201340 0+1340 0+90 08 +WA +0 +0 +8
  \[12\] .got.plt +PROGBITS +0+2013d0 0+13d0 0+20 08 +WA +0 +0 +8
  \[13\] .shstrtab +.*
  \[14\] .symtab +.*
  \[15\] .strtab +.*
Key to Flags:
.*
.*
.*

Elf file type is DYN \(Shared object file\)
Entry point 0x1000
There are 4 program headers, starting at offset [0-9]+

Program Headers:
  Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
  LOAD +0x0+ 0x0+ 0x0+ 0x[0-9a-f]+ 0x[0-9a-f]+ R E 0x200000
  LOAD +0x0+11ac 0x0+2011ac 0x0+2011ac 0x0+244 0x0+244 RW +0x200000
  DYNAMIC +0x0+1210 0x0+201210 0x0+201210 0x0+130 0x0+130 RW +0x8
  TLS +0x0+11ac 0x0+2011ac 0x0+2011ac 0x0+60 0x0+80 R +0x1

 Section to Segment mapping:
  Segment Sections...
   00 +.hash .dynsym .dynstr .rela.dyn .rela.plt .plt .text *
   01 +.tdata .dynamic .got .got.plt *
   02 +.dynamic *
   03 +.tdata .tbss *

Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries:
 +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
[0-9a-f ]+R_X86_64_DTPMOD64 +0+
[0-9a-f ]+R_X86_64_TPOFF64 +0+24
[0-9a-f ]+R_X86_64_TPOFF64 +0+30
[0-9a-f ]+R_X86_64_DTPMOD64 +0+
[0-9a-f ]+R_X86_64_DTPMOD64 +0+
[0-9a-f ]+R_X86_64_TPOFF64 +0+64
[0-9a-f ]+R_X86_64_TPOFF64 +0+50
[0-9a-f ]+R_X86_64_TPOFF64 +0+70
[0-9a-f ]+R_X86_64_DTPMOD64 +0+
[0-9a-f ]+R_X86_64_TPOFF64 +0+44
[0-9a-f ]+R_X86_64_TPOFF64 +0+10 sg5 \+ 0
[0-9a-f ]+R_X86_64_DTPMOD64 +0+ sg1 \+ 0
[0-9a-f ]+R_X86_64_DTPOFF64 +0+ sg1 \+ 0
[0-9a-f ]+R_X86_64_TPOFF64 +0+4 sg2 \+ 0

Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 1 entries:
 +Offset +Info +Type +Symbol's Value  Symbol's Name \+ Addend
[0-9a-f ]+R_X86_64_JUMP_SLOT +0+ __tls_get_addr \+ 0

Symbol table '.dynsym' contains [0-9]+ entries:
 +Num: +Value +Size Type +Bind +Vis +Ndx Name
.* NOTYPE  LOCAL  DEFAULT  UND *
.* SECTION LOCAL  DEFAULT +7 *
.* SECTION LOCAL  DEFAULT +8 *
.* TLS +GLOBAL DEFAULT +8 sg8
.* TLS +GLOBAL DEFAULT +8 sg3
.* TLS +GLOBAL DEFAULT +8 sg4
.* TLS +GLOBAL DEFAULT +8 sg5
.* NOTYPE  GLOBAL DEFAULT  UND __tls_get_addr
.* TLS +GLOBAL DEFAULT +8 sg1
.* FUNC +GLOBAL DEFAULT +7 fn1
.* NOTYPE  GLOBAL DEFAULT  ABS __bss_start
.* TLS +GLOBAL DEFAULT +8 sg2
.* TLS +GLOBAL DEFAULT +8 sg6
.* TLS +GLOBAL DEFAULT +8 sg7
.* NOTYPE  GLOBAL DEFAULT  ABS _edata
.* NOTYPE  GLOBAL DEFAULT  ABS _end

Symbol table '.symtab' contains 52 entries:
 +Num: +Value +Size Type +Bind +Vis +Ndx Name
.* NOTYPE  LOCAL  DEFAULT  UND *
.* SECTION LOCAL  DEFAULT +1 *
.* SECTION LOCAL  DEFAULT +2 *
.* SECTION LOCAL  DEFAULT +3 *
.* SECTION LOCAL  DEFAULT +4 *
.* SECTION LOCAL  DEFAULT +5 *
.* SECTION LOCAL  DEFAULT +6 *
.* SECTION LOCAL  DEFAULT +7 *
.* SECTION LOCAL  DEFAULT +8 *
.* SECTION LOCAL  DEFAULT +9 *
.* SECTION LOCAL  DEFAULT +10 *
.* SECTION LOCAL  DEFAULT +11 *
.* SECTION LOCAL  DEFAULT +12 *
.* TLS +LOCAL  DEFAULT +8 sl1
.* TLS +LOCAL  DEFAULT +8 sl2
.* TLS +LOCAL  DEFAULT +8 sl3
.* TLS +LOCAL  DEFAULT +8 sl4
.* TLS +LOCAL  DEFAULT +8 sl5
.* TLS +LOCAL  DEFAULT +8 sl6
.* TLS +LOCAL  DEFAULT +8 sl7
.* TLS +LOCAL  DEFAULT +8 sl8
.* TLS +LOCAL  HIDDEN +9 sH1
.* OBJECT +LOCAL +HIDDEN +ABS _DYNAMIC
.* TLS +LOCAL  HIDDEN +8 sh3
.* TLS +LOCAL  HIDDEN +9 sH2
.* TLS +LOCAL  HIDDEN +9 sH7
.* TLS +LOCAL  HIDDEN +8 sh7
.* TLS +LOCAL  HIDDEN +8 sh8
.* TLS +LOCAL  HIDDEN +9 sH4
.* TLS +LOCAL  HIDDEN +8 sh4
.* TLS +LOCAL  HIDDEN +9 sH3
.* TLS +LOCAL  HIDDEN +8 sh5
.* TLS +LOCAL  HIDDEN +9 sH5
.* TLS +LOCAL  HIDDEN +9 sH6
.* TLS +LOCAL  HIDDEN +9 sH8
.* TLS +LOCAL  HIDDEN +8 sh1
.* OBJECT  LOCAL  HIDDEN  ABS _GLOBAL_OFFSET_TABLE_
.* TLS +LOCAL  HIDDEN +8 sh2
.* TLS +LOCAL  HIDDEN +8 sh6
.* TLS +GLOBAL DEFAULT +8 sg8
.* TLS +GLOBAL DEFAULT +8 sg3
.* TLS +GLOBAL DEFAULT +8 sg4
.* TLS +GLOBAL DEFAULT +8 sg5
.* NOTYPE  GLOBAL DEFAULT  UND __tls_get_addr
.* TLS +GLOBAL DEFAULT +8 sg1
.* FUNC +GLOBAL DEFAULT +7 fn1
.* NOTYPE  GLOBAL DEFAULT  ABS __bss_start
.* TLS +GLOBAL DEFAULT +8 sg2
.* TLS +GLOBAL DEFAULT +8 sg6
.* TLS +GLOBAL DEFAULT +8 sg7
.* NOTYPE  GLOBAL DEFAULT  ABS _edata
.* NOTYPE  GLOBAL DEFAULT  ABS _end
