GCC Freedom (only)

.
.
This will allow you the freedom of using any custom toolchain of your choice,
provided you follow a few simple rules:

RULE #1: Both the androideabi and armeabi toolchain folders of your choice HAVE to
be named like the following:

for androideabi, the folder has to be prefixed with: arm-linux-androideabi-
and for arm-eabi, the folder has to be prefixed with: arm-eabi-

ex:

If you want to use GCC-4.8 as your toolchain of choice, both the androideabi and
armeabi folders have to look like this:

arm-linux-androideabi-4.8
arm-eabi-4.8

if you want them to be different, say, 4.8 for the arm-eabi and 4.9 for androideabi,
then they should look like this:

arm-eabi-4.8
arm-linux-androideabi-4.9

Take note, that if usining linaro, you will have to clone in the toolchain twice as
this method requires two different folders (the way it should be IMO). You would need
to rename one of the clones to arme-abi- and the other to arm-linux-androideabi-.

RULE #2: The source is configured to build with GCC 4.7 for androideabi and GCC 4.7 for
armeabi "by default" (in core/combo/TARGET_linux-arm.mk) unless you are to specify an alternate
target chain in build/core/TARGET_linux-arm.mk (lines 50 & 51). So if you want to use a different chain,
you'll need to change the chain number at the end of those two lines.

Say you wanted to use a 4.8 chain instead for armeabi and 4.9 for androideabi.. You would
just change the numbers at the end of both:

TARGET_GCC_VERSION_ARM := 4.8
TARGET_GCC_VERSION_AND := 4.9

Notice at the end of each line one is for ARM and one is for AND which hints at armeabi
and androideabi.

Remember, that this simple number change you specify at the end will decide
which toolchain you will use. So if you would rather use a 4.6 GCC, just change the
number to 4.6.

You also need to make sure rule number 1 is observed if you do this.. Can't build with
an alternate chain if one is not present ;)

RULE #3: Using higher than 4.7 GCC requires a few extra commits to source. These can be
found on my github account: https://github.com/IAmTheOneTheyCallNeo
If you have any questions or problems, feel free to message me and I will help if/when I can.
-Neo
-O3 Global Compiler Flags, Strict Aliasing, and Extra Flags

*
*
*
- This enables -O3 compiler flags globally
- This also enables strict aliasing at level 3 erroring which will
require a ton of strict aliasing commit fixes to source. (you've
been warned)
- This adds extra compiler flags that are not enabled at any O flag
Silence and stop popular warnings (test commit)

-Wno-error=unused-parameter
-Wno-unused-parameter
-Wno-error= unused-but-set-variable
-Wno-unused-but-set-variable
Drrrp

Change-Id: I3e551cb5b305133678b75b9c4b784e25fd1674c7
Drrrrp

Change-Id: I56078abcdfeef7366da10ca70abdc0a557169c9e
Change to 4.9 Androideabi

Change-Id: I3fbf63f63abc64eca7f1b2b987ad1f78ffad2010
Flags back to -O2 due to killing Camera Preview

Change-Id: I2a0d8e4703a581318533c5d4a2bf0d3d93655e5c
Changed androideabi to linaro 4.7 13.08

Change-Id: I6bf04348b90da9585455e5589f0e6e2d52154f65
Try again?

Change-Id: I0155c8daa34baee2be27e2c547dea697d72d52d9
Drrrrrrp

Change-Id: I6db49e6eed7e84744b239ba81e7491db223beb7f