Skip to content
Snippets Groups Projects
Commit 88eb6d57 authored by Stephen Wilson's avatar Stephen Wilson
Browse files

Load dependent modules in the Linux dynamic loader.

This fixes a bug where the dynamic loader rendezvous was not updating its
internal state when first initialized.

llvm-svn: 123794
parent 345c1bcb
No related branches found
No related tags found
No related merge requests found
......@@ -117,6 +117,12 @@ DYLDRendezvous::UpdateSOEntries()
if (m_current.map_addr == 0)
return false;
// When the previous and current states are consistent this is the first
// time we have been asked to update. Just take a snapshot of the currently
// loaded modules.
if (m_previous.state == eConsistent && m_current.state == eConsistent)
return TakeSnapshot(m_soentries);
// If we are about to add or remove a shared object clear out the current
// state and take a snapshot of the currently loaded images.
if (m_current.state == eAdd || m_current.state == eDelete)
......@@ -127,6 +133,7 @@ DYLDRendezvous::UpdateSOEntries()
m_removed_soentries.clear();
return TakeSnapshot(m_soentries);
}
assert(m_current.state == eConsistent);
// Otherwise check the previous state to determine what to expect and update
// accordingly.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment