ext Daniel Jacobowitz wrote: > On Wed, Jun 25, 2008 at 07:51:10AM -0400, Anderson Lizardo wrote: >> When a library is prelinked, its section addresses are already absolute. This >> patch checks for prelinked libraries by looking at the virtual address of the >> PT_LOAD entry that has an offset equal to zero. If it is not zero, it means >> the >> library is prelinked. >> >> Note that this only affects remote backtrace for ARM, because it fills the >> struct dl_phdr_info manually with information from tdep_get_elf_image(). > > This check is not in general correct. Libraries can be linked at any > p_vaddr. 0 is traditional on most platforms, but for many years MIPS > libraries were linked at 0x5ffe0000. Also, if prelink loading fails > then glibc will relocate libraries despite their absolute addresses. > > It sounds to me like the data you're synthesizing from on-disk needs > to be adjusted.
Do you have any suggestions on how to reliably calculate absolute addresses? An alternative approach I have in mind is to peek directly at the linker structures, like it's done by GDB. Is that the only feasible general solution to the issue? Regards, -- Anderson Lizardo Instituto Nokia de Tecnologia (INdT) Manaus - Brazil _______________________________________________ Libunwind-devel mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/libunwind-devel
