This CL modifies gcc_version.gni to set the gcc_version to the target
GCC toolchain version when building for MIPSEL Linux.
BUG=
TEST=Compile 'chrome' target with 'os="linux" cpu_arch="mipsel"'.
Manually verify that the correct GCC options are used.
Review URL: https://codereview.chromium.org/797593002
Cr-Original-Commit-Position: refs/heads/master@{#308334}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 3bb044b814399b1584b8bcdedd8e2ffdb102b17d
A starting point for doing all of src, and adding a PRESUBMIT.
Includes https://codereview.chromium.org/772663002/ and https://codereview.chromium.org/770053002/.
I haven't pushed new binaries yet.
Generated via:
> cd build
> git ls-files *.gn *.gni | sed -e "s/^/@..\\\\out\\\\Debug\\\\gn format --in-place /" >x.bat && x.bat
The only things that I don't love in the current output are:
1. Turning
args = [
"--depfile", rebase_path(depfile, root_build_dir),
"--android-sdk-tools", rebased_android_sdk_build_tools,
"--dex-path", rebased_output,
]
into:
args = [
"--depfile",
rebase_path(depfile, root_build_dir),
"--android-sdk-tools",
rebased_android_sdk_build_tools,
"--dex-path",
rebased_output,
]
The heuristic for this isn't trivial though, and it also affects e.g. '-Xclang' in cflags, as well
as assignments to temporaries that are later assigned to args.
2. Turning single line
if (defined(invoker.inputs)) { inputs = invoker.inputs }
into
if (defined(invoker.inputs)) {
inputs = invoker.inputs
}
This could be argued to be an improvement, but as it's very boilerplate-y perhaps an exception to
allow single line in this case is worthwhile. I think there was discussion of new syntax for this
case too, something like "inputs ?= invoker.inputs" maybe.
In both cases, I think it's worthwhile to get formatting turned on, and then go back and special
case these if we decide it's worthwhile.
R=brettw@chromium.org
BUG=348474
Review URL: https://codereview.chromium.org/766573003
Cr-Original-Commit-Position: refs/heads/master@{#306305}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: b199254f481c5db36d56e83fce40594b06d2b81f
This CL modifies gcc_version.gni to set the gcc_version to the target
GCC toolchain version when building for Chrome OS.
BUG=427726
TEST=Manually verify that the correct GCC toolchain is used when building with 'os="chromeos"'.
Review URL: https://codereview.chromium.org/678183002
Cr-Original-Commit-Position: refs/heads/master@{#301883}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 98ee835a49b59183909c730bf7d4283ea11b8281
Tune global Android ARM cflags for performance.
Update cflags in gn to keep up with gyp.
BUG=407545
CQ_TRYBOTS=tryserver.chromium.linux:android_aosp,android_clang_dbg,android_dbg
Review URL: https://codereview.chromium.org/375483003
Cr-Original-Commit-Position: refs/heads/master@{#293913}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 6b767135e631b94cd096c78f6622be28a4af277e
Adds a protobuf target and a template for defining protos. This handles doing host builds of protoc when cross-compiling.
The command buffer sevice wants more optimization on Android, so this patch generalizes the solution. Normally Android, like Windows, optimizes for size. This now adds support on Android for speed optimization just like Windows does. Mac & Linux always optimize for speed.
Removes the declare_args call around the gcc_version. This was parameterized to be different if is_android was set, which isn't valid because build parameters can't vary across toolchains. Since this value is derived from the environment, I just removed the declare_args call.
BUG=
R=piman@chromium.org
Review URL: https://codereview.chromium.org/289953004
git-svn-id: http://src.chromium.org/svn/trunk/src/build@271941 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
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