Deleted Added
full compact
26c26
< * $Id: link_elf.c,v 1.5 1998/10/13 09:27:00 peter Exp $
---
> * $Id: link_elf.c,v 1.6 1998/10/15 17:16:24 peter Exp $
774c774
< symbol_name(elf_file_t ef, const Elf_Rela *rela)
---
> symbol_name(elf_file_t ef, Elf_Word r_info)
778,779c778,779
< if (ELF_R_SYM(rela->r_info)) {
< ref = ef->symtab + ELF_R_SYM(rela->r_info);
---
> if (ELF_R_SYM(r_info)) {
> ref = ef->symtab + ELF_R_SYM(r_info);
792a793
> const char *symname;
795,803c796,804
< rellim = (const Elf_Rel *) ((caddr_t) ef->rel + ef->relsize);
< for (rel = ef->rel; ef->rel != NULL && rel < rellim; rel++) {
< Elf_Rela locrela;
<
< locrela.r_info = rel->r_info;
< locrela.r_offset = rel->r_offset;
< locrela.r_addend = 0;
< if (elf_reloc(lf, &locrela, symbol_name(ef, &locrela)))
< return ENOENT;
---
> rel = ef->rel;
> if (rel) {
> rellim = (const Elf_Rel *) ((caddr_t) ef->rel + ef->relsize);
> while (rel < rellim) {
> symname = symbol_name(ef, rel->r_info);
> if (elf_reloc(lf, rel, ELF_RELOC_REL, symname))
> return ENOENT;
> rel++;
> }
807,810c808,816
< relalim = (const Elf_Rela *) ((caddr_t) ef->rela + ef->relasize);
< for (rela = ef->rela; ef->rela != NULL && rela < relalim; rela++) {
< if (elf_reloc(lf, rela, symbol_name(ef, rela)))
< return ENOENT;
---
> rela = ef->rela;
> if (rela) {
> relalim = (const Elf_Rela *) ((caddr_t) ef->rela + ef->relasize);
> while (rela < relalim) {
> symname = symbol_name(ef, rela->r_info);
> if (elf_reloc(lf, rela, ELF_RELOC_RELA, symname))
> return ENOENT;
> rela++;
> }
814,822c820,828
< rellim = (const Elf_Rel *) ((caddr_t) ef->pltrel + ef->pltrelsize);
< for (rel = ef->pltrel; ef->pltrel != NULL && rel < rellim; rel++) {
< Elf_Rela locrela;
<
< locrela.r_info = rel->r_info;
< locrela.r_offset = rel->r_offset;
< locrela.r_addend = 0;
< if (elf_reloc(lf, &locrela, symbol_name(ef, &locrela)))
< return ENOENT;
---
> rel = ef->pltrel;
> if (rel) {
> rellim = (const Elf_Rel *) ((caddr_t) ef->pltrel + ef->pltrelsize);
> while (rel < rellim) {
> symname = symbol_name(ef, rel->r_info);
> if (elf_reloc(lf, rel, ELF_RELOC_REL, symname))
> return ENOENT;
> rel++;
> }
826,829c832,840
< relalim = (const Elf_Rela *) ((caddr_t) ef->pltrela + ef->pltrelasize);
< for (rela = ef->pltrela; ef->pltrela != NULL && rela < relalim; rela++) {
< if (elf_reloc(lf, rela, symbol_name(ef, rela)))
< return ENOENT;
---
> rela = ef->pltrela;
> if (rela) {
> relalim = (const Elf_Rela *) ((caddr_t) ef->pltrela + ef->pltrelasize);
> while (rela < relalim) {
> symname = symbol_name(ef, rela->r_info);
> if (elf_reloc(lf, rela, ELF_RELOC_RELA, symname))
> return ENOENT;
> rela++;
> }