Description
As originally reported in [builtins] Guard the divtc3_test.c test with CRT_HAS_TF_MODE, that patch 77d75dc caused Builtins-sparc-sunos:: divtc3_test.c
to XPASS
on Solaris/sparc, breaking the Solaris/sparcv9 buildbot.
Some investigation into the failure that prompted the culprit patch have been reported in Issue #71971.
The same issues apply to 32-bit SPARC, with an additional compliction:
- In LLVM 17, the 32-bit test
XFAIL
s: it does compile, but died withSIGBUS
at runtime, as originally reported in Bug 42493/Issue Passing long double args on 32-bit SPARC violates ABI #41838. The 32-bitdivtc3.c.o
contains a definition of__divtc3
- On
main
, the test nowXPASS
es. Before the culprit patch, the test would fail to compile (missing definitions ofQcomplex
andtf_float
), which was hidden by theXFAIL
. After the culprit patch, compilation wasn't attempted, resulting in aXPASS
. Unlike LLVM 17,divtc3.c.o
now contains no symbols (i.e. no definition of__divtc3
).
Both in LLVM 17 and main
, librt_has_divtc3
, is always true
, which seems totallly wrong if the symbol is missing from libclang_rt.builtins-sparc.a
.
It doesn't help either (though not an issue for the Solaris/sparcv9 buildbot) that the builtins tests aren't run in a runtimes build at all, missing any possible issues.
I guess for the moment the best way forward is to remove/disable the XFAIL
in the test to turn the Solaris/sparcv9 green again after 5 days, with a prominent comment referring to this Issue. However, there are way more issues in the builtins code that need to be adressed.