tags 681748 upstream + confirmed
thanks

Hello Igor,

Thanks for the excellent bug report, your simplified test case made
duplicating the issue very easy!

I took a quick look at this and right now it looks like libdwarf
simply doesn't have code to support TLS objects yet and to add the
support code would need to be written. However, I don't know the
libdwarf code well enough to say for sure, I documented everything and
submitted it upstream and hope to get a definitive answer back soon. 

The technical details are:

The error seems come up when applying all of the relocations via the
loop in apply_rela_entries(), the error is set in update_entry() both
in dwarf_elf_access.c because the is_32bit_abs_reloc() and
is_64bit_abs_reloc() only tests for direct 32 and 64 bit relocations
on AMD64. In my TLS case it fails to detect a type 21 relocation
defined in elf.h as:

#define R_X86_64_DTPOFF32       21      /* Offset in TLS block */

Because the identification functions only check for direct relocations
and don't have any code to handle TLS relocations this looks a bit
more like a feature request than a bug. I.E. it looks like code will
have to be written to add support. 

Troy

Attachment: signature.asc
Description: Digital signature

Reply via email to