[uClibc-cvs] uClibc/ldso/ldso/powerpc elfinterp.c,1.29,1.30
Erik Andersen
andersen at uclibc.org
Tue Jan 20 17:38:27 UTC 2004
Update of /var/cvs/uClibc/ldso/ldso/powerpc
In directory nail:/home/andersen/CVS/uClibc/ldso/ldso/powerpc
Modified Files:
elfinterp.c
Log Message:
Joakim Tjernlund writes:
> Is there anything I can do/provide that would assist in the solving of
> this problem on PowerPC? I'm still concerned about my lack of flash space...
Try this path. It fixes the recent ldso problems for me on my mpc860 board.
You should be able to use ldso without the dcbx patch to the kernel now.
Please report back.
Jocke
Index: elfinterp.c
===================================================================
RCS file: /var/cvs/uClibc/ldso/ldso/powerpc/elfinterp.c,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -d -r1.29 -r1.30
--- elfinterp.c 3 Dec 2003 23:28:33 -0000 1.29
+++ elfinterp.c 20 Jan 2004 17:38:25 -0000 1.30
@@ -472,7 +472,8 @@
*reloc_addr = (unsigned long)tpnt->loadaddr + (unsigned long)rpnt->r_addend;
break;
case R_PPC_ADDR32:
- *reloc_addr += symbol_addr;
+ case R_PPC_GLOB_DAT:
+ *reloc_addr = symbol_addr + (unsigned long)rpnt->r_addend;
break;
case R_PPC_ADDR16_HA:
/* XXX is this correct? */
@@ -520,9 +521,6 @@
}
break;
}
- case R_PPC_GLOB_DAT:
- *reloc_addr += symbol_addr;
- break;
case R_PPC_COPY:
// handled later
return 0;
@@ -591,7 +589,7 @@
symbol_addr, symtab[symtab_index].st_value);
#endif
_dl_memcpy((char *) reloc_addr,
- (char *) symbol_addr, symtab[symtab_index].st_size);
+ (char *) (symbol_addr + (unsigned long)rpnt->r_addend), symtab[symtab_index].st_size);
}
return goof;
More information about the uClibc-cvs
mailing list