-
Notifications
You must be signed in to change notification settings - Fork 15.2k
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
XFAILs: it does compile, but died withSIGBUSat runtime, as originally reported in Bug 42493/Issue Passing long double args on 32-bit SPARC violates ABI #41838. The 32-bitdivtc3.c.ocontains a definition of__divtc3 - On
main, the test nowXPASSes. Before the culprit patch, the test would fail to compile (missing definitions ofQcomplexandtf_float), which was hidden by theXFAIL. After the culprit patch, compilation wasn't attempted, resulting in aXPASS. Unlike LLVM 17,divtc3.c.onow 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.