This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: LD_BIND_NOT on ia64 and hppa? (profiling libc)


On Fri, Jan 02, 2004 at 01:40:04PM -0800, Roland McGrath wrote:
> fixup/profile_fixup are internal functions, called only by your asm code
> (ELF_MACHINE_RUNTIME_TRAMPOLINE).  They can return whatever you want,
> controlled by elf_machine_fixup_plt.  On IA64, they return the descriptor,
> and the asm gets the gp and pc from it.

True. Though the goal is to create some generic code that everyone can
leverage. Some minor changes and the profile_fixup code can work for all 
arches. Case in point ia64 apps crash when using LD_PROFILE in debian.

I have a patch where I make l_reloc_result the size of a plt entry, as 
defined by the arch, and then I pass the index onto elf_machine_fixup_plt. 
Thus the call is made from the cache, and subsequent calls still go through
the trampoline. In such a case both profile_fixup and fixup look almost 
*identical*.

This would fix ia64 and hppa for the LD_PROFILE case.

Is there anything wrong with such a change?

c.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]