Summary: | Make the MASM_PROBE mechanism mandatory for DFG and FTL builds. | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Mark Lam <mark.lam> | ||||||||||||
Component: | JavaScriptCore | Assignee: | Mark Lam <mark.lam> | ||||||||||||
Status: | RESOLVED FIXED | ||||||||||||||
Severity: | Normal | CC: | annulen, benjamin, bugs-noreply, buildbot, cdumez, clopez, cmarcelo, commit-queue, dbates, guijemont, keith_miller, msaboff, ossy, pvollan, ryanhaddad, saam, simon.fraser, webkit-bug-importer, ysuzuki | ||||||||||||
Priority: | P2 | Keywords: | InRadar | ||||||||||||
Version: | WebKit Nightly Build | ||||||||||||||
Hardware: | Unspecified | ||||||||||||||
OS: | Unspecified | ||||||||||||||
Bug Depends on: | 175514 | ||||||||||||||
Bug Blocks: | 174645 | ||||||||||||||
Attachments: |
|
Description
Mark Lam
2017-08-10 15:01:43 PDT
Looks like I have to disable it for Windows as well. See also: https://bugs.webkit.org/show_bug.cgi?id=175447 https://bugs.webkit.org/show_bug.cgi?id=175449 Created attachment 317862 [details]
proposed patch.
Let's try this on the EWS.
Attachment 317862 [details] did not pass style-queue:
ERROR: Source/WTF/wtf/Platform.h:785: CPP comments are not allowed in Platform.h, please use C comments /* ... */ [build/cpp_comment] [5]
ERROR: Source/WTF/wtf/Platform.h:788: CPP comments are not allowed in Platform.h, please use C comments /* ... */ [build/cpp_comment] [5]
Total errors found: 2 in 3 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 317864 [details]
proposed patch.
Attachment 317864 [details] did not pass style-queue:
ERROR: Source/WTF/wtf/Platform.h:785: CPP comments are not allowed in Platform.h, please use C comments /* ... */ [build/cpp_comment] [5]
ERROR: Source/WTF/wtf/Platform.h:788: CPP comments are not allowed in Platform.h, please use C comments /* ... */ [build/cpp_comment] [5]
Total errors found: 2 in 3 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 317877 [details]
proposed patch.
Attachment 317877 [details] did not pass style-queue:
ERROR: Source/JavaScriptCore/assembler/MacroAssemblerPrinter.cpp:55: preprocessor directives (e.g., #ifdef, #define, #import) should never be indented. [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/assembler/MacroAssemblerPrinter.cpp:57: preprocessor directives (e.g., #ifdef, #define, #import) should never be indented. [whitespace/indent] [4]
ERROR: Source/WTF/wtf/Platform.h:785: CPP comments are not allowed in Platform.h, please use C comments /* ... */ [build/cpp_comment] [5]
ERROR: Source/WTF/wtf/Platform.h:788: CPP comments are not allowed in Platform.h, please use C comments /* ... */ [build/cpp_comment] [5]
Total errors found: 4 in 4 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 317892 [details]
proposed patch.
Attachment 317892 [details] did not pass style-queue:
ERROR: Source/JavaScriptCore/assembler/MacroAssemblerPrinter.cpp:55: preprocessor directives (e.g., #ifdef, #define, #import) should never be indented. [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/assembler/MacroAssemblerPrinter.cpp:57: preprocessor directives (e.g., #ifdef, #define, #import) should never be indented. [whitespace/indent] [4]
ERROR: Source/WTF/wtf/Platform.h:785: CPP comments are not allowed in Platform.h, please use C comments /* ... */ [build/cpp_comment] [5]
ERROR: Source/WTF/wtf/Platform.h:788: CPP comments are not allowed in Platform.h, please use C comments /* ... */ [build/cpp_comment] [5]
Total errors found: 4 in 5 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 317903 [details]
patch for landing w/ Windows fix.
Thanks for the review.
Attachment 317903 [details] did not pass style-queue:
ERROR: Source/JavaScriptCore/assembler/MacroAssemblerPrinter.cpp:55: preprocessor directives (e.g., #ifdef, #define, #import) should never be indented. [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/assembler/MacroAssemblerPrinter.cpp:57: preprocessor directives (e.g., #ifdef, #define, #import) should never be indented. [whitespace/indent] [4]
ERROR: Source/WTF/wtf/Platform.h:785: CPP comments are not allowed in Platform.h, please use C comments /* ... */ [build/cpp_comment] [5]
ERROR: Source/WTF/wtf/Platform.h:788: CPP comments are not allowed in Platform.h, please use C comments /* ... */ [build/cpp_comment] [5]
Total errors found: 4 in 5 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 317903 [details] patch for landing w/ Windows fix. Clearing flags on attachment: 317903 Committed r220579: <http://trac.webkit.org/changeset/220579> All reviewed patches have been landed. Closing bug. (In reply to WebKit Commit Bot from comment #14) > Comment on attachment 317903 [details] > patch for landing w/ Windows fix. > > Clearing flags on attachment: 317903 > > Committed r220579: <http://trac.webkit.org/changeset/220579> It seems this broke the build on WebKitGTK+ x86 (32-bits): /tmp/cc52ttH2.s: Assembler messages: /tmp/cc52ttH2.s:6: Error: no such instruction: `pushfd' /tmp/cc52ttH2.s:88: Error: no such instruction: `popfd' https://build.webkit.org/builders/GTK%20Linux%2032-bit%20Release/builds/3262/steps/compile-webkit/logs/stdio/text (In reply to Carlos Alberto Lopez Perez from comment #16) > (In reply to WebKit Commit Bot from comment #14) > > Comment on attachment 317903 [details] > > patch for landing w/ Windows fix. > > > > Clearing flags on attachment: 317903 > > > > Committed r220579: <http://trac.webkit.org/changeset/220579> > > It seems this broke the build on WebKitGTK+ x86 (32-bits): > > /tmp/cc52ttH2.s: Assembler messages: > /tmp/cc52ttH2.s:6: Error: no such instruction: `pushfd' > /tmp/cc52ttH2.s:88: Error: no such instruction: `popfd' > > https://build.webkit.org/builders/GTK%20Linux%2032-bit%20Release/builds/3262/ > steps/compile-webkit/logs/stdio/text According to https://en.wikipedia.org/wiki/X86_instruction_listings, pushfd and popfd have been valid x86 instructions since the 80386. This looks like a gad (or whatever assembler you're using) issue. I don't have access to a GTK machine. Can you or someone on the GTK side look into what the issue is and file a new bug to fix it? Please cc me so that I can review the fix. Thanks. Committed r220592: <http://trac.webkit.org/changeset/220592> (In reply to WebKit Commit Bot from comment #14) > Comment on attachment 317903 [details] > patch for landing w/ Windows fix. > > Clearing flags on attachment: 317903 > > Committed r220579: <http://trac.webkit.org/changeset/220579> This change also broke CLoop and Windows Debug builds: https://build.webkit.org/builders/Apple%20Sierra%20LLINT%20CLoop%20%28BuildAndTest%29/builds/4349 https://build.webkit.org/builders/Apple%20Win%20Debug%20%28Build%29/builds/3281 CLoop build fix landed in r220600: <http://trac.webkit.org/r220600>. FYI, it broke the AArch64 Linux build. MacroAssemblerARM64.cpp wasn't added to the cmake build system and after adding it, I got the following error: {standard input}:34: Error: operand 2 should be an integer register -- `stp x28,fp,[sp,#((2*8)+(28*8))]' {standard input}:37: Error: operand 1 should be an integer register -- `str lr,[sp,#((((2*8)+(35*8))+(32*8))+(0*8))]' {standard input}:38: Error: operand 1 should be an integer or stack pointer register -- `add lr,lr,#2*8' {standard input}:39: Error: operand 1 should be an integer register -- `str lr,[sp,#((2*8)+(32*8))]' {standard input}:94: Error: operand 1 should be an integer register -- `mov lr,#0' {standard input}:104: Error: operand 1 should be an integer register -- `mov lr,#1' {standard input}:106: Error: operand 1 should be an integer register -- `ldr fp,[sp,#((((2*8)+(35*8))+(32*8))+(0*8))]' {standard input}:114: Error: operand 1 should be an integer register -- `str lr,[sp,#((2*8)+(0*8))]' {standard input}:115: Error: operand 2 should be an integer register -- `ldp x28,lr,[x27,#((2*8)+(27*8))]' {standard input}:116: Error: operand 2 should be an integer register -- `stp x28,lr,[sp,#((2*8)+(27*8))]' {standard input}:117: Error: operand 2 should be an integer register -- `ldp x28,lr,[x27,#((2*8)+(29*8))]' {standard input}:118: Error: operand 2 should be an integer register -- `stp x28,lr,[sp,#((2*8)+(29*8))]' {standard input}:119: Error: operand 2 should be an integer register -- `ldp x28,lr,[x27,#((2*8)+(31*8))]' {standard input}:120: Error: operand 2 should be an integer register -- `stp x28,lr,[sp,#((2*8)+(31*8))]' {standard input}:121: Error: operand 2 should be an integer register -- `ldp x28,lr,[x27,#((2*8)+(33*8))]' {standard input}:122: Error: operand 2 should be an integer register -- `stp x28,lr,[sp,#((2*8)+(33*8))]' {standard input}:123: Error: operand 1 should be an integer register -- `ldr lr,[sp,#((2*8)+(0*8))]' {standard input}:125: Error: operand 1 should be an integer register -- `cbnz lr,.LctiMasmProbeTrampolineEnd' {standard input}:126: Error: operand 1 should be an integer register -- `ldr lr,[sp,#((2*8)+(31*8))]' {standard input}:127: Error: operand 1 should be an integer or stack pointer register -- `sub lr,lr,#(6*8)' {standard input}:129: Error: integer 64-bit register expected at operand 2 -- `str x27,[lr,#(5*8)]' {standard input}:130: Error: operand 1 should be an integer register -- `str lr,[sp,#((2*8)+(31*8))]' {standard input}:131: Error: operand 1 should be an integer register -- `str fp,[sp,#((2*8)+(32*8))]' {standard input}:133: Error: operand 1 should be an integer register -- `ldr lr,[sp,#((2*8)+(31*8))]' {standard input}:134: Error: operand 1 should be an integer or stack pointer register -- `sub lr,lr,#(6*8)' {standard input}:136: Error: integer 64-bit register expected at operand 3 -- `stp x27,x28,[lr,#(0*8)]' {standard input}:138: Error: integer 64-bit register expected at operand 3 -- `stp x27,x28,[lr,#(2*8)]' {standard input}:141: Error: integer 64-bit register expected at operand 3 -- `stp x27,x28,[lr,#(4*8)]' {standard input}:147: Error: operand 1 should be a floating-point register -- `ldp fp,lr,[sp],#2*8' note: we don't have ARM buildbots for a while because of bug174993 and it broke the ARMv7 (traditional) build too: ../../Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp:203:1: error: static assertion failed: ProbeContext_size_matches_ctiMasmProbeTrampoline and it broke the GTK's ARM build too (maybe ARMv7 Thumb2): /tmp/cco6SOuf.s: Assembler messages: /tmp/cco6SOuf.s:48: Error: VFP single precision register expected -- `vstmia.64 ip!,{ d16-d31 }' /tmp/cco6SOuf.s:55: Error: VFP single precision register expected -- `vldmdb.64 ip!,{ d16-d31 }' /tmp/cco6SOuf.s:88: writing to APSR without specifying a bitmask is deprecated (In reply to Csaba Osztrogonác_OOO_until_21st_Aug from comment #21) > FYI, it broke the AArch64 Linux build. MacroAssemblerARM64.cpp wasn't added > to the cmake build system and after adding it, I got the following error: ... Will fix in https://bugs.webkit.org/show_bug.cgi?id=175512 (In reply to Csaba Osztrogonác_OOO_until_21st_Aug from comment #23) > and it broke the ARMv7 (traditional) build too: > ../../Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp:203:1: error: > static assertion failed: ProbeContext_size_matches_ctiMasmProbeTrampoline Let's address this in https://bugs.webkit.org/show_bug.cgi?id=175513. (In reply to Csaba Osztrogonác_OOO_until_21st_Aug from comment #24) > and it broke the GTK's ARM build too (maybe ARMv7 Thumb2): > > /tmp/cco6SOuf.s: Assembler messages: > /tmp/cco6SOuf.s:48: Error: VFP single precision register expected -- > `vstmia.64 ip!,{ d16-d31 }' > /tmp/cco6SOuf.s:55: Error: VFP single precision register expected -- > `vldmdb.64 ip!,{ d16-d31 }' > /tmp/cco6SOuf.s:88: writing to APSR without specifying a bitmask is > deprecated Let's address these in https://bugs.webkit.org/show_bug.cgi?id=175514. (In reply to Csaba Osztrogonác_OOO_until_21st_Aug from comment #24) > and it broke the GTK's ARM build too (maybe ARMv7 Thumb2): > > /tmp/cco6SOuf.s: Assembler messages: > /tmp/cco6SOuf.s:48: Error: VFP single precision register expected -- > `vstmia.64 ip!,{ d16-d31 }' > /tmp/cco6SOuf.s:55: Error: VFP single precision register expected -- > `vldmdb.64 ip!,{ d16-d31 }' > /tmp/cco6SOuf.s:88: writing to APSR without specifying a bitmask is > deprecated GTK+ ARMv7 build is Thumb2. Is JSCOnly thumb2 working? (In reply to Carlos Alberto Lopez Perez from comment #28) > (In reply to Csaba Osztrogonác_OOO_until_21st_Aug from comment #24) > > and it broke the GTK's ARM build too (maybe ARMv7 Thumb2): > > > > /tmp/cco6SOuf.s: Assembler messages: > > /tmp/cco6SOuf.s:48: Error: VFP single precision register expected -- > > `vstmia.64 ip!,{ d16-d31 }' > > /tmp/cco6SOuf.s:55: Error: VFP single precision register expected -- > > `vldmdb.64 ip!,{ d16-d31 }' > > /tmp/cco6SOuf.s:88: writing to APSR without specifying a bitmask is > > deprecated > > GTK+ ARMv7 build is Thumb2. > > Is JSCOnly thumb2 working? Yes, it works fine: https://build.webkit.org/builders/JSCOnly%20Linux%20ARMv7%20Thumb2%20Release/builds/1428 We use GCC 5.2.0 on it (custom cross compiler built with crosstool-ng) with the following options set by default: -mthumb -mthumb-interwork -march=armv7-a -mtune=cortex-a15 -mfpu=neon-vfpv4 Speculative fix for Windows build landed in r220701: <http://trac.webkit.org/r220701>. Looks like this broke the GTK build: https://build.webkit.org/builders/GTK%20Linux%20ARM%20Release/builds/855 (In reply to Simon Fraser (smfr) from comment #31) > Looks like this broke the GTK build: > https://build.webkit.org/builders/GTK%20Linux%20ARM%20Release/builds/855 This issue is tracked in https://bugs.webkit.org/show_bug.cgi?id=175514. For now, to green the bot, I've disabled the DFG for GTK ARM_THUMB2 in r220816: <http://trac.webkit.org/r220816>. |