Commits from linaro to fix builds with newer toolchains and options
frameworks/base: Assorted build fixes

Assorted build fixes for gcc 4.6 and -DNDEBUG

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

frameworks/base: Fix aliasing violations

This makes it possible to build the code without
disabling the strict-aliasing optimization in gcc.

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

frameworks/base: Fix aliasing violations

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

libstagefright: Fix aliasing violations

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

frameworks/base: Fix various aliasing violations

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

fix build break when using prebuilt toolchain

When doing a build with the prebuilt 4.4 toolchain a duplicate
symbol error is hit. This is due to the fact this symbol is
really defined system/core/include/system/window.h

Change-Id: I9dac8e4f483422a7d42ab0d305ece61197f936b9
Signed-off-by: Andy Doan <andy.doan@linaro.org>

opengl: Enable -flto and -ffast-math

OpenGL can be built with -ffast-math and -flto without
regressions. Enable them for an extra speed boost.

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

opengl: Work around linaro-gcc bug 879725

linaro-gcc 4.6-2011.10 ICEs when building matrix.cpp with
-fmodulo-sched when tuning for cortex-a8 (cortex-a9 is ok).
Until the compiler is fixed, disable -fmodulo-sched if we're
targeting cortex-a8 based devices, such as iMX53.

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

ensure compiler supports -flto

Change Iec2950b1d8fef30ef5530551b094e97c7ee91fa7 enabled
-flto in all builds. However, not all compilers support this
option. This changes ensures the flag is only used when its
supported

Change-Id: I29c1ae41eac6c5c03c944b1200b22171bcbc0719
Signed-off-by: Andy Doan <andy.doan@linaro.org>

frameworks/base: gcc 4.7 compile fixes

Make sure we can compile even with gcc 4.7's added
strictness

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

stagefright: Fix build with gcc 4.7

Make it build with gcc 4.7's added strictness

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

frameworks/base: Make sure Singleton instantiations are exported

This fixes using Singletons across shared library borders
with gcc 4.7

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

libstagefright: Work around gcc 4.7 bug

When using gcc 4.7, use -O2 instead of -Os to
work around compiler bug
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52294

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

frameworks/base: Compile fixes for ISO C++ 11

Fix build in ISO C++ 11 mode (where char16_t is defined and different
from uint16_t)

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

libmediaplayerservice: Fix aliasing violation

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

voip: Fix aliasing violation

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

rs: Fix aliasing violation

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

visualizer: Use -fno-strict-aliasing for now

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

libmediaplayerservice: Fix crash caused by strict-aliasing fix

long a[] and long *a aren't always the same...

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

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

Fix various incompatibilities with ISO C++11:
- Assumption that char16_t is defined to uint16_t
- constexpr usage
- macro constructs that could be interpreted as string literals
- enum typesafety

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

frameworks/base: Fix build without ISO C++11

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

libeffects/visualizer: Don't hardcode -O2

Only put -O2 into the compiler flags if no other
optimization is requested

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

base: Fix build in ISO C++ 11 mode

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

BluetoothEventLoop: Fix build in ISO C++11 mode

Conflicts:

core/jni/android_server_BluetoothEventLoop.cpp

Change-Id: I0e1b1467ede8e703e911ac4f06e3fd28e7d7e385
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
Signed-off-by: Evan McClain <aeroevan@gmail.com>

libstagefright: Disable strict-aliasing for h264dec

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

GLES2_dbg/test: Build with -fno-strict-aliasing

Build GLES2_dbg/test with -fno-strcit-aliasing - the code looks like
more aliasing violations will be added, and performance of tests
isn't overly important

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