Bug 236120

Summary: Failure to buildworld for TARGET_ARCH=armv7
Product: Base System Reporter: Kyle Evans <kevans>
Component: binAssignee: freebsd-bugs (Nobody) <bugs>
Status: Closed Not A Bug    
Severity: Affects Only Me CC: dim, toolchain
Priority: ---    
Version: CURRENT   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
Reproducer for cross-build core dump none

Description Kyle Evans freebsd_committer freebsd_triage 2019-03-01 03:56:37 UTC
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.
Comment 1 Kyle Evans freebsd_committer freebsd_triage 2019-03-01 04:01:25 UTC
(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.
Comment 2 Dimitry Andric freebsd_committer freebsd_triage 2019-03-01 07:09:39 UTC
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?
Comment 3 Dimitry Andric freebsd_committer freebsd_triage 2019-03-01 12:05:52 UTC
(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.
Comment 4 Kyle Evans freebsd_committer freebsd_triage 2019-03-01 12:35:15 UTC
(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.