Add realpath for soinfo

This change adds realpath to soinfo and
  extends limit on filenames from 128 to PATH_MAX.

  It also removes soinfo::name field, linker uses
  dt_soname instead.

Bug: http://b/19818481
Bug: https://code.google.com/p/android/issues/detail?id=80336
Change-Id: I9cff4cb5bda3ee2bc74e1bbded9594ea7fbe2a08
This commit is contained in:
Dmitriy Ivanov
2015-03-31 11:14:03 -07:00
committed by Dimitry Ivanov
parent e686df8d83
commit aae859cc3c
7 changed files with 313 additions and 136 deletions

View File

@@ -64,7 +64,7 @@ bool soinfo::relocate(ElfRelIteratorT&& rel_iterator,
ElfW(Addr) sym_addr = 0;
const char* sym_name = nullptr;
DEBUG("Processing '%s' relocation at index %zd", this->name, idx);
DEBUG("Processing '%s' relocation at index %zd", get_soname(), idx);
if (type == R_GENERIC_NONE) {
continue;
}
@@ -77,7 +77,7 @@ bool soinfo::relocate(ElfRelIteratorT&& rel_iterator,
s = soinfo_do_lookup(this, sym_name, &lsi, global_group,local_group);
if (s == nullptr) {
// mips does not support relocation with weak-undefined symbols
DL_ERR("cannot locate symbol \"%s\" referenced by \"%s\"...", sym_name, name);
DL_ERR("cannot locate symbol \"%s\" referenced by \"%s\"...", sym_name, get_soname());
return false;
} else {
// We got a definition.