Squash of strict aliasing fixes

frameworks/base: Make sure Singleton instantiations are exported

This fixes using Singletons across shared library borders
with gcc 4.7+

Change-Id: I84b9cc99add4ace64c16e4fa8414a4fc7e4693c7
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>

frameworks/native: Fix build in ISO C++ 11 mode

Fix constructs that are considered new string literals in C++ 11 mode

Change-Id: Iadcad5f83c79e6726ca66ced5fc1e038b7587069
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>

frameworks/native: Fix build in ISO C++11 mode

Change-Id: Icc19cde1bf9c72397ed8bda545e9056483d83e8d
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>

binder: Fix ABI incompatibility between older and newer compilers

Parcel::writeString16's first parameter was a char16_t - defined to
uint16_t somewhere else.

With ISO C++11 compatible compilers, however, char16_t is a
compiler-defined-type that is not necessarily unsigned.

This causes the symbol to be different, breaking support for talking
to binary blobs built with pre-ISO C++11-compilers, such as the
Galaxy Nexus RIL.

Change-Id: Ibaa57fbd7d9fc4a95649d3b45d28d29963a9548b
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>

frameworks/native: Fix build with ISO C++11 compilers

Fix macro definitions so they can't be confused with C++11 string
literals

Change-Id: I2856933291d08eed789188ea9be036324384e67f
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>

surfaceflinger: Work around aliasing violations

Change-Id: I22e758390c1312e60bb4adac2365be201ba6f161
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>