Dynamically allocate soinfo-structs in linker

Request memory from the system when needed instead of having a fixed
array for soinfo structs. Note that malloc() et al can't be used in
linker, so use mmap() instead.

Change-Id: Ia77e6a835db0f4a0bfeccc4a6610b857459fd437
libm: optimistic pow calling

Call optimized pow optimistically and revert to full range
implementation if we detect an out-of-range input.

Change-Id: I02657c2a254e9796e795a8fcc6ae43e24c9d37b9
libm: sqrt and sqrtf via ARM vsqrt instruction.

Optimized sqrt and sqrtf for arm by using hardware
opcode for sqrt rather than generic slow portable
code.

Change-Id: I9888d58547bcfca7dfc1400d3e7e222599167249
bionic: Add workarounds for current compilers

With current compilers, we're getting "this function cannot be inlined"
errors on vsnprintf and strlcpy because the always_inline attribute is
set.

Before marking this a "fix" instead of a "workaround", we should figure
out why the functions can't be inlined.

PatchSet 2: Set the topic to linaro.
This is needed to build with AOSP's GCC 4.7.

Change-Id: Id6c5464defafb3f9044c102d32a57e70d760b05d
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
Merge remote-tracking branch 'aeroevan/cm-10.1-linaro' into linaro