Some minor tweaks in STL usage in GN itself to enable it to compile using the Android version of the STL. Enable this in the build (not so much because we need a GN binary on Android, but for build verification purposes).
Moved the executable_ldconfig config from the linux file to the gcc one since its shared between the Linux and Android builds. Added "-Bdynamic" and "-Wl,-z,nocopyreloc" to this on Android.
Moved some sysroot path components from sysroot.gni to android/config.gni (which sysroot uses) so it can be shared with the toolchain definitions.
Added the android_full_debug build flag. Made the "optimize off" mode of the build match the GYP build's "light optimization" on Android contingent on this flag.
Pulls out the optimize and optimize_max shared flags into one list to avoid duplication.
Adds a bunch of linker optimization flags that should be passed on non-Mac Posix platforms, and turns on dead code stripping for Mac builds.
Adds functionality to the gcc toolchain template to be able to insert strings before and after the libs. Adds a wrapper template for android toolchains that sets these accordingly to get the gross Android crtbegin/end files inserted in the right place on the linker line.
Made the android_ndk_root variable relative to the source root rather than the system root. Uses of this now rebase according to their own needs which makes some of the arguments a lot easier to follow.
Build file updates for base and libevent for Android. Implement ashmem library.
The only change on desktop linux is the addition of -Wl,--fatal-warnings to the linker line.
R=ajwong@chromium.org, cjhopman@chromium.org, scottmg@chromium.org
Review URL: https://codereview.chromium.org/275703003
git-svn-id: http://src.chromium.org/svn/trunk/src/build@270138 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Refactors the toolchain definitions by adding an include file to help defining GCC toolchains. This eliminates most of the duplication on Linux and Android. Adds make_global_settings for most Linux and Mac builds that should match the GYP build (this will require some more passes to get every place to be an exact match).
Fixes Android build issues in WebKit. Fixes the definition of is_android.
Renames the Linux toolchains to use the GN name of the CPU architecture so one can refer to them without conditionals. Remove conditionals from BUILDCONFIG.gn
Adds the gyp_header variable to the help (it wasn't getting inserted into the list of available variables).
R=thakis@chromium.org
Review URL: https://codereview.chromium.org/117863003
git-svn-id: http://src.chromium.org/svn/trunk/src/build@242674 4ff67af0-8c30-449e-8e8b-ad334ec8d88c