From: Camm Maguire Date: Wed, 18 Dec 2019 20:14:09 +0000 (+0000) Subject: Version_2_6_13pre87 X-Git-Tag: archive/raspbian/2.6.12-91+rpi1^2~2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=6fc4480d1336a70985f8a3793780ad035eae98ef;p=gcl.git Version_2_6_13pre87 Gbp-Pq: Name Version_2_6_13pre87 --- diff --git a/h/elf64_ppcle_reloc.h b/h/elf64_ppcle_reloc.h index 965f1966..87c45087 100644 --- a/h/elf64_ppcle_reloc.h +++ b/h/elf64_ppcle_reloc.h @@ -10,32 +10,38 @@ case R_PPC64_PLT16_HA: gote=got+sym->st_size-1; *gote=s+a; + massert(toc); store_val(where,MASK(16),ha((ul)gote-toc->st_value)); break; case R_PPC64_PLT16_LO_DS: gote=got+sym->st_size-1; *gote=s+a; + massert(toc); store_val(where,MASK(16),lo((ul)gote-toc->st_value));/*>>2*/ break; case R_PPC64_PLTSEQ: case R_PPC64_PLTCALL: break; case R_PPC64_TOC16_HA: + massert(toc); store_val(where,MASK(16),ha(s+a-toc->st_value)); break; case R_PPC64_TOC16_LO_DS: + massert(toc); store_val(where,MASK(16),lo(s+a-toc->st_value));/*>>2*/ break; case R_PPC64_REL16_LO: store_val(where,MASK(16),lo(s+a-p)); break; case R_PPC64_TOC16_LO: + massert(toc); store_val(where,MASK(16),lo(s+a-toc->st_value)); break; case R_PPC64_ADDR64: store_val(where,~0L,(s+a)); break; case R_PPC64_TOC: + massert(toc); store_val(where,~0L,toc->st_value); break; case R_PPC64_REL32: diff --git a/h/elf64_ppcle_reloc_special.h b/h/elf64_ppcle_reloc_special.h index 26cb672f..12c9f792 100644 --- a/h/elf64_ppcle_reloc_special.h +++ b/h/elf64_ppcle_reloc_special.h @@ -60,13 +60,12 @@ label_got_symbols(void *v1,Shdr *sec1,Shdr *sece,Sym *sym1,Sym *syme,const char Shdr *sec; Sym *sym; - massert(sec=get_section(".toc",sec1,sece,sn)); - - for (sym=sym1;symst_name; if (!strcmp(s,".TOC.") || !strcmp(s,".toc.")) { toc=sym; toc->st_info=ELF_ST_INFO(STB_LOCAL,ELF_ST_TYPE(sym->st_info)); + massert((sec=get_section(".bss",sec1,sece,sn))); toc->st_shndx=sec-sec1; } }