Fix symbol lookup order during relocation

Relocate symbol against DF_1_GLOBAL shared libraries
  loaded before this shared library. This includes
  main executable, ld_preloads and other libraries
  that have DF_1_GLOBAL flag set.

Bug: 2643900
Bug: 15432753
Bug: 18186310

(cherry picked from commit d225a5e652)

Change-Id: I4e889cdf2dfbf8230b0790053d311ee6b0d0ee2d
This commit is contained in:
Dmitriy Ivanov
2014-08-28 14:12:12 -07:00
parent bf3d5ef5fd
commit 976402cca1
11 changed files with 385 additions and 71 deletions

View File

@@ -36,6 +36,12 @@ class LinkedList {
clear();
}
LinkedList(LinkedList&& that) {
this->head_ = that.head_;
this->tail_ = that.tail_;
that.head_ = that.tail_ = nullptr;
}
void push_front(T* const element) {
LinkedListEntry<T>* new_entry = Allocator::alloc();
new_entry->next = head_;
@@ -140,6 +146,12 @@ class LinkedList {
return false;
}
static LinkedList make_list(T* const element) {
LinkedList<T, Allocator> one_element_list;
one_element_list.push_back(element);
return one_element_list;
}
private:
LinkedListEntry<T>* head_;
LinkedListEntry<T>* tail_;