summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build/common.gypi7
-rw-r--r--build/config/sanitizers/sanitizers.gni11
-rw-r--r--chrome/installer/linux/debian/expected_deps_x642
3 files changed, 15 insertions, 5 deletions
diff --git a/build/common.gypi b/build/common.gypi
index 800cefe..b2e8e6e 100644
--- a/build/common.gypi
+++ b/build/common.gypi
@@ -855,6 +855,13 @@
'enable_prod_wallet_service%': 1,
}],
+ # Enable Control Flow Integrity for the official Linux Chrome.
+ # This triggers an LTO build that requires LLVM Gold plugin to be
+ # downloaded. See src/tools/clang/scripts/update.py
+ ['OS=="linux" and target_arch=="x64" and buildtype=="Official" and branding=="Chrome" and chromeos==0', {
+ 'cfi_vptr%': 1,
+ }],
+
# Enable hotwording on Chrome-branded ChromeOS builds.
['branding=="Chrome" and chromeos==1', {
'enable_hotwording%': 1,
diff --git a/build/config/sanitizers/sanitizers.gni b/build/config/sanitizers/sanitizers.gni
index f8f469c..6d12813 100644
--- a/build/config/sanitizers/sanitizers.gni
+++ b/build/config/sanitizers/sanitizers.gni
@@ -2,6 +2,8 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import("//build/config/chrome_build.gni")
+
declare_args() {
# Compile for Address Sanitizer to find memory bugs.
is_asan = false
@@ -37,10 +39,6 @@ declare_args() {
# https://code.google.com/p/sawbuck/wiki/SyzyASanHowTo
is_syzyasan = false
- # Compile with Control Flow Integrity to protect virtual calls and casts.
- # See http://clang.llvm.org/docs/ControlFlowIntegrity.html
- is_cfi = false
-
# By default, Control Flow Integrity will crash the program if it detects a
# violation. Set this to true to print detailed diagnostics instead.
use_cfi_diag = false
@@ -58,6 +56,11 @@ declare_args() {
# declare_args block. User overrides are only applied at the end of a
# declare_args block.
declare_args() {
+ # Compile with Control Flow Integrity to protect virtual calls and casts.
+ # See http://clang.llvm.org/docs/ControlFlowIntegrity.html
+ is_cfi = is_linux && !is_chromeos && target_cpu == "x64" &&
+ is_chrome_branded && is_official_build
+
# Use libc++ (buildtools/third_party/libc++ and
# buildtools/third_party/libc++abi) instead of stdlibc++ as standard library.
# This is intended to be used for instrumented builds.
diff --git a/chrome/installer/linux/debian/expected_deps_x64 b/chrome/installer/linux/debian/expected_deps_x64
index f1d0084..24d6a3f 100644
--- a/chrome/installer/linux/debian/expected_deps_x64
+++ b/chrome/installer/linux/debian/expected_deps_x64
@@ -4,7 +4,7 @@ libatk1.0-0 (>= 1.12.4)
libc6 (>= 2.12)
libcairo2 (>= 1.6.0)
libcups2 (>= 1.4.0)
-libdbus-1-3 (>= 1.2.14)
+libdbus-1-3 (>= 1.1.4)
libexpat1 (>= 1.95.8)
libfontconfig1 (>= 2.8.0)
libfreetype6 (>= 2.3.9)