[uClibc-cvs] cvs commit to uClibc/ldso/ldso/powerpc by andersen
andersen at codepoet.org
andersen at codepoet.org
Tue Nov 12 20:09:30 UTC 2002
Repository: uClibc/ldso/ldso/powerpc
who: andersen
time: Tue Nov 12 13:09:29 MST 2002
Log Message:
A powerpc patch from Ronald Wahl:
Ok, now i got it after a day of work.
I have had a look into glibc and found the following:
sysdeps/powerpc/dl-machine.c:
...
case R_PPC_JMP_SLOT:
/* It used to be that elf_machine_fixup_plt was used here,
but that doesn't work when ld.so relocates itself
for the second time. On the bright side, there's
no need to worry about thread-safety here. */
{
Elf32_Sword delta = finaladdr - (Elf32_Word) reloc_addr;
...
The comment made me suspicious. The same position in uClibc looks like this:
ldso/ldso/powerpc/elfinterp.c:
...
case R_PPC_JMP_SLOT:
{
unsigned long targ_addr = (unsigned long)_dl_linux_resolve;
int delta = targ_addr - (unsigned long)reloc_addr;
...
When I change it to the following it works:
...
case R_PPC_JMP_SLOT:
{
unsigned long targ_addr = *reloc_addr;
int delta = targ_addr - (unsigned long)reloc_addr;
...
I hope it will not break anything. Can anyone review this change and
commit it into CVS?
thanks,
ron
Files:
changed: elfinterp.c
More information about the uClibc-cvs
mailing list