Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1026)

Unified Diff: build/config/android/BUILD.gn

Issue 1979043002: Revert of 👻 Merge android's use_gold settings with the main use_gold GN arg logic (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | build/config/compiler/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/config/android/BUILD.gn
diff --git a/build/config/android/BUILD.gn b/build/config/android/BUILD.gn
index 883b82ffd556614636b586fe9a12a019921c4b1c..2c96067f0ad975f75adee28d01fee9b0a7c1c666 100644
--- a/build/config/android/BUILD.gn
+++ b/build/config/android/BUILD.gn
@@ -4,9 +4,12 @@
import("//build/config/android/config.gni")
import("//build/config/sanitizers/sanitizers.gni")
+import("//build/config/sysroot.gni")
assert(is_android)
+use_gold = current_cpu == "x86" || current_cpu == "x64" || current_cpu == "arm"
+
# This is included by reference in the //build/config/compiler config that
# is applied to all targets. It is here to separate out the logic that is
# Android-only.
@@ -22,7 +25,12 @@ config("compiler") {
# does. Define them here instead.
"HAVE_SYS_UIO_H",
]
+ ldflags = []
+ if (!is_clang) {
+ # Clang doesn't support these flags.
+ cflags += [ "-finline-limit=64" ]
+ }
if (is_clang) {
rebased_android_toolchain_root =
rebase_path(android_toolchain_root, root_build_dir)
@@ -34,12 +42,29 @@ config("compiler") {
"-B${rebased_android_toolchain_root}/bin", # Else /usr/bin/as gets picked up.
]
}
- } else {
- # Clang doesn't support these flags.
- cflags += [ "-finline-limit=64" ]
}
- ldflags = [
+ # Use gold for Android for most CPU architectures.
+ if (use_gold) {
+ ldflags += [ "-fuse-ld=gold" ]
+ if (is_clang) {
+ # Let clang find the ld.gold in the NDK.
+ ldflags += [ "--gcc-toolchain=$rebased_android_toolchain_root" ]
+ }
+
+ # Use -mstackrealign due to a bug on ia32 Jelly Bean.
+ # See crbug.com/521527
+ if (current_cpu == "x86") {
+ cflags += [ "-mstackrealign" ]
+ }
+ }
+
+ if (current_cpu == "mipsel" && is_clang) {
+ # Let clang find the ld.bfd in the NDK.
+ ldflags += [ "--gcc-toolchain=$rebased_android_toolchain_root" ]
+ }
+
+ ldflags += [
"-Wl,--build-id=sha1",
"-Wl,--no-undefined",
@@ -53,6 +78,12 @@ config("compiler") {
# http://crbug.com/448386
"-Wl,--exclude-libs=libvpx_assembly_arm.a",
]
+ if (current_cpu == "arm" && !use_order_profiling) {
+ ldflags += [
+ # Enable identical code folding to reduce size.
+ "-Wl,--icf=all",
+ ]
+ }
if (is_clang) {
if (current_cpu == "arm") {
@@ -150,6 +181,12 @@ config("executable_config") {
cflags = [ "-fPIE" ]
asmflags = [ "-fPIE" ]
ldflags = [ "-pie" ]
+
+ if (!use_gold) {
+ # ld needs help finding libraries when linking.
+ _rebased_sysroot = rebase_path(sysroot, root_build_dir)
+ ldflags += [ "-Wl,-rpath-link=.:$_rebased_sysroot/usr/lib" ]
+ }
}
config("hide_native_jni_exports") {
« no previous file with comments | « no previous file | build/config/compiler/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698