[uClibc-cvs] uClibc/ldso/ldso/cris elfinterp.c,1.3,1.4
Erik Andersen
andersen at uclibc.org
Tue Sep 9 09:23:15 UTC 2003
Update of /var/cvs/uClibc/ldso/ldso/cris
In directory winder:/tmp/cvs-serv30772/cris
Modified Files:
elfinterp.c
Log Message:
Fix cris shared lib loader so it compiles...
Index: elfinterp.c
===================================================================
RCS file: /var/cvs/uClibc/ldso/ldso/cris/elfinterp.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- elfinterp.c 27 Aug 2003 12:59:23 -0000 1.3
+++ elfinterp.c 9 Sep 2003 09:23:12 -0000 1.4
@@ -169,6 +169,7 @@
int reloc_type;
int symtab_index;
char *strtab;
+ char *symname;
Elf32_Sym *symtab;
ELF_RELOC *rpnt;
Elf32_Addr *reloc_addr;
@@ -178,12 +179,12 @@
rel_size = rel_size / sizeof(ELF_RELOC);
symtab = (Elf32_Sym *) (tpnt->dynamic_info[DT_SYMTAB] + tpnt->loadaddr);
strtab = (char *) (tpnt->dynamic_info[DT_STRTAB] + tpnt->loadaddr);
- symname = strtab + symtab[symtab_index].st_name;
for (i = 0; i < rel_size; i++, rpnt++) {
reloc_addr = (Elf32_Addr *) (tpnt->loadaddr + (Elf32_Addr) rpnt->r_offset);
reloc_type = ELF32_R_TYPE(rpnt->r_info);
symtab_index = ELF32_R_SYM(rpnt->r_info);
+ symname = strtab + symtab[symtab_index].st_name;
/*
* Make sure we don't resolv the same symbols as we did
@@ -245,13 +246,13 @@
symtab = (Elf32_Sym *) (tpnt->dynamic_info[DT_SYMTAB] + tpnt->loadaddr);
strtab = (char *) (tpnt->dynamic_info[DT_STRTAB] + tpnt->loadaddr);
- symname = strtab + symtab[symtab_index].st_name;
for (i = 0; i < rel_size; i++, rpnt++) {
reloc_addr = (Elf32_Addr *) (tpnt->loadaddr + (Elf32_Addr) rpnt->r_offset);
reloc_type = ELF32_R_TYPE(rpnt->r_info);
symtab_index = ELF32_R_SYM(rpnt->r_info);
symbol_addr = 0;
+ symname = strtab + symtab[symtab_index].st_name;
if (!symtab_index && tpnt->libtype == program_interpreter)
continue;
@@ -363,6 +364,7 @@
symtab = (Elf32_Sym *) (tpnt->dynamic_info[DT_SYMTAB] + tpnt->loadaddr);
strtab = (char *) (tpnt->dynamic_info[DT_STRTAB] + tpnt->loadaddr);
+ symtab_index = ELF32_R_SYM(rpnt->r_info);
symname = strtab + symtab[symtab_index].st_name;
for (i = 0; i < rel_size; i++, rpnt++) {
More information about the uClibc-cvs
mailing list