Skip to content

[compiler-rt] Clarify support for windows #96362

@h-vetinari

Description

@h-vetinari

In 0318ce8, @AaronBallman added the following to the C status page for support of <complex.h>:

_Complex support requires an underlying support library such as compiler-rt to provide functions like __divsc3, but compiler-rt is not supported on Windows.

The following discussion ensued in the corresponding PR:

@h-vetinari: I'm surprised about the "compiler-rt is not supported on windows" comment - in our distribution, we've been building compiler-rt on windows for years, and I don't remember significant issues.

It's true that __divsc3 is not available without compiler-rt (i.e. just relying on the msvc runtime libraries), but together with compiler-rt these things are generally possible? Note that a similar situation exists on osx-arm for example - in certain situations, linking compiler-rt is unavoidable.

@AaronBallman: CC @petrhosek as compiler-rt CRT code owner -- is compiler-rt officially supported for Windows? The official documentation does not mention it under platform support: https://compiler-rt.llvm.org/

That statement of lack of support was now reiterated in 918ef31, and so I thought I'd open this issue to discuss.

In conda-forge1, we've been building and shipping compiler-rt since LLVM 9.0, and I'm not aware of fundamental issues that render the runtime unusable. To the contrary, it's been a required component to get our flang-support for windows off the ground (which itself was a very long story).

As such, I'd very much like for compiler-rt to stay at least as usable as it has been over the last 5 years, even if perhaps the support may not be on par with other platforms. Better still would be explicit support of course. :)

Footnotes

  1. can be thought of as a rolling distribution across linux, osx, windows simultaneously

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions