Use mmap to read an initial ELF header of library

Also, fixes SIGSEV during calculation of si->phdr in load_library(),
which is caused by accessing PHDR area, which is not guaranteed to be

Note that this usually does not happen because program header area is
covered by immediately following PT_LOAD entry.  But it does not hold

Bug: 6561258
Change-Id: Ie376253c773b5420279ca89044e81b1aad5a5736
1 file changed