libv8 6.0.286.54.3 → 6.2.414.42.0beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +5 -3
  3. data/CHANGELOG.md +4 -0
  4. data/Rakefile +3 -3
  5. data/lib/libv8/version.rb +1 -1
  6. data/patches/0001-Build-a-standalone-static-library.patch +4 -4
  7. data/patches/0002-Don-t-compile-unnecessary-stuff.patch +12 -14
  8. data/patches/0003-Use-the-fPIC-flag-for-the-static-library.patch +4 -4
  9. data/patches/0004-Do-not-embed-debug-symbols-in-macOS-libraries.patch +4 -4
  10. data/patches/0005-avoid-constructor-inheritance-due-to-compilation-iss.patch +81 -0
  11. data/patches/9001-Arm64-Fix-host-architecture-detection.patch +37 -0
  12. data/vendor/depot_tools/.gitignore +1 -0
  13. data/vendor/depot_tools/OWNERS +0 -1
  14. data/vendor/depot_tools/auth.py +154 -6
  15. data/vendor/depot_tools/bootstrap/win/manifest.txt +1 -1
  16. data/vendor/depot_tools/bootstrap/win/manifest_bleeding_edge.txt +1 -1
  17. data/vendor/depot_tools/cipd_bin_setup.sh +12 -2
  18. data/vendor/depot_tools/cipd_manifest.txt +4 -1
  19. data/vendor/depot_tools/fetch.py +2 -0
  20. data/vendor/depot_tools/gclient.py +4 -6
  21. data/vendor/depot_tools/gclient_scm.py +12 -5
  22. data/vendor/depot_tools/gerrit_util.py +23 -1
  23. data/vendor/depot_tools/git_cache.py +59 -23
  24. data/vendor/depot_tools/git_cl.py +114 -43
  25. data/vendor/depot_tools/git_common.py +7 -0
  26. data/vendor/depot_tools/git_rebase_update.py +1 -0
  27. data/vendor/depot_tools/git_upstream_diff.py +12 -5
  28. data/vendor/depot_tools/gsutil.py +10 -0
  29. data/vendor/depot_tools/infra/config/OWNERS +0 -1
  30. data/vendor/depot_tools/infra/config/cq.cfg +6 -5
  31. data/vendor/depot_tools/infra/config/recipes.cfg +1 -1
  32. data/vendor/depot_tools/mac_toolchain +12 -0
  33. data/vendor/depot_tools/man/html/git-upstream-diff.html +10 -6
  34. data/vendor/depot_tools/man/man1/git-upstream-diff.1 +18 -7
  35. data/vendor/depot_tools/man/src/git-upstream-diff.txt +8 -5
  36. data/vendor/depot_tools/owners.py +9 -2
  37. data/vendor/depot_tools/presubmit_canned_checks.py +122 -0
  38. data/vendor/depot_tools/presubmit_support.py +57 -4
  39. data/vendor/depot_tools/recipes/OWNERS +0 -1
  40. data/vendor/depot_tools/recipes/README.recipes.md +20 -17
  41. data/vendor/depot_tools/recipes/recipe_modules/bot_update/__init__.py +1 -1
  42. data/vendor/depot_tools/recipes/recipe_modules/bot_update/api.py +15 -4
  43. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic.json +23 -0
  44. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_with_branch_heads.json +46 -0
  45. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/buildbot.json +23 -0
  46. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/clobber.json +46 -0
  47. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/deprecated_got_revision_mapping.json +22 -0
  48. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_rebase_patch_ref.json +46 -0
  49. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_reset.json +46 -0
  50. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_shallow.json +46 -0
  51. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/reset_root_solution_revision.json +46 -0
  52. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/trychange.json +46 -0
  53. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/trychange_oauth2_buildbot.json +46 -0
  54. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/trychange_oauth2_json.json +46 -0
  55. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/trychange_oauth2_json_win.json +46 -0
  56. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob.json +46 -0
  57. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_empty_revision.json +46 -0
  58. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail.json +4 -45
  59. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch.json +23 -0
  60. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch_download.json +23 -0
  61. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_angle.json +46 -0
  62. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_angle_deprecated.json +46 -0
  63. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_feature_branch.json +46 -0
  64. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_v8.json +46 -0
  65. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_v8_feature_branch.json +46 -0
  66. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_webrtc.json +46 -0
  67. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8.json +46 -0
  68. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8_head_by_default.json +46 -0
  69. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_manifest_name.json +194 -0
  70. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_manifest_name_no_patch.json +105 -0
  71. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_tags.json +46 -0
  72. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.py +12 -2
  73. data/vendor/depot_tools/recipes/recipe_modules/bot_update/resources/bot_update.py +226 -149
  74. data/vendor/depot_tools/recipes/recipe_modules/bot_update/test_api.py +16 -5
  75. data/vendor/depot_tools/recipes/recipe_modules/gclient/config.py +1 -2
  76. data/vendor/depot_tools/recipes/recipes/fetch_end_to_end_test.expected/basic.json +11 -0
  77. data/vendor/depot_tools/rietveld.py +1 -1
  78. data/vendor/depot_tools/roll_dep.py +4 -1
  79. data/vendor/depot_tools/split_cl.py +3 -0
  80. data/vendor/depot_tools/third_party/cq_client/OWNERS +0 -1
  81. data/vendor/depot_tools/third_party/mock/LICENSE.txt +26 -0
  82. data/vendor/depot_tools/third_party/mock/README.chromium +24 -0
  83. data/vendor/depot_tools/third_party/mock/__init__.py +2366 -0
  84. data/vendor/depot_tools/watchlists.py +12 -5
  85. metadata +12 -5
  86. data/patches/0005-Fix-GCC-7-build-errors.patch +0 -147
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 042f077071506ee8e400826643fdc47bf3e90b60
4
- data.tar.gz: 7fbdc8f3e990d758b5eaba80bd39d36e9e12e04a
3
+ metadata.gz: 24f1e27ffdebdfda185ee877d56047941a3b7743
4
+ data.tar.gz: 48beb24665420d51ff4485856d8c501a24e57168
5
5
  SHA512:
6
- metadata.gz: bf0b69a46f67b05d06bfa7b1b9bd1791f044dc92c9d2c4bd92408c812981f51c795ac65aa7add281255895bbdfca034d9d6930b25e536a0bc3f6e709577682bf
7
- data.tar.gz: 64aadde81a8f560cd2bc4fc96d8cd17fdcc17054359cc93ff9ac35ad970576f3d8d4b29da2c0740bf7f500dd91d4cdc208d9f2526d9c9ecf8d3e9721fd0f91c0
6
+ metadata.gz: 9b924dd26d7921729c5d61d4f86259efe30ee232af5be699b0898c9aa28bb27c51fa228ae352c019353e20008138fb6c66dae5be1903ad3a199bffa9dcbc2d7d
7
+ data.tar.gz: 79c9c625f18a36b69321ac7cbfd904457c43e46903e59f86f4ccbd261cc60d70f025cce60eac5fce9594baefc83a8ff331633cc663f52d3739510dd11dc39bd3
@@ -12,8 +12,9 @@ matrix:
12
12
  - rvm: 2.4.0
13
13
  os: osx
14
14
  osx_image: xcode7.3
15
- - rvm: 2.4.0
16
- os: osx
15
+ - os: osx
16
+ osx_image: xcode6.4
17
+ - os: osx
17
18
  osx_image: xcode9.1
18
19
  - rvm: system
19
20
  os: osx
@@ -33,6 +34,8 @@ matrix:
33
34
  allow_failures:
34
35
  - rvm: 1.9.3
35
36
  - rvm: rbx
37
+ - os: osx
38
+ osx_image: xcode6.4
36
39
  fast_finish: true
37
40
  dist: trusty
38
41
  addons:
@@ -43,7 +46,6 @@ bundler_args: --jobs=4 --retry=3
43
46
  before_install:
44
47
  - if [ "$TRAVIS_OS_NAME" == "linux" ]; then gem update bundler; fi
45
48
  - if [ "$TRAVIS_OS_NAME" == "linux" ]; then gem update --system; fi
46
- - if [ "$TRAVIS_OS_NAME" == "osx" -a "$TRAVIS_RUBY_VERSION" == "2.0.0" ]; then rvm rubygems current; fi
47
49
  - if [ "$TRAVIS_OS_NAME" == "osx" -a "$TRAVIS_RUBY_VERSION" == "system" ]; then sudo gem install bundler; fi
48
50
  - if [ "$TRAVIS_OS_NAME" == "osx" -a "$TRAVIS_RUBY_VERSION" != "system" ]; then gem update --system; fi
49
51
  - if [ "$TRAVIS_OS_NAME" == "osx" -a "$TRAVIS_RUBY_VERSION" != "system" ]; then gem update bundler; fi
@@ -1,3 +1,7 @@
1
+ ### Unreleased
2
+
3
+ * Update upstream v8 version to 6.2.414.42
4
+
1
5
  ### v6.0.286.54.2, v6.0.286.54.3 - 2017-10-25
2
6
 
3
7
  * Fix regression when building from source gem #246
data/Rakefile CHANGED
@@ -70,9 +70,9 @@ namespace :build do
70
70
  Dir.chdir(arch_dir) do
71
71
  ENV['RUBYLIB'] = nil # https://github.com/mitchellh/vagrant/issues/6158
72
72
  sh "vagrant up"
73
- sh "vagrant ssh -c 'rm -rf ~/libv8'"
74
- sh "vagrant ssh -c 'git clone /libv8/.git ~/libv8 --recursive'"
75
- sh "vagrant ssh -c 'cd ~/libv8 && bundle install --path vendor/bundle'"
73
+ # sh "vagrant ssh -c 'rm -rf ~/libv8'"
74
+ # sh "vagrant ssh -c 'git clone /libv8/.git ~/libv8 --recursive'"
75
+ # sh "vagrant ssh -c 'cd ~/libv8 && bundle install --path vendor/bundle'"
76
76
  sh "vagrant ssh -c 'cd ~/libv8 && env MAKEFLAGS=-j4 bundle exec rake binary'"
77
77
  sh "vagrant status | grep scaleway" do |ok, res|
78
78
  if ok
@@ -1,3 +1,3 @@
1
1
  module Libv8
2
- VERSION = "6.0.286.54.3"
2
+ VERSION = "6.2.414.42.0beta1"
3
3
  end
@@ -1,4 +1,4 @@
1
- From 6c28fb0319c5e2e7afad4b5731fc0ded86e1f7e7 Mon Sep 17 00:00:00 2001
1
+ From cbe264bb5c231d06f64b48413f3f268ca490e00a Mon Sep 17 00:00:00 2001
2
2
  From: Petko Bordjukov <bordjukov@gmail.com>
3
3
  Date: Mon, 25 Jul 2016 00:00:19 +0300
4
4
  Subject: [PATCH 1/5] Build a standalone static library
@@ -8,10 +8,10 @@ Subject: [PATCH 1/5] Build a standalone static library
8
8
  1 file changed, 3 insertions(+)
9
9
 
10
10
  diff --git a/gypfiles/standalone.gypi b/gypfiles/standalone.gypi
11
- index 4c805bf643..6a72a23cfb 100644
11
+ index 63930d8aef..d0d00d3f67 100644
12
12
  --- a/gypfiles/standalone.gypi
13
13
  +++ b/gypfiles/standalone.gypi
14
- @@ -522,6 +522,9 @@
14
+ @@ -517,6 +517,9 @@
15
15
  }], # fastbuild!=0
16
16
  ],
17
17
  'target_conditions': [
@@ -22,5 +22,5 @@ index 4c805bf643..6a72a23cfb 100644
22
22
  'defines!': [
23
23
  'DEBUG',
24
24
  --
25
- 2.13.3
25
+ 2.14.3
26
26
 
@@ -1,36 +1,34 @@
1
- From 31d199f67ff88be5576869abcc23ecf219fa1e6f Mon Sep 17 00:00:00 2001
1
+ From 96075b7eeeef64063186d743d1fa36e6de494a6e Mon Sep 17 00:00:00 2001
2
2
  From: Petko Bordjukov <bordjukov@gmail.com>
3
3
  Date: Fri, 28 Jul 2017 11:11:08 +0300
4
4
  Subject: [PATCH 2/5] Don't compile unnecessary stuff
5
5
 
6
6
  ---
7
- Makefile | 12 +++---------
7
+ Makefile | 9 ++-------
8
8
  gypfiles/all.gyp | 33 ---------------------------------
9
- 2 files changed, 3 insertions(+), 42 deletions(-)
9
+ 2 files changed, 2 insertions(+), 40 deletions(-)
10
10
 
11
11
  diff --git a/Makefile b/Makefile
12
- index ed5b3a7fab..04eddb5e8a 100644
12
+ index eb146ac244..902832af48 100644
13
13
  --- a/Makefile
14
14
  +++ b/Makefile
15
- @@ -265,15 +265,9 @@ ANDROID_ARCHES = android_ia32 android_x64 android_arm android_arm64 \
16
- android_mipsel android_x87
15
+ @@ -268,14 +268,9 @@ ANDROID_ARCHES = android_ia32 android_x64 android_arm android_arm64 \
16
+ android_mipsel
17
17
 
18
18
  # List of files that trigger Makefile regeneration:
19
19
  -GYPFILES = third_party/icu/icu.gypi third_party/icu/icu.gyp \
20
20
  - gypfiles/shim_headers.gypi gypfiles/features.gypi \
21
21
  - gypfiles/standalone.gypi \
22
- - gypfiles/toolchain.gypi gypfiles/all.gyp gypfiles/mac/asan.gyp \
22
+ +GYPFILES = gypfiles/features.gypi gypfiles/standalone.gypi \
23
+ gypfiles/toolchain.gypi gypfiles/all.gyp gypfiles/mac/asan.gyp \
23
24
  - test/cctest/cctest.gyp test/fuzzer/fuzzer.gyp \
24
25
  - test/unittests/unittests.gyp src/v8.gyp \
25
26
  - tools/parser-shell.gyp testing/gmock.gyp testing/gtest.gyp \
26
- - buildtools/third_party/libc++abi/libc++abi.gyp \
27
- - buildtools/third_party/libc++/libc++.gyp samples/samples.gyp \
28
- +GYPFILES = gypfiles/shim_headers.gypi gypfiles/features.gypi \
29
- + gypfiles/standalone.gypi gypfiles/all.gyp \
30
- + gypfiles/mac/asan.gyp src/v8.gyp tools/parser-shell.gyp \
31
- src/third_party/vtune/v8vtune.gyp src/d8.gyp
27
+ - samples/samples.gyp src/third_party/vtune/v8vtune.gyp src/d8.gyp
28
+ + src/v8.gyp src/d8.gyp
32
29
 
33
30
  # If vtunejit=on, the v8vtune.gyp will be appended.
31
+ ifeq ($(vtunejit), on)
34
32
  diff --git a/gypfiles/all.gyp b/gypfiles/all.gyp
35
33
  index bc9d9650eb..96820a0ecc 100644
36
34
  --- a/gypfiles/all.gyp
@@ -83,5 +81,5 @@ index bc9d9650eb..96820a0ecc 100644
83
81
  }
84
82
  ]
85
83
  --
86
- 2.13.3
84
+ 2.14.3
87
85
 
@@ -1,4 +1,4 @@
1
- From fe76837b00357250a01ad71c4cce4b7524dd765f Mon Sep 17 00:00:00 2001
1
+ From 97bb118756e30cea60216d3e74ba352d76001637 Mon Sep 17 00:00:00 2001
2
2
  From: Petko Bordjukov <bordjukov@gmail.com>
3
3
  Date: Mon, 25 Jul 2016 00:05:47 +0300
4
4
  Subject: [PATCH 3/5] Use the -fPIC flag for the static library
@@ -8,10 +8,10 @@ Subject: [PATCH 3/5] Use the -fPIC flag for the static library
8
8
  1 file changed, 1 insertion(+), 1 deletion(-)
9
9
 
10
10
  diff --git a/gypfiles/standalone.gypi b/gypfiles/standalone.gypi
11
- index 6a72a23cfb..fdf27226ad 100644
11
+ index d0d00d3f67..f01bd48596 100644
12
12
  --- a/gypfiles/standalone.gypi
13
13
  +++ b/gypfiles/standalone.gypi
14
- @@ -800,7 +800,7 @@
14
+ @@ -797,7 +797,7 @@
15
15
  [ 'visibility=="hidden" and v8_enable_backtrace==0', {
16
16
  'cflags': [ '-fvisibility=hidden' ],
17
17
  }],
@@ -21,5 +21,5 @@ index 6a72a23cfb..fdf27226ad 100644
21
21
  }],
22
22
  [ 'clang==0 and coverage==1', {
23
23
  --
24
- 2.13.3
24
+ 2.14.3
25
25
 
@@ -1,4 +1,4 @@
1
- From 7b00cf7c2c13d4c528bccd3bc4a91426f4e35145 Mon Sep 17 00:00:00 2001
1
+ From b06fb098489c375a4499fb6a62c92a32a0b282d8 Mon Sep 17 00:00:00 2001
2
2
  From: Jb Aviat <jb@sqreen.io>
3
3
  Date: Mon, 27 Feb 2017 11:14:42 +0200
4
4
  Subject: [PATCH 4/5] Do not embed debug symbols in macOS libraries
@@ -9,10 +9,10 @@ This lowers dramatically the produced binary size
9
9
  1 file changed, 1 insertion(+)
10
10
 
11
11
  diff --git a/gypfiles/standalone.gypi b/gypfiles/standalone.gypi
12
- index fdf27226ad..8c2972fe54 100644
12
+ index f01bd48596..25ca6b8606 100644
13
13
  --- a/gypfiles/standalone.gypi
14
14
  +++ b/gypfiles/standalone.gypi
15
- @@ -1059,6 +1059,7 @@
15
+ @@ -1056,6 +1056,7 @@
16
16
  'GCC_ENABLE_CPP_EXCEPTIONS': 'NO', # -fno-exceptions
17
17
  'GCC_ENABLE_CPP_RTTI': 'NO', # -fno-rtti
18
18
  'GCC_ENABLE_PASCAL_STRINGS': 'NO', # No -mpascal-strings
@@ -21,5 +21,5 @@ index fdf27226ad..8c2972fe54 100644
21
21
  'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES',
22
22
  'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES', # -fvisibility=hidden
23
23
  --
24
- 2.13.3
24
+ 2.14.3
25
25
 
@@ -0,0 +1,81 @@
1
+ From dae2970a6e2f4ac30a1deee21562ac00cce3794a Mon Sep 17 00:00:00 2001
2
+ From: Tobias Tebbi <tebbi@chromium.org>
3
+ Date: Tue, 10 Oct 2017 22:39:41 +0200
4
+ Subject: [PATCH 5/5] avoid constructor inheritance due to compilation issues
5
+
6
+ Constructor inheritance of a templated constructor is causing compilation issues for node.js:
7
+
8
+ https: //github.com/nodejs/node/pull/15362#issue-257007421
9
+ Change-Id: I7d099ff5a1a2fd5b19c11112ddef8fe824e509f7
10
+ Reviewed-on: https://chromium-review.googlesource.com/707008
11
+ Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
12
+ Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
13
+ Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
14
+ Cr-Commit-Position: refs/heads/master@{#48445}
15
+ ---
16
+ src/compiler/common-operator.cc | 4 ++--
17
+ src/compiler/common-operator.h | 12 ++++++++----
18
+ 2 files changed, 10 insertions(+), 6 deletions(-)
19
+
20
+ diff --git a/src/compiler/common-operator.cc b/src/compiler/common-operator.cc
21
+ index c48773920d..d92722f701 100644
22
+ --- a/src/compiler/common-operator.cc
23
+ +++ b/src/compiler/common-operator.cc
24
+ @@ -1255,7 +1255,7 @@ bool IsRestOf(Operator const* op) {
25
+ return OpParameter<bool>(op);
26
+ }
27
+
28
+ -const Operator* CommonOperatorBuilder::ObjectState(int object_id,
29
+ +const Operator* CommonOperatorBuilder::ObjectState(uint32_t object_id,
30
+ int pointer_slots) {
31
+ return new (zone()) Operator1<ObjectStateInfo>( // --
32
+ IrOpcode::kObjectState, Operator::kPure, // opcode
33
+ @@ -1265,7 +1265,7 @@ const Operator* CommonOperatorBuilder::ObjectState(int object_id,
34
+ }
35
+
36
+ const Operator* CommonOperatorBuilder::TypedObjectState(
37
+ - int object_id, const ZoneVector<MachineType>* types) {
38
+ + uint32_t object_id, const ZoneVector<MachineType>* types) {
39
+ return new (zone()) Operator1<TypedObjectStateInfo>( // --
40
+ IrOpcode::kTypedObjectState, Operator::kPure, // opcode
41
+ "TypedObjectState", // name
42
+ diff --git a/src/compiler/common-operator.h b/src/compiler/common-operator.h
43
+ index f7638a3cca..9dfb059518 100644
44
+ --- a/src/compiler/common-operator.h
45
+ +++ b/src/compiler/common-operator.h
46
+ @@ -125,7 +125,8 @@ V8_EXPORT_PRIVATE int ParameterIndexOf(const Operator* const);
47
+ const ParameterInfo& ParameterInfoOf(const Operator* const);
48
+
49
+ struct ObjectStateInfo final : std::pair<uint32_t, int> {
50
+ - using std::pair<uint32_t, int>::pair;
51
+ + ObjectStateInfo(uint32_t object_id, int size)
52
+ + : std::pair<uint32_t, int>(object_id, size) {}
53
+ uint32_t object_id() const { return first; }
54
+ int size() const { return second; }
55
+ };
56
+ @@ -134,7 +135,10 @@ size_t hash_value(ObjectStateInfo const& p);
57
+
58
+ struct TypedObjectStateInfo final
59
+ : std::pair<uint32_t, const ZoneVector<MachineType>*> {
60
+ - using std::pair<uint32_t, const ZoneVector<MachineType>*>::pair;
61
+ + TypedObjectStateInfo(uint32_t object_id,
62
+ + const ZoneVector<MachineType>* machine_types)
63
+ + : std::pair<uint32_t, const ZoneVector<MachineType>*>(object_id,
64
+ + machine_types) {}
65
+ uint32_t object_id() const { return first; }
66
+ const ZoneVector<MachineType>* machine_types() const { return second; }
67
+ };
68
+ @@ -385,8 +389,8 @@ class V8_EXPORT_PRIVATE CommonOperatorBuilder final
69
+ SparseInputMask bitmask);
70
+ const Operator* ArgumentsElementsState(bool is_rest);
71
+ const Operator* ArgumentsLengthState(bool is_rest);
72
+ - const Operator* ObjectState(int object_id, int pointer_slots);
73
+ - const Operator* TypedObjectState(int object_id,
74
+ + const Operator* ObjectState(uint32_t object_id, int pointer_slots);
75
+ + const Operator* TypedObjectState(uint32_t object_id,
76
+ const ZoneVector<MachineType>* types);
77
+ const Operator* FrameState(BailoutId bailout_id,
78
+ OutputFrameStateCombine state_combine,
79
+ --
80
+ 2.14.3
81
+
@@ -0,0 +1,37 @@
1
+ From f7b393110c0bc58f4fde7589397b5f931a18ea4b Mon Sep 17 00:00:00 2001
2
+ From: Pierre Langlois <pierre.langlois@arm.com>
3
+ Date: Tue, 07 Nov 2017 14:26:17 +0000
4
+ Subject: [PATCH] Arm64: Fix host architecture detection
5
+
6
+ This allows the install-sysroot.py script to run as a hook on an Arm64
7
+ platform. This was tested in v8 and allows us to run `gclient sync` natively.
8
+
9
+ Bug: v8:5075
10
+ Change-Id: Ie2f11a5a6e30973be7ab4ef032abb8c3c7e9591b
11
+ Reviewed-on: https://chromium-review.googlesource.com/756704
12
+ Reviewed-by: John Budorick <jbudorick@chromium.org>
13
+ Commit-Queue: John Budorick <jbudorick@chromium.org>
14
+ Cr-Commit-Position: refs/heads/master@{#514463}
15
+ ---
16
+
17
+ diff --git a/build/detect_host_arch.py b/build/detect_host_arch.py
18
+ index 8d6a1ba..0e491bc 100755
19
+ --- a/build/detect_host_arch.py
20
+ +++ b/build/detect_host_arch.py
21
+ @@ -21,6 +21,8 @@
22
+ host_arch = 'x64'
23
+ elif host_arch.startswith('arm'):
24
+ host_arch = 'arm'
25
+ + elif host_arch.startswith('aarch64'):
26
+ + host_arch = 'arm64'
27
+ elif host_arch.startswith('mips'):
28
+ host_arch = 'mips'
29
+ elif host_arch.startswith('ppc'):
30
+ @@ -35,6 +37,8 @@
31
+ # the python binary.
32
+ if host_arch == 'x64' and platform.architecture()[0] == '32bit':
33
+ host_arch = 'ia32'
34
+ + if host_arch == 'arm64' and platform.architecture()[0] == '32bit':
35
+ + host_arch = 'arm'
36
+
37
+ return host_arch
@@ -44,6 +44,7 @@
44
44
  /win_toolchain/*.timestamps
45
45
  /win_toolchain/.vspro
46
46
  /win_toolchain/data.json
47
+ /win_toolchain/vs_files.ciopfs
47
48
 
48
49
  # Ignore ctags/cscope index files
49
50
  /TAGS
@@ -8,7 +8,6 @@ jochen@chromium.org
8
8
  maruel@chromium.org
9
9
  nodir@chromium.org
10
10
  petermayo@chromium.org
11
- phajdan.jr@chromium.org
12
11
  tandrii@chromium.org
13
12
 
14
13
  per-file ninja*=thakis@chromium.org
@@ -16,6 +16,7 @@ import os
16
16
  import socket
17
17
  import sys
18
18
  import threading
19
+ import time
19
20
  import urllib
20
21
  import urlparse
21
22
  import webbrowser
@@ -102,6 +103,125 @@ class LoginRequiredError(AuthenticationError):
102
103
  super(LoginRequiredError, self).__init__(msg)
103
104
 
104
105
 
106
+ class LuciContextAuthError(Exception):
107
+ """Raised on errors related to unsuccessful attempts to load LUCI_CONTEXT"""
108
+
109
+
110
+ def get_luci_context_access_token():
111
+ """Returns a valid AccessToken from the local LUCI context auth server.
112
+
113
+ Adapted from
114
+ https://chromium.googlesource.com/infra/luci/luci-py/+/master/client/libs/luci_context/luci_context.py
115
+ See the link above for more details.
116
+
117
+ Returns:
118
+ AccessToken if LUCI_CONTEXT is present and attempt to load it is successful.
119
+ None if LUCI_CONTEXT is absent.
120
+
121
+ Raises:
122
+ LuciContextAuthError if the attempt to load LUCI_CONTEXT
123
+ and request its access token is unsuccessful.
124
+ """
125
+ return _get_luci_context_access_token(os.environ, datetime.datetime.utcnow())
126
+
127
+
128
+ def _get_luci_context_access_token(env, now):
129
+ ctx_path = env.get('LUCI_CONTEXT')
130
+ if not ctx_path:
131
+ return None
132
+ ctx_path = ctx_path.decode(sys.getfilesystemencoding())
133
+ logging.debug('Loading LUCI_CONTEXT: %r', ctx_path)
134
+
135
+ def authErr(msg, *args):
136
+ error_msg = msg % args
137
+ ex = sys.exc_info()[1]
138
+ if not ex:
139
+ logging.error(error_msg)
140
+ raise LuciContextAuthError(error_msg)
141
+ logging.exception(error_msg)
142
+ raise LuciContextAuthError('%s: %s' % (error_msg, ex))
143
+
144
+ try:
145
+ loaded = _load_luci_context(ctx_path)
146
+ except (OSError, IOError, ValueError):
147
+ authErr('Failed to open, read or decode LUCI_CONTEXT')
148
+ try:
149
+ local_auth = loaded.get('local_auth')
150
+ except AttributeError:
151
+ authErr('LUCI_CONTEXT not in proper format')
152
+ # failed to grab local_auth from LUCI context
153
+ if not local_auth:
154
+ logging.debug('local_auth: no local auth found')
155
+ return None
156
+ try:
157
+ account_id = local_auth.get('default_account_id')
158
+ secret = local_auth.get('secret')
159
+ rpc_port = int(local_auth.get('rpc_port'))
160
+ except (AttributeError, ValueError):
161
+ authErr('local_auth: unexpected local auth format')
162
+
163
+ if not secret:
164
+ authErr('local_auth: no secret returned')
165
+ # if account_id not specified, LUCI_CONTEXT should not be picked up
166
+ if not account_id:
167
+ return None
168
+
169
+ logging.debug('local_auth: requesting an access token for account "%s"',
170
+ account_id)
171
+ http = httplib2.Http()
172
+ host = '127.0.0.1:%d' % rpc_port
173
+ resp, content = http.request(
174
+ uri='http://%s/rpc/LuciLocalAuthService.GetOAuthToken' % host,
175
+ method='POST',
176
+ body=json.dumps({
177
+ 'account_id': account_id,
178
+ 'scopes': OAUTH_SCOPES.split(' '),
179
+ 'secret': secret,
180
+ }),
181
+ headers={'Content-Type': 'application/json'})
182
+ if resp.status != 200:
183
+ err = ('local_auth: Failed to grab access token from '
184
+ 'LUCI context server with status %d: %r')
185
+ authErr(err, resp.status, content)
186
+ try:
187
+ token = json.loads(content)
188
+ error_code = token.get('error_code')
189
+ error_message = token.get('error_message')
190
+ access_token = token.get('access_token')
191
+ expiry = token.get('expiry')
192
+ except (AttributeError, ValueError):
193
+ authErr('local_auth: Unexpected access token response format')
194
+ if error_code:
195
+ authErr('local_auth: Error %d in retrieving access token: %s',
196
+ error_code, error_message)
197
+ if not access_token:
198
+ authErr('local_auth: No access token returned from LUCI context server')
199
+ expiry_dt = None
200
+ if expiry:
201
+ try:
202
+ expiry_dt = datetime.datetime.utcfromtimestamp(expiry)
203
+ logging.debug(
204
+ 'local_auth: got an access token for '
205
+ 'account "%s" that expires in %d sec',
206
+ account_id, (expiry_dt - now).total_seconds())
207
+ except (TypeError, ValueError):
208
+ authErr('Invalid expiry in returned token')
209
+ else:
210
+ logging.debug(
211
+ 'local auth: got an access token for '
212
+ 'account "%s" that does not expire',
213
+ account_id)
214
+ access_token = AccessToken(access_token, expiry_dt)
215
+ if _needs_refresh(access_token, now=now):
216
+ authErr('local_auth: the returned access token needs to be refreshed')
217
+ return access_token
218
+
219
+
220
+ def _load_luci_context(ctx_path):
221
+ with open(ctx_path) as f:
222
+ return json.load(f)
223
+
224
+
105
225
  def make_auth_config(
106
226
  use_oauth2=None,
107
227
  save_cookies=None,
@@ -219,6 +339,9 @@ def get_authenticator_for_host(hostname, config):
219
339
 
220
340
  Returns:
221
341
  Authenticator object.
342
+
343
+ Raises:
344
+ AuthenticationError if hostname is invalid.
222
345
  """
223
346
  hostname = hostname.lower().rstrip('/')
224
347
  # Append some scheme, otherwise urlparse puts hostname into parsed.path.
@@ -303,23 +426,43 @@ class Authenticator(object):
303
426
  with self._lock:
304
427
  return bool(self._get_cached_credentials())
305
428
 
306
- def get_access_token(self, force_refresh=False, allow_user_interaction=False):
429
+ def get_access_token(self, force_refresh=False, allow_user_interaction=False,
430
+ use_local_auth=True):
307
431
  """Returns AccessToken, refreshing it if necessary.
308
432
 
309
433
  Args:
310
434
  force_refresh: forcefully refresh access token even if it is not expired.
311
435
  allow_user_interaction: True to enable blocking for user input if needed.
436
+ use_local_auth: default to local auth if needed.
312
437
 
313
438
  Raises:
314
439
  AuthenticationError on error or if authentication flow was interrupted.
315
440
  LoginRequiredError if user interaction is required, but
316
441
  allow_user_interaction is False.
317
442
  """
443
+ def get_loc_auth_tkn():
444
+ exi = sys.exc_info()
445
+ if not use_local_auth:
446
+ logging.error('Failed to create access token')
447
+ raise
448
+ try:
449
+ self._access_token = get_luci_context_access_token()
450
+ if not self._access_token:
451
+ logging.error('Failed to create access token')
452
+ raise
453
+ return self._access_token
454
+ except LuciContextAuthError:
455
+ logging.exception('Failed to use local auth')
456
+ raise exi[0], exi[1], exi[2]
457
+
318
458
  with self._lock:
319
459
  if force_refresh:
320
460
  logging.debug('Forcing access token refresh')
321
- self._access_token = self._create_access_token(allow_user_interaction)
322
- return self._access_token
461
+ try:
462
+ self._access_token = self._create_access_token(allow_user_interaction)
463
+ return self._access_token
464
+ except LoginRequiredError:
465
+ return get_loc_auth_tkn()
323
466
 
324
467
  # Load from on-disk cache on a first access.
325
468
  if not self._access_token:
@@ -331,7 +474,11 @@ class Authenticator(object):
331
474
  self._access_token = self._load_access_token()
332
475
  # Nope, still expired, need to run the refresh flow.
333
476
  if not self._access_token or _needs_refresh(self._access_token):
334
- self._access_token = self._create_access_token(allow_user_interaction)
477
+ try:
478
+ self._access_token = self._create_access_token(
479
+ allow_user_interaction)
480
+ except LoginRequiredError:
481
+ get_loc_auth_tkn()
335
482
 
336
483
  return self._access_token
337
484
 
@@ -548,11 +695,12 @@ def _read_refresh_token_json(path):
548
695
  'Failed to read refresh token from %s: missing key %s' % (path, e))
549
696
 
550
697
 
551
- def _needs_refresh(access_token):
698
+ def _needs_refresh(access_token, now=None):
552
699
  """True if AccessToken should be refreshed."""
553
700
  if access_token.expires_at is not None:
701
+ now = now or datetime.datetime.utcnow()
554
702
  # Allow 5 min of clock skew between client and backend.
555
- now = datetime.datetime.utcnow() + datetime.timedelta(seconds=300)
703
+ now += datetime.timedelta(seconds=300)
556
704
  return now >= access_token.expires_at
557
705
  # Token without expiration time never expires.
558
706
  return False