On Wed, Apr 11, 2007 at 03:30:00AM -0500, Milton Miller wrote: > > The @ha relocation is supposed to account for the @l relocation being > a signed quantity by adding 1 if the msb of @l is set. > > The trick of adding 0x8000 stolen from the linux kernel file > arch/powerpc/kernel/module_64.c which credits binutils. > > Signed-off-by: Milton Miller <[EMAIL PROTECTED]> > Acked-by: Mohan Kumar M <[EMAIL PROTECTED]>
Cross checked with PPC64 ELF ABI also. > --- > This relocation is used in v2wrap.S to hold and release the slave cpus. > Without this fix the memory location may be 64k off the initialized variable > which is checked against 0. > > > --- kexec-tools-testing/kexec/arch/ppc64/kexec-elf-rel-ppc64.c.orig > 2007-04-10 22:29:59.000000000 -0500 > +++ kexec-tools-testing/kexec/arch/ppc64/kexec-elf-rel-ppc64.c > 2007-04-10 22:29:59.000000000 -0500 > @@ -97,7 +97,7 @@ void machine_apply_elf_rel(struct mem_eh > break; > > case R_PPC64_ADDR16_HA: > - *(uint16_t *)location = ((value>>16) & 0xffff); > + *(uint16_t *)location = (((value+0x8000)>>16) & 0xffff); > break; > > case R_PPC64_ADDR16_HIGHEST: _______________________________________________ fastboot mailing list [EMAIL PROTECTED] https://lists.linux-foundation.org/mailman/listinfo/fastboot
