summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2010-08-26 08:55:28 +0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2010-08-26 08:55:28 +0000
commitf78ceb56774f28d3652535153f0d54f37be3ded8 (patch)
treeab59ff3eee59e2b0bdc28bdaaad1b2d9dbf21c39 /src
parent396955bb71e5f398e4e0864388b8e47040e34242 (diff)
* Update DT_RELA.
Diffstat (limited to 'src')
-rw-r--r--src/patchelf.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/patchelf.cc b/src/patchelf.cc
index ccd27ff..09a52fe 100644
--- a/src/patchelf.cc
+++ b/src/patchelf.cc
@@ -774,7 +774,8 @@ void ElfFile<ElfFileParamNames>::rewriteHeaders(Elf_Addr phdrAddress)
if (!shdr) error("cannot find .rel.dyn or .rel.got");
dyn->d_un.d_ptr = shdr->sh_addr;
}
- /* should probably update DT_RELA */
+ else if (d_tag == DT_RELA)
+ dyn->d_un.d_ptr = findSection(".rela.dyn").sh_addr; /* PPC Linux */
else if (d_tag == DT_VERNEED)
dyn->d_un.d_ptr = findSection(".gnu.version_r").sh_addr;
else if (d_tag == DT_VERSYM)