summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorM. Mohan Kumar <mohan@in.ibm.com>2009-08-10 19:44:42 +0530
committerSimon Horman <horms@verge.net.au>2009-08-13 09:18:27 +1000
commitb45bdabadd1b81777abea001ea7363a430f9e652 (patch)
treea22ee04edc3a711b1a32cb199752654e729f0205
parent3e804a5792dbf3c237789de8d6a86ffffca8e084 (diff)
Support R_PPC64_REL32 relocation type
[PATCH 2/2] Support R_PPC64_REL32 relocation type gcc-4.4 compiler creates R_PPC64_REL32 relocation type in the ppc64 purgatory code. Add support to handle R_PPC64_REL32 relocation type. Signed-off-by: M. Mohan Kumar <mohan@in.ibm.com> Signed-off-by: Simon Horman <horms@verge.net.au>
-rw-r--r--kexec/arch/ppc64/kexec-elf-rel-ppc64.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/kexec/arch/ppc64/kexec-elf-rel-ppc64.c b/kexec/arch/ppc64/kexec-elf-rel-ppc64.c
index 80543af..97aa34c 100644
--- a/kexec/arch/ppc64/kexec-elf-rel-ppc64.c
+++ b/kexec/arch/ppc64/kexec-elf-rel-ppc64.c
@@ -62,6 +62,10 @@ void machine_apply_elf_rel(struct mem_ehdr *ehdr, unsigned long r_type,
*(uint64_t *)location = value;
break;
+ case R_PPC64_REL32:
+ *(uint32_t *)location = value - (uint32_t)location;
+ break;
+
case R_PPC64_TOC:
*(uint64_t *)location = my_r2(ehdr);
break;