summaryrefslogtreecommitdiff
path: root/linker/linker.cpp
diff options
context:
space:
mode:
authorDmitriy Ivanov <dimitry@google.com>2014-10-06 11:30:43 -0700
committerDmitriy Ivanov <dimitry@google.com>2014-10-06 11:32:19 -0700
commit513e29e16f16a6ffa1636ba282d599fd6b437aeb (patch)
tree331ce7eb1997c4224d213eb611853b04a06fea90 /linker/linker.cpp
parent6d569b92012543a297dccf2dfeaa648d07b3c133 (diff)
Resolve "unused DT entry" warnings for x86_64
Change-Id: I3a2c87bf6e6259313cd9203389623f13b7405ef3
Diffstat (limited to 'linker/linker.cpp')
-rw-r--r--linker/linker.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/linker/linker.cpp b/linker/linker.cpp
index be2b45ac5..fc4617211 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -1936,14 +1936,19 @@ bool soinfo::PrelinkImage() {
return false;
}
break;
-#if !defined(__LP64__)
case DT_PLTREL:
+#if defined(USE_RELA)
+ if (d->d_un.d_val != DT_RELA) {
+ DL_ERR("unsupported DT_PLTREL in \"%s\"; expected DT_RELA", name);
+ return false;
+ }
+#else
if (d->d_un.d_val != DT_REL) {
- DL_ERR("unsupported DT_RELA in \"%s\"", name);
+ DL_ERR("unsupported DT_PLTREL in \"%s\"; expected DT_REL", name);
return false;
}
- break;
#endif
+ break;
case DT_JMPREL:
#if defined(USE_RELA)
plt_rela = reinterpret_cast<ElfW(Rela)*>(load_bias + d->d_un.d_ptr);
@@ -2120,6 +2125,11 @@ bool soinfo::PrelinkImage() {
mips_gotsym = d->d_un.d_val;
break;
#endif
+ case DT_VERSYM:
+ case DT_VERDEF:
+ case DT_VERDEFNUM:
+ // Ignore: bionic does not support symbol versioning...
+ break;
default:
if (!relocating_linker) {