From b76b3fcd18d8c7e0ed25cccc355f6f0192c1e83b Mon Sep 17 00:00:00 2001
From: David Schleef <ds@schleef.org>
Date: Mon, 26 Nov 2001 09:00:08 +0000
Subject: Fix buggy R_PPC_RELATIVE relocation.  Symptom was that strings
 internal to a library were not relocated correctly, specifically
 sys_errlist[].

---
 ldso/ldso/powerpc/elfinterp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ldso/ldso/powerpc/elfinterp.c b/ldso/ldso/powerpc/elfinterp.c
index 36840fac1..db53e8f46 100644
--- a/ldso/ldso/powerpc/elfinterp.c
+++ b/ldso/ldso/powerpc/elfinterp.c
@@ -380,7 +380,7 @@ int _dl_parse_relocation_information(struct elf_resolve *tpnt,
 			}
 			break;
 		case R_PPC_RELATIVE:
-			*reloc_addr += (unsigned long)tpnt->loadaddr + addend;
+			*reloc_addr = (unsigned long)tpnt->loadaddr + addend;
 			break;
 		case R_PPC_ADDR32:
 			*reloc_addr += symbol_addr;
-- 
cgit v1.2.3