Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

#source: tlsbinpic.s
#source: tlsbin.s
#as: -little
#ld: -EL --hash-style=sysv tmpdir/tlsbin-0-dso.so
#readelf: -Ssrl
#target: sh*-*-linux* sh*-*-netbsd*

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

Section Headers:
 +\[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al
 +\[ 0\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0
 +\[ 1\] \.interp .*
 +\[ 2\] \.hash .*
 +\[ 3\] \.dynsym .*
 +\[ 4\] \.dynstr .*
 +\[ 5\] \.rela\.dyn .*
 +\[ 6\] \.rela\.plt .*
 +\[ 7\] \.plt .*
 +\[ 8\] \.text +PROGBITS .*
 +\[ 9\] \.tdata +PROGBITS .* 0+018 00 WAT +0 +0 +4
 +\[10\] \.tbss +NOBITS .* 0+010 00 WAT +0 +0 +1
#...
 +\[[0-9a-f]+\] \.got +PROGBITS .*
#...
 +\[[0-9a-f]+\] \.symtab .*
 +\[[0-9a-f]+\] \.strtab .*
 +\[[0-9a-f]+\] \.shstrtab .*
Key to Flags:
#...

Elf file type is EXEC \(Executable file\)
Entry point 0x402000
There are [0-9]+ program headers, starting at offset [0-9]+

Program Headers:
 +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
 +PHDR.*
 +INTERP.*
.*Requesting program interpreter.*
 +LOAD.*
 +LOAD.*
 +DYNAMIC.*
 +TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+18 0x0+28 R +0x4

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

Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains 4 entries:
 Offset +Info +Type +Sym\.Value +Sym\. Name \+ Addend
[0-9a-f ]+R_SH_TLS_TPOFF32 +0+ +sG3 \+ 0
[0-9a-f ]+R_SH_TLS_TPOFF32 +0+ +sG2 \+ 0
[0-9a-f ]+R_SH_TLS_TPOFF32 +0+ +sG4 \+ 0
[0-9a-f ]+R_SH_TLS_TPOFF32 +0+ +sG1 \+ 0

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

Symbol table '\.dynsym' contains [0-9]+ entries:
 +Num: +Value +Size +Type +Bind +Vis +Ndx +Name
.* NOTYPE +LOCAL +DEFAULT +UND *
.* TLS +GLOBAL +DEFAULT +UND sG3
.* TLS +GLOBAL +DEFAULT +UND sG2
.* TLS +GLOBAL +DEFAULT +UND sG4
.* FUNC +GLOBAL +DEFAULT +UND __tls_get_addr
#...
.* TLS +GLOBAL +DEFAULT +UND sG1
#pass