Commit f34649b2 authored by kjellander@google.com's avatar kjellander@google.com

Roll chromium_revision 274825:280149 to fix GN

Due to http://crbug.com/389883 GN currently doesn't execute
unless the top folder is named 'src'.

To work around this, perform the following changes to a
checkout that currently has "trunk" as the root folder:
1. Rename trunk -> src
2. Remove .gclient_entries file (will be re-created)
3. Edit .gclient and:
  * set the name of the solution to "src"
  * add/change the custom_vars dict for the solution to
    have a key like this:
    "custom_vars" : {
      "root_dir" : "src",
    },
4. Run gclient sync

The buildbots already have this done and gets a "src"
dir for their checkouts.

I also workaround some recent changes for sanitizer tools
and add a copy of Chromium's tsan_suppressions.cc to prepare
for TSan v2 (since v1 that libyuv is currently using is
deprecated and should be removed).

BUG=libyuv:338
TEST=Currently working trybot passing + local compile on Linux in
Debug,Release and with ASan+TSan v2 using:
GYP_DEFINES="asan=1 release_extra_cflags=-g use_allocator=none" ./gyp_libyuv && ninja -C out/Release
GYP_DEFINES="tsan=1 release_extra_cflags=-g use_allocator=none" ./gyp_libyuv && ninja -C out/Release
R=fbarchard@google.com

Review URL: https://webrtc-codereview.appspot.com/12889004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1027 16f28f9a-4ce2-e073-06de-1de4eb20be90
parent ac4f0388
......@@ -14,7 +14,7 @@ vars = {
"chromium_trunk" : "http://src.chromium.org/svn/trunk",
# chrome://version/ for revision of canary Chrome.
# http://chromium-status.appspot.com/lkgr is a last known good revision.
"chromium_revision": "274825",
"chromium_revision": "280149",
}
# NOTE: Prefer revision numbers to tags for svn deps. Use http rather than
......@@ -29,6 +29,9 @@ deps = {
"build":
Var("chromium_trunk") + "/src/build@" + Var("chromium_revision"),
"buildtools":
From("chromium_deps", "src/buildtools"),
# Needed by common.gypi.
"google_apis/build":
Var("chromium_trunk") + "/src/google_apis/build@" + Var("chromium_revision"),
......@@ -48,9 +51,18 @@ deps = {
"tools/gyp":
From("chromium_deps", "src/tools/gyp"),
"tools/memory":
Var("chromium_trunk") + "/src/tools/memory@" + Var("chromium_revision"),
"tools/python":
Var("chromium_trunk") + "/src/tools/python@" + Var("chromium_revision"),
"tools/sanitizer_options":
File(Var("chromium_trunk") + "/src/base/debug/sanitizer_options.cc@" + Var("chromium_revision")),
"tools/tsan_suppressions":
File(Var("chromium_trunk") + "/src/base/debug/tsan_suppressions.cc@" + Var("chromium_revision")),
"tools/valgrind":
Var("chromium_trunk") + "/src/tools/valgrind@" + Var("chromium_revision"),
......@@ -61,6 +73,18 @@ deps = {
"third_party/binutils":
Var("chromium_trunk") + "/src/third_party/binutils@" + Var("chromium_revision"),
"third_party/libc++":
Var("chromium_trunk") + "/src/third_party/libc++@" + Var("chromium_revision"),
"third_party/libc++/trunk":
From("chromium_deps", "src/third_party/libc++/trunk"),
"third_party/libc++abi":
Var("chromium_trunk") + "/src/third_party/libc++abi@" + Var("chromium_revision"),
"third_party/libc++abi/trunk":
From("chromium_deps", "src/third_party/libc++abi/trunk"),
"third_party/libjpeg_turbo":
From("chromium_deps", "src/third_party/libjpeg_turbo"),
......@@ -130,7 +154,7 @@ hooks = [
"--platform=win32",
"--no_auth",
"--bucket", "chromium-gn",
"-s", Var("root_dir") + "/tools/gn/bin/win/gn.exe.sha1",
"-s", Var("root_dir") + "/buildtools/win/gn.exe.sha1",
],
},
{
......@@ -141,7 +165,7 @@ hooks = [
"--platform=darwin",
"--no_auth",
"--bucket", "chromium-gn",
"-s", Var("root_dir") + "/tools/gn/bin/mac/gn.sha1",
"-s", Var("root_dir") + "/buildtools/mac/gn.sha1",
],
},
{
......@@ -152,7 +176,7 @@ hooks = [
"--platform=linux*",
"--no_auth",
"--bucket", "chromium-gn",
"-s", Var("root_dir") + "/tools/gn/bin/linux/gn.sha1",
"-s", Var("root_dir") + "/buildtools/linux64/gn.sha1",
],
},
{
......@@ -163,9 +187,16 @@ hooks = [
"--platform=linux*",
"--no_auth",
"--bucket", "chromium-gn",
"-s", Var("root_dir") + "/tools/gn/bin/linux/gn32.sha1",
"-s", Var("root_dir") + "/buildtools/linux32/gn.sha1",
],
},
{
# Remove GN binaries from tools/gn/bin that aren't used anymore.
# TODO(kjellander) remove after the end of July, 2014.
"name": "remove_old_gn_binaries",
"pattern": ".",
"action": ["python", Var("root_dir") + "/tools/gn/bin/rm_binaries.py"],
},
{
# Pull clang on mac. If nothing changed, or on non-mac platforms, this takes
# zero seconds to run. If something changed, it downloads a prebuilt clang.
......
# Copyright 2014 The LibYuv Project Authors. All rights reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
# This is a similar target to the one in Chromium's base.gyp. It's needed to get
# the same sanitizer settings as Chromium uses (i.e. ASan, LSan, TSan...).
{
'targets': [
{
'target_name': 'sanitizer_options',
'type': 'static_library',
'toolsets': ['host', 'target'],
'variables': {
# Every target is going to depend on sanitizer_options, so allow
# this one to depend on itself.
'prune_self_dependency': 1,
# Do not let 'none' targets depend on this one, they don't need to.
'link_dependency': 1,
},
'sources': [
'sanitizer_options/sanitizer_options.cc',
],
'include_dirs': [
'<(DEPTH)',
],
# Some targets may want to opt-out from ASan, TSan and MSan and link
# without the corresponding runtime libraries. We drop the libc++
# dependency and omit the compiler flags to avoid bringing instrumented
# code to those targets.
'conditions': [
['use_custom_libcxx==1', {
'dependencies!': [
'<(DEPTH)/third_party/libc++/libc++.gyp:libcxx_proxy',
],
}],
['tsan==1', {
'sources': [
'tsan_suppressions/tsan_suppressions.cc',
],
}],
],
'cflags!': [
'-fsanitize=address',
'-fsanitize=thread',
'-fsanitize=memory',
'-fsanitize-memory-track-origins',
],
'direct_dependent_settings': {
'ldflags': [
'-Wl,-u_sanitizer_options_link_helper',
],
},
},
], # targets
}
# Copyright 2011 The LibYuv Project Authors. All rights reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
# Supplement file for libyuv. To be processed, this file needs to be located in
# the first level of directories below the gyp_libyuv file.
# This is needed to workaround the otherwise failing include of base.gyp in
# Chromium's common.gypi when a sanitizer tool is used.
{
'variables': {
'use_sanitizer_options': 0,
},
'target_defaults': {
'conditions': [
# Add default sanitizer options similar to Chromium. This is needed to get
# the sanitizer options that has LeakSanitizer disabled by default.
# Otherwise yasm will throw leak errors during compile when
# GYP_DEFINES="asan=1".
['OS=="linux" and (chromeos==0 or target_arch!="ia32")', {
'dependencies': [
'<(DEPTH)/tools/sanitizer_options.gyp:sanitizer_options',
],
}],
],
},
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment