Feature Request P3
Status Update
Comments
fs...@opera.com <fs...@opera.com> #2
Peria, do you have any ideas/thoughts?
Note that Peria is OOO til next year.
Note that Peria is OOO til next year.
kt...@gmail.com <kt...@gmail.com> #3
One idea would be to only build do v8_context_snapshot in is_official_build modes. Then builds of chrome/android and chrome/win would be much faster in non-official mode (since we only need to build blink + deps once), and most people probably don't need the v8 context snapshot for development. It'd be a workaround, but maybe a good one. (official 32-bit builds still wouldn't build on mac, but that's a much smaller limitation.)
sh...@chromium.org <sh...@chromium.org> #4
The following revision refers to this bug:
https://chromium.googlesource.com/chromium/src.git/+/ce96b47065492432a419a12ee14ed2bf3ee59084
commit ce96b47065492432a419a12ee14ed2bf3ee59084
Author: Nico Weber <thakis@chromium.org>
Date: Thu Dec 14 18:52:31 2017
win/cross: Allow building 64-bit chrome/win on Mac hosts.
64-bit builds have been working for a while now.
32-bit chrome/win still cannot build on Mac hosts due tohttps://crbug.com/chromium/794838 .
TBR=brettw
Bug: 774209,794838
Change-Id: I762853e7e5d2b4470642402e8b585dfe8f84b53e
Reviewed-on:https://chromium-review.googlesource.com/826010
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Hans Wennborg <hans@chromium.org>
Cr-Commit-Position: refs/heads/master@{#524129}
[modify]https://crrev.com/ce96b47065492432a419a12ee14ed2bf3ee59084/build/config/BUILDCONFIG.gn
[modify]https://crrev.com/ce96b47065492432a419a12ee14ed2bf3ee59084/docs/win_cross.md
commit ce96b47065492432a419a12ee14ed2bf3ee59084
Author: Nico Weber <thakis@chromium.org>
Date: Thu Dec 14 18:52:31 2017
win/cross: Allow building 64-bit chrome/win on Mac hosts.
64-bit builds have been working for a while now.
32-bit chrome/win still cannot build on Mac hosts due to
TBR=brettw
Bug: 774209,794838
Change-Id: I762853e7e5d2b4470642402e8b585dfe8f84b53e
Reviewed-on:
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Hans Wennborg <hans@chromium.org>
Cr-Commit-Position: refs/heads/master@{#524129}
[modify]
[modify]
sc...@chromium.org <sc...@chromium.org> #5
here are some actual errors:
$ ninja -C out/gnwin -k 0 clang_x86/obj/base/base/base_jumbo_S.o^
[1/5] ASM clang_x86/obj/base/base/base_jumbo_S.o
FAILED: clang_x86/obj/base/base/base_jumbo_S.o ./../../base/mac/call_with_eh_frame_asm.S:25:9: error: register %rbp is only available in 64-bit mode
pushq %rbp
^~~~
./../../base/mac/call_with_eh_frame_asm.S:27:19: error: register %rbp is only available in 64-bit mode
.cfi_offset %rbp, -16
^
./../../base/mac/call_with_eh_frame_asm.S:28:8: error: register %rsp is only available in 64-bit mode
movq %rsp, %rbp
^~~~
./../../base/mac/call_with_eh_frame_asm.S:29:29: error: register %rbp is only available in 64-bit mode
.cfi_def_cfa_register %rbp
^
./../../base/mac/call_with_eh_frame_asm.S:32:11: error: register %rdi is only available in 64-bit mode
movq 16(%rdi), %rax
^~~~
./../../base/mac/call_with_eh_frame_asm.S:36:10: error: register %rax is only available in 64-bit mode
callq *%rax
^~~~
./../../base/mac/call_with_eh_frame_asm.S:38:8: error: register %rbp is only available in 64-bit mode
popq %rbp
^~~~
./../../base/mac/call_with_eh_frame_asm.S:45:8: error: register %rax is only available in 64-bit mode
movq %rax, %rdi
^~~~
./../../base/mac/call_with_eh_frame_asm.S:46:3: error: instruction requires: 64-bit mode
callq ___cxa_begin_catch
^
[2/5] OBJCXX clang_x86/obj/base/base/base_jumbo_mm.o
FAILED: clang_x86/obj/base/base/base_jumbo_mm.o
In file included from ./../../base/mac/mac_util.mm:23 :
../../base/mac/sdk_forward_declarations.h:99:12: error: cannot define category for undefined class 'NSUserActivity'
@interface NSUserActivity (YosemiteSDK)
^
../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h:23:8: note: forward declaration of class here
@class NSUserActivity;
^
[3/5] CXX clang_x86/obj/base/base/base_jumbo_4.o
FAILED: clang_x86/obj/base/base/base_jumbo_4.o
In file included from clang_x86/gen/base/base_jumbo_4.cc:28:
./../../base/profiler/native_stack_sampler_mac.cc:130:3: error: no matching function for call to 'getsegmentdata'
getsegmentdata(mach_header, SEG_TEXT, &module_size);
^~~~~~~~~~~~~~
../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/mach-o/getsect.h:70:17: note: candidate function not viable: no known conversion from 'const mach_header_64 *' to 'const struct mach_header *' for 1st argument
extern uint8_t *getsegmentdata(
^
[4/5] CXX clang_x86/obj/base/base/base_jumbo_7.o
FAILED: clang_x86/obj/base/base/base_jumbo_7.o
./../../base/time/time_exploded_posix.cc:28:1: error: static_assert failed "Y2038 problem!"
static_assert(sizeof(time_t) >= 8, "Y2038 problem!");
^ ~~~~~~~~~~~~~~~~~~~
$ ninja -C out/gnwin -k 0 clang_x86/obj/base/base/base_jumbo_S.o^
[1/5] ASM clang_x86/obj/base/base/base_jumbo_S.o
FAILED: clang_x86/obj/base/base/base_jumbo_S.o ./../../base/mac/call_with_eh_frame_asm.S:25:9: error: register %rbp is only available in 64-bit mode
pushq %rbp
^~~~
./../../base/mac/call_with_eh_frame_asm.S:27:19: error: register %rbp is only available in 64-bit mode
.cfi_offset %rbp, -16
^
./../../base/mac/call_with_eh_frame_asm.S:28:8: error: register %rsp is only available in 64-bit mode
movq %rsp, %rbp
^~~~
./../../base/mac/call_with_eh_frame_asm.S:29:29: error: register %rbp is only available in 64-bit mode
.cfi_def_cfa_register %rbp
^
./../../base/mac/call_with_eh_frame_asm.S:32:11: error: register %rdi is only available in 64-bit mode
movq 16(%rdi), %rax
^~~~
./../../base/mac/call_with_eh_frame_asm.S:36:10: error: register %rax is only available in 64-bit mode
callq *%rax
^~~~
./../../base/mac/call_with_eh_frame_asm.S:38:8: error: register %rbp is only available in 64-bit mode
popq %rbp
^~~~
./../../base/mac/call_with_eh_frame_asm.S:45:8: error: register %rax is only available in 64-bit mode
movq %rax, %rdi
^~~~
./../../base/mac/call_with_eh_frame_asm.S:46:3: error: instruction requires: 64-bit mode
callq ___cxa_begin_catch
^
[2/5] OBJCXX clang_x86/obj/base/base/base_jumbo_mm.o
FAILED: clang_x86/obj/base/base/base_jumbo_mm.o
In file included from ./../../base/mac/
../../base/mac/sdk_forward_declarations.h:99:12: error: cannot define category for undefined class 'NSUserActivity'
@interface NSUserActivity (YosemiteSDK)
^
../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h:23:8: note: forward declaration of class here
@class NSUserActivity;
^
[3/5] CXX clang_x86/obj/base/base/base_jumbo_4.o
FAILED: clang_x86/obj/base/base/base_jumbo_4.o
In file included from clang_x86/gen/base/base_jumbo_4.cc:28:
./../../base/profiler/native_stack_sampler_mac.cc:130:3: error: no matching function for call to 'getsegmentdata'
getsegmentdata(mach_header, SEG_TEXT, &module_size);
^~~~~~~~~~~~~~
../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/mach-o/getsect.h:70:17: note: candidate function not viable: no known conversion from 'const mach_header_64 *' to 'const struct mach_header *' for 1st argument
extern uint8_t *getsegmentdata(
^
[4/5] CXX clang_x86/obj/base/base/base_jumbo_7.o
FAILED: clang_x86/obj/base/base/base_jumbo_7.o
./../../base/time/time_exploded_posix.cc:28:1: error: static_assert failed "Y2038 problem!"
static_assert(sizeof(time_t) >= 8, "Y2038 problem!");
^ ~~~~~~~~~~~~~~~~~~~
sh...@chromium.org <sh...@chromium.org> #6
Re #2:
As a workaround, I agree to limit V8Context snapshot feature
is_official_build || host_os == target_os || some_exceptional_states
but it must be independent from this issue.
According to the errors in #4, v8_snapshot_toolchain seems wrong for this situation. Let me investigate the root cause for this issue itself.
And let us discuss which platform we should enable/disable the feature separately.
As a workaround, I agree to limit V8Context snapshot feature
is_official_build || host_os == target_os || some_exceptional_states
but it must be independent from this issue.
According to the errors in #4, v8_snapshot_toolchain seems wrong for this situation. Let me investigate the root cause for this issue itself.
And let us discuss which platform we should enable/disable the feature separately.
fs...@opera.com <fs...@opera.com> #7
[Empty comment from Monorail migration]
[Deleted User] <[Deleted User]> #8
The following revision refers to this bug:
https://chromium.googlesource.com/chromium/src.git/+/d963b389afe33d3b40f96ab47ee8ec81fa4daca5
commit d963b389afe33d3b40f96ab47ee8ec81fa4daca5
Author: Hitoshi Yoshida <peria@chromium.org>
Date: Wed Jan 24 05:49:16 2018
cleanup: clean up v8_context_snapshot.gni
V8 context snapshot feature is enabled on complex conditions.
This CL make the flag clear what can be opt-in/opt-out and
what can't be controlled.
Bug: 764576, 794838
Change-Id: Ie531a5fa689bfed5b6c02906124ba68bd503411b
Reviewed-on:https://chromium-review.googlesource.com/882624
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531447}
[modify]https://crrev.com/d963b389afe33d3b40f96ab47ee8ec81fa4daca5/tools/v8_context_snapshot/v8_context_snapshot.gni
commit d963b389afe33d3b40f96ab47ee8ec81fa4daca5
Author: Hitoshi Yoshida <peria@chromium.org>
Date: Wed Jan 24 05:49:16 2018
cleanup: clean up v8_context_snapshot.gni
V8 context snapshot feature is enabled on complex conditions.
This CL make the flag clear what can be opt-in/opt-out and
what can't be controlled.
Bug: 764576, 794838
Change-Id: Ie531a5fa689bfed5b6c02906124ba68bd503411b
Reviewed-on:
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531447}
[modify]
fs...@opera.com <fs...@opera.com> #9
Now we can build Chromium for Windows on 32bit MacOS w/o "v8_use_snapshot=false".
My CL in #7 made it not to create the snapshot for Blink. It uses a snapshot for V8 as we did in past / we are doing on Android/ChromeOS.
The key issue is that we cannot build Blink for 32bit MacOSX. Some code is written in assembly only for x64.
e.g.https://cs.chromium.org/chromium/src/base/mac/call_with_eh_frame_asm.S
My CL in #7 made it not to create the snapshot for Blink. It uses a snapshot for V8 as we did in past / we are doing on Android/ChromeOS.
The key issue is that we cannot build Blink for 32bit MacOSX. Some code is written in assembly only for x64.
e.g.
[Deleted User] <[Deleted User]> #10
The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/a0c30858ffb5572bf2258732ce38a62461cb7aef
commit a0c30858ffb5572bf2258732ce38a62461cb7aef
Author: Nico Weber <thakis@chromium.org>
Date: Tue Mar 26 15:12:51 2019
Disable v8_use_snapshot by default in 32-bit mac->win cross builds.
The snapshot requires building host code in target bitness, and
chromium's base doesn't build in 32-bit on mac hosts due to some
64-bit-only assembly code.
Bug: chromium:794838
Change-Id: I89887fe63c88c435bc4743c3d99f22ffe79a5bd6
Reviewed-on:https://chromium-review.googlesource.com/c/v8/v8/+/1534635
Auto-Submit: Nico Weber <thakis@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60467}
[modify]https://crrev.com/a0c30858ffb5572bf2258732ce38a62461cb7aef/gni/v8.gni
commit a0c30858ffb5572bf2258732ce38a62461cb7aef
Author: Nico Weber <thakis@chromium.org>
Date: Tue Mar 26 15:12:51 2019
Disable v8_use_snapshot by default in 32-bit mac->win cross builds.
The snapshot requires building host code in target bitness, and
chromium's base doesn't build in 32-bit on mac hosts due to some
64-bit-only assembly code.
Bug: chromium:794838
Change-Id: I89887fe63c88c435bc4743c3d99f22ffe79a5bd6
Reviewed-on:
Auto-Submit: Nico Weber <thakis@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60467}
[modify]
pd...@chromium.org <pd...@chromium.org> #11
The following revision refers to this bug:
https://chromium.googlesource.com/chromium/src.git/+/705836c24f048d822fdbfed10601b49b44e621e1
commit 705836c24f048d822fdbfed10601b49b44e621e1
Author: Nico Weber <thakis@chromium.org>
Date: Tue Mar 26 17:18:15 2019
Allow 32-bit mac->win cross builds (and as a side effect, arm64 cross builds).
Afterhttps://chromium-review.googlesource.com/c/v8/v8/+/1534635 this
works well enough automatically.
Additionally, this assert was unintentionally also hit with target_cpu =
"arm64", so this CL fixes that too.
Bug: 794838,893460
Change-Id: I32d7a67b2f818aacfaeef39a03a1107b596b9dfb
Reviewed-on:https://chromium-review.googlesource.com/c/chromium/src/+/1536310
Auto-Submit: Nico Weber <thakis@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#644395}
[modify]https://crrev.com/705836c24f048d822fdbfed10601b49b44e621e1/build/config/BUILDCONFIG.gn
[modify]https://crrev.com/705836c24f048d822fdbfed10601b49b44e621e1/docs/win_cross.md
commit 705836c24f048d822fdbfed10601b49b44e621e1
Author: Nico Weber <thakis@chromium.org>
Date: Tue Mar 26 17:18:15 2019
Allow 32-bit mac->win cross builds (and as a side effect, arm64 cross builds).
After
works well enough automatically.
Additionally, this assert was unintentionally also hit with target_cpu =
"arm64", so this CL fixes that too.
Bug: 794838,893460
Change-Id: I32d7a67b2f818aacfaeef39a03a1107b596b9dfb
Reviewed-on:
Auto-Submit: Nico Weber <thakis@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#644395}
[modify]
[modify]
[Deleted User] <[Deleted User]> #12
The following revision refers to this bug:
https://chromium.googlesource.com/chromium/src.git/+/193ddf4426c3d31e11365e1081d0b147f3e5cf9b
commit 193ddf4426c3d31e11365e1081d0b147f3e5cf9b
Author: Hans Wennborg <hans@chromium.org>
Date: Mon Oct 07 14:14:35 2019
build: Assert that Win cross-builds from Mac are 64-bit.
Bug: 794838
Change-Id: I9bdf48936e28a1ae788fa1277ac664e1eab1d9e4
Reviewed-on:https://chromium-review.googlesource.com/c/chromium/src/+/1844787
Commit-Queue: Hans Wennborg <hans@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#703292}
[modify]https://crrev.com/193ddf4426c3d31e11365e1081d0b147f3e5cf9b/build/win/BUILD.gn
[modify]https://crrev.com/193ddf4426c3d31e11365e1081d0b147f3e5cf9b/docs/win_cross.md
commit 193ddf4426c3d31e11365e1081d0b147f3e5cf9b
Author: Hans Wennborg <hans@chromium.org>
Date: Mon Oct 07 14:14:35 2019
build: Assert that Win cross-builds from Mac are 64-bit.
Bug: 794838
Change-Id: I9bdf48936e28a1ae788fa1277ac664e1eab1d9e4
Reviewed-on:
Commit-Queue: Hans Wennborg <hans@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#703292}
[modify]
[modify]
ul...@gmail.com <ul...@gmail.com> #13
This issue was migrated from crbug.com/chromium/794838?no_tracker_redirect=1
[Multiple monorail components: Blink>Bindings, Build]
[Monorail blocking:crbug.com/chromium/495204 , crbug.com/chromium/764576 ]
[Monorail components added to Component Tags custom field.]
[Multiple monorail components: Blink>Bindings, Build]
[Monorail blocking:
[Monorail components added to Component Tags custom field.]
sc...@chromium.org <sc...@chromium.org> #14
Maybe comment on the spec?
is...@google.com <is...@google.com> #15
This issue was migrated from crbug.com/chromium/691398?no_tracker_redirect=1
[Monorail blocking:crbug.com/chromium/225863 ]
[Monorail components added to Component Tags custom field.]
[Monorail blocking:
[Monorail components added to Component Tags custom field.]
Description
Steps to reproduce the problem:
1. Try to use any value of the SVG/CSS property `vector-effect` other than `non-scaling-stroke`.
What is the expected behavior?
See spec:
What went wrong?
These are not implemented / nothing happens.
Did this work before? N/A
Does this work in other browsers? N/A
Chrome version: 56.0.2924.87 Channel: stable
OS Version: 10.0
Flash Version:
The vector effects options make it possible to create responsive graphics where parts of the graphic scale or are transformed, but other parts maintain an absolute size or orientation. They are frequently requested by people using SVG for data visualization or mapping, where it is desired that the overall map or chart scales or rotates, but the size and orientation of text labels or data markers stays constant.
Blink, WebKit, and Gecko all support one value: non-scaling-stroke (albeit with buggy edge-cases). Unsupported values defined in the spec are:
- non-scaling-size
- non-rotation
- fixed-position
The SVG 2 spec also allows the author to indicate whether the size, rotation, or position should be reset relative to the nearest <svg> viewBox, or relative to the original screen coordinate system.
A team at KDDI has been working on an implementation for Gecko, but core Firefox team has indicated that they would not ship it unless & until they get an "intent to implement" from at least one other browser.
Therefore, I am creating this issue to monitor interest in the feature for Blink, and hopefully result in that commitment.
Firefox issue:
More discussion here: