summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkojii <kojii@chromium.org>2015-06-23 20:37:01 -0700
committerCommit bot <commit-bot@chromium.org>2015-06-24 03:37:45 +0000
commita2940327975938a0da0c6f8a49ba26fd78ed8d51 (patch)
tree17253811e5d03107a7adb414558f7bbec63f035a
parentd51068f57562a973e3bd6da86d8c4a80237e73b5 (diff)
downloadchromium_src-a2940327975938a0da0c6f8a49ba26fd78ed8d51.zip
chromium_src-a2940327975938a0da0c6f8a49ba26fd78ed8d51.tar.gz
chromium_src-a2940327975938a0da0c6f8a49ba26fd78ed8d51.tar.bz2
Use bundled harfbuzz on Linux
crbug.com/353127 changed to use the bundled harfbuzz for official builds on Linux, but not for non-official Linux builds due to link warnings and gfx_unittests crash on Trusty. This patch changes non-official Linux builds to use the bundled harfbuzz. Symbols from the bundled harfbuzz-ng are exported in non-official builds so that pangoft2 can see them. gfx_unittests crashes are no longer observed. BUG=462689, 353127 Review URL: https://codereview.chromium.org/1197683002 Cr-Commit-Position: refs/heads/master@{#335865}
-rw-r--r--third_party/harfbuzz-ng/BUILD.gn24
-rw-r--r--third_party/harfbuzz-ng/harfbuzz.gyp10
2 files changed, 18 insertions, 16 deletions
diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn
index 2ce1280..24c6927 100644
--- a/third_party/harfbuzz-ng/BUILD.gn
+++ b/third_party/harfbuzz-ng/BUILD.gn
@@ -16,18 +16,15 @@ import("//build/config/linux/pkg_config.gni")
declare_args() {
# Since version 1.31.0, pangoft2 which we depend on pulls in harfbuzz
# anyways. However, we want to have control of the version of harfbuzz
- # we use, so don't use system harfbuzz for official builds, unless we
- # are building for chrome os, where we have the system harfbuzz under
- # control as well. We also do not want to use the system harfbuzz
- # when cross-compiling for ARM.
- use_system_harfbuzz = is_linux && (is_chromeos || (!is_official_build &&
- current_cpu != "arm")) &&
- exec_script(pkg_config_script,
- pkg_config_args + [
- "--atleast-version=1.31.0",
- "pangoft2",
- ],
- "value")
+ # we use, so don't use system harfbuzz unless we are building for
+ # chrome os, where we have the system harfbuzz under control.
+ use_system_harfbuzz =
+ is_linux && is_chromeos && exec_script(pkg_config_script,
+ pkg_config_args + [
+ "--atleast-version=1.31.0",
+ "pangoft2",
+ ],
+ "value")
}
if (use_system_harfbuzz) {
@@ -166,5 +163,8 @@ if (use_system_harfbuzz) {
]
defines += [ "HAVE_CORETEXT" ]
}
+ if (is_linux && !is_chromeos && !is_official_build && current_cpu != "arm") {
+ configs -= [ "//build/config/gcc:symbol_visibility_hidden" ]
+ }
}
}
diff --git a/third_party/harfbuzz-ng/harfbuzz.gyp b/third_party/harfbuzz-ng/harfbuzz.gyp
index f381e74..c277e8e 100644
--- a/third_party/harfbuzz-ng/harfbuzz.gyp
+++ b/third_party/harfbuzz-ng/harfbuzz.gyp
@@ -8,12 +8,11 @@
],
'variables': {
'conditions': [
- ['OS=="linux" and (buildtype!="Official" or chromeos==1) and embedded==0', {
+ ['OS=="linux" and chromeos==1', {
# Since version 1.31.0, pangoft2 which we depend on pulls in harfbuzz
# anyways. However, we want to have control of the version of harfbuzz
- # we use, so don't use system harfbuzz for official builds, unless we
- # are building for chrome os, where we have the system harfbuzz under
- # control as well.
+ # we use, so don't use system harfbuzz unless we are building for
+ # chrome os, where we have the system harfbuzz under control.
'use_system_harfbuzz%': '<!(python ../../build/check_return_value.py <(pkg-config) --atleast-version=1.31.0 pangoft2)',
}, {
'use_system_harfbuzz': 0,
@@ -152,6 +151,9 @@
'src/hb-coretext.h',
],
}],
+ ['OS=="linux" and chromeos==0 and buildtype!="Official" and target_arch!="arm"', {
+ 'cflags!': ['-fvisibility=hidden'],
+ }],
],
},
],