Skip to content

Compiling against libcore with a soft-float target appears to require sin/cos/sqrt since recently #52301

Closed
@alex

Description

@alex

Since #51695 (I believe), the project I have for compiling linux kernel modules has started failing due to sin/cos/sqrt symbols not being available: fishinabarrel/linux-kernel-module-rust#61 (comment)

This uses a custom target file which is x86_64 with +soft-float.

I believe the issue is that stdsimd uses the llvm.sin.* intrinsics, and LLVM will emit a call to libm if the platform is soft-float (this is speculation, but well founded I think :-)).

Being able to depend on libcore without needing any additional runtime libraries is a hard requirement for compiling for targets like kernel modules. I'm not sure what the right direction for resolving this is.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-linkageArea: linking into static, shared libraries and binariesA-target-specsArea: Compile-target specificationsC-bugCategory: This is a bug.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions