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>
Fix bootloop on tablets

http://manski.net/wordpress/wp-content/uploads/2011/05/double-facepalm.jpg

Change-Id: Ibbe0f913c6d4164f25635b0de717bbdda355178e
Signed-off-by: Dirk Rettschlag <dirk.rettschlag@gmail.com>
Merge commit 'refs/changes/06/1306/1' of http://gerrit.sudoservers.com/AOKP/frameworks_base into ics
bootanim: Don't cache textures if they're expected to use a lot of VRAM

bootanimation cached all the textures generated until the animation
was completed.
For Hi-res animations with lots of frames (like the new CM9 anim on
xhdpi devices), this implied using large amounts of video RAM, more
than most devices actually have available, causing the animation to
stall (and in some cases, gralloc to lock up); so if an animation is
expected to use a lot of RAM (rough estimation based on frame size
and number of frames), disable cache entirely and generate the textures
on demand

Change-Id: I157e5cdde2aab1d82d980d77cbedd9f127c83a1d
bootanimation: performance enhancements

This patch implements two simple performance enhancements, which
might benefit devices. They are completely opt-in by setting
the following variables.

  * TARGET_BOOTANIMATION_PRELOAD: will preload the bootanimation
    zip to memory; this is handy on devices where the storage
    might be slow. By preloading it, we get quick access to the
    zip file, and the animation doesn't stutter.

  * TARGET_BOOTANIMATION_TEXTURE_CACHE: allows maintainers to
    force texture cache on/off.

Also fixes the sign warnings related to int / size_t comparison

Change-Id: Ie92d1b0aa90b43ba39c368a2a33657a60c3a64b5
Merge remote-tracking branch 'upstream/ics' into ics