libv8 6.0.286.54.3 → 6.2.414.42.0beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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