Hi,

In porting android to our A8 cortext based board, we have enabled TLS.
This works fine with bionic in general, however, it seems to cause problems with gdbserver.

Looking at the gdbserver source, it tries to get an address for td_thr_tls_get_addr, which is not implemented in bionics thread-db library.

Can anyone tell me if google are planning on adding support for this to their thread-db library, or give me hints on how to implement this myself?

When I last looked at this a while ago (cant remember where in the source I saw it), it looked like bionic (specifically the linker) assumed a set format and address for the TLS area, which may not be compatible with glibc (presumably what gdbserver is targetting). Certainly the function to get the TLS address i seem to remember just used a macro which gave a known address plus and offset for the TLS address. Does anyone know if just implementing the function that gdb expects to just call the tls address macro (cant remember the name off hand) would work, or would the TLS structure in memory be incompatible with gdb.

The only other alternative would be for us to disable TLS support, which other manufacturers seem to do. Can someone comment on why TLS is not gernerally enabled?

Thanks

Bob

--
unsubscribe: android-porting+unsubscr...@googlegroups.com
website: http://groups.google.com/group/android-porting

Reply via email to