Linker writes to wrong memory location when processing DT_MIPS_RLD_MAP

When bionic's dynamic linker processes the .dynamic section of a MIPS ELF binary and encounters the DT_MIPS_RLD_MAP dynamic array tag, it calculates the address of where to write a pointer to the _r_debug structure. The current implementation simply reads the value given in the d_ptr field and writes the pointer address to that location. However, this value has to be adjusted to reflect the real load address of the binary. Otherwise the linker will write to a faulty location possibly resulting in a crash when linking a MIPS binary that includes DT_MIPS_RLD_MAP. This change corrects that problem.

Change-Id: I1a91874f7ab47289001fe72d9016660c14c70362
Signed-off-by: Benjamin Adolphi <b.adolphi@gmail.com>
Top-level documentation about working on bionic.

Change-Id: If0a531865fa9c0d57486b98d4b78e3efcbf4e1d1
Make mips generated assembler more like the mips64 stuff.

I broke the mips build yesterday because it doesn't use
<private/bionic_asm.h> like the other architectures, including mips64.
I want to move mips closer to mips64 to try to avoid this kind of thing
in future.

Change-Id: Idb985587ff355b9e5e765c1f5671dc0144cd2488
Merge "Make mips generated assembler more like the mips64 stuff."
Make mips/mips64 syscall stubs more like the other architectures.

Change-Id: I55f8c1a95f643a6e484f12fbcc25e2c77e55b6b8
Merge "Top-level documentation about working on bionic."
Merge "Make mips/mips64 syscall stubs more like the other architectures."
Merge "Linker writes to wrong memory location when processing DT_MIPS_RLD_MAP"
Merge branch 'master' of https://android.googlesource.com/platform/bionic into HEAD