Repository navigation
Commit f988dd4
committed
stpyv8: unnest the V8 riscv64 stack helpers GCC rejects
The first run to get past gclient sync spent 9h17m in ninja and reached
1146 of 2117 targets -- as far as baseline.o, the first translation unit
that pulls in src/codegen/macro-assembler.h -- before GCC refused
src/codegen/riscv/macro-assembler-riscv.h:389 and :537, "explicit
specialization in non-namespace scope 'class v8::internal::MacroAssembler'".
Not a wall of any kind: no OOM, no ENOSPC, no ICE, no signal in the whole
log, exactly one FAILED edge, and the 48h timeout was under a fifth
spent. MacroAssembler::push_helper and ::pop_helper end a variadic
recursion over a register pack with a one-register explicit
specialization written inside the class body, which only clang accepts;
V8 builds its RISC-V port with nothing else, while settings.py has to
choose GCC because no prebuilt Chromium clang runs on a riscv64 host.
V8 itself replaced both with an empty zero-register overload in 13.8 --
the variadic overload has already stored the last register at sp+0 by the
time the pack empties -- so backport that rather than invent a fix.
Rewriting the pinned 13.1.201.22 header with this hunk reproduces 13.8's
text byte for byte, and the two forms were compiled both ways to confirm
GCC rejects only the old one and clang accepts both.
It is the only blocker of its kind left in this V8: the riscv64 sources
carry no other in-class specialization, and the two further GCC stoppers
the mini-racer V8 build hit postdate 13.1.201.22 (unicode.h has no
WriteLeadingAscii here, and highway is not in this BUILD.gn at all). The
warning class is already disarmed -- settings.py declares
treat_warnings_as_errors=false and no -Werror appears anywhere in the
log. Still, pass ninja -k 1000 so the next run reports every remaining
GCC-only failure at once instead of one per ten hours, and drop it once
the build is green.1 parent eb460d8 commit f988dd4
1 file changed
Lines changed: 123 additions & 0 deletions
Lines changed: 123 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
0 commit comments