TLS in ARM-nptl - a question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I  am trying to understand a  particular  program-crash  i am looking
at now, coming from  libpthread.so  library in ARM.    I  am using
NPTL and glibc  4.2.1

>From stack-trace , i figured that  pthread_self() is being called.

>From source, I saw that this calls __builtin_thread_pointer().  This
function has been synthesized in gcc-source  by a macro.

The  assembly of  the  function  __builtin_thread_pointer()  ( from
objdump of lib )   looks like

mvn  r0, 0xF000
sub  pc,  r0, 0x1F8

This  does not make sense.   I  thought of the possibility thagt
maybe  this is a address-value  which gets  relocated, but this is
text-region of a shared library ( libpthread) and so is not relocated.

I  have 2 questions  -
a)  What is the meaning  of the above  asm code ?
b)  As the program  branches to invalid address  0xE8  somewhere after
pthread_self( ),  what could be wrong ?

I guess this is some kind  of  TLS-data corruption.
I  would be reading about  TLS in ARM tomorrow.

           Thanks


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux