Skip to content

Builtins-sparc-sunos:: divtc3_test.c XPASSes on Solaris/sparc #72398

Open
@rorth

Description

@rorth

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 with SIGBUS at runtime, as originally reported in Bug 42493/Issue Passing long double args on 32-bit SPARC violates ABI #41838. The 32-bit divtc3.c.o contains a definition of __divtc3
  • On main, the test now XPASSes. Before the culprit patch, the test would fail to compile (missing definitions of Qcomplex and tf_float), which was hidden by the XFAIL. After the culprit patch, compilation wasn't attempted, resulting in a XPASS. 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.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions