Support DT_RUNPATH in the linker.

Only $ORIGIN substitution is supported, but not linux-specific $LIB
or $PLATFORM.

Change-Id: I5814a016c7c91afba080230a547a863686e7c2b9
This commit is contained in:
Evgenii Stepanov
2015-06-10 13:38:39 -07:00
parent f3463db7eb
commit 6865082ca6
7 changed files with 182 additions and 16 deletions

View File

@@ -336,6 +336,8 @@ struct soinfo {
uint32_t get_target_sdk_version() const;
const std::vector<std::string>& get_dt_runpath() const;
private:
bool elf_lookup(SymbolName& symbol_name, const version_info* vi, uint32_t* symbol_index) const;
ElfW(Sym)* elf_addr_lookup(const void* addr);
@@ -397,6 +399,9 @@ struct soinfo {
uint32_t target_sdk_version_;
void set_dt_runpath(const char *);
std::vector<std::string> dt_runpath_;
friend soinfo* get_libdl_info();
};