Skip to content

Fails to build with lto=true in aarch64 architectures. #1833

@LGFae

Description

@LGFae

For more details, check this issue.

The gist of it is:

image will, reliably, fail at the function image::io::free_functions::load_decoder() with the message:

Both operands to a binary operator are not of the same type!
  %7198 = xor i64 %7197, i32 4
in function _ZN5image2io14free_functions12load_decoder17h972a54ccb2943d7eE
LLVM ERROR: Broken function found, compilation aborted!

It appears to only happen when lto = true is chosen in the [profile.release] section of Cargo.toml.

Expected

The crate should compile.

Actual behaviour

Compilation stops with a broken function error.

Reproduction steps

Unfortunately, I do not own an aarch64 system, and cannot offer a minimal reproduction example. If someone could point out a way I could try going about that, I'd be more than willing to try.


I do not know whether I should bring this directly to the rust team themselves, but thought it was better to first try my luck here instead.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions