| Summary: | Failure to buildworld for TARGET_ARCH=armv7 | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Base System | Reporter: | Kyle Evans <kevans> | ||||
| Component: | bin | Assignee: | freebsd-bugs (Nobody) <bugs> | ||||
| Status: | Closed Not A Bug | ||||||
| Severity: | Affects Only Me | CC: | dim, toolchain | ||||
| Priority: | --- | ||||||
| Version: | CURRENT | ||||||
| Hardware: | Any | ||||||
| OS: | Any | ||||||
| Attachments: |
|
||||||
(In reply to Kyle Evans from comment #0) I guess the cross-arch is a red herring, since it's still building legacy. I don't tweak any knobs of note when building these hosts (bsdgrep sans gnugrep being the only knobs), but cc is clearly borked. I can't reproduce the error with the files you provided; for me these compile just fine, with clang 7.0 and 8.0. I'll try a clean build of the most recent head, to see if it occurs there too. Meanwhile, did you use any special options while building the cc you are now using? (In reply to Dimitry Andric from comment #2) > I can't reproduce the error with the files you provided; for me these > compile just fine, with clang 7.0 and 8.0. I'll try a clean build of the > most recent head, to see if it occurs there too. Did a clean build of head r344654, but I cannot reproduce the error with the clang binary from there either. It works just fine. (In reply to Dimitry Andric from comment #3) Interesting- I'll go nuke my OBJDIRs and try again. It's certainly not impossible that I goofed my clean rebuild. =( Will close as appropriate. |
Created attachment 202468 [details] Reproducer for cross-build core dump It's unclear when this started, but it's worked at some point in the last month or two on -current. With this cc (build from middle of 2019/02/28): root@shiva:/tmp# cc --version FreeBSD clang version 7.0.1 (tags/RELEASE_701/final 349250) (based on LLVM 7.0.1) Target: x86_64-unknown-freebsd13.0 Thread model: posix InstalledDir: /usr/bin root@shiva:/usr/src# make TARGET_ARCH=armv7 buildworld [...] Error: Super register $eax of reserved register $hax is not reserved. Assertion failed: (checkAllSuperRegsMarked(Reserved, {X86::SIL, X86::DIL, X86::BPL, X86::SPL, X86::SIH, X86::DIH, X86::BPH, X86::SPH})), function getReservedRegs, file /usr/src/contrib/llvm/lib/Target/X86/X86RegisterInfo.cpp, line 582. Abort trap (core dumped) Reproducible on two different machines so far, one virtual and one physical. The cause is unclear, but attaching the reproducers that it spit out. Reproduces regardless of what it compiles first -- in this case, nvlist with a clean objdir.