|
From: John R. <jr...@Bi...> - 2006-12-31 18:58:21
|
Bart Van Assche wrote: > There is one GOT entry per shared library function, and these entries are > shared over threads. Does anyone have a suggestion on how I can find out > the address range of all GOT entries ? Then I can easily suppress data > races triggered on the GOT. Such entries are marked with a relocation type such as R_386_JUMP_SLOT in a table described by DT_JMPREL and DT_PLTRELSZ, which can be found in a PT_DYNAMIC segment. Peruse the output from an example such as: readelf --headers --dynamic --reloc /bin/date and refer to #include <elf.h> for declarations. There can be adventure here. Both ld-linux.so and prelink may relocate various items at varying times, and in the past the conventions have changed from one release of glibc to another. -- |