[GH-ISSUE #1553] Build issue on ARMv7 of librespot 0.7.0 #703

Closed
opened 2026-02-27 19:32:03 +03:00 by kerem · 6 comments
Owner

Originally created by @heitbaum on GitHub (Aug 25, 2025).
Original GitHub issue: https://github.com/librespot-org/librespot/issues/1553

Description

Compile issue of librespot 0.7.0 targeting arm32.
aarch64 and x86_64 builds are building as expected.

Version

What version(s) of librespot does this problem exist in? 0.7.0

How to reproduce

Steps to reproduce the behavior in librespot e.g.

  1. Build librespot targeting arm32

Log

rustc: /build/build.LibreELEC-ARMv7.arm-12.2-devel/build/llvm-18.1.8/llvm/include/llvm/Support/Casting.h:578: decltype(auto) llvm::cast(From*) [with To = IntegerType; From = Type]: Assertion `isa<To>(Val) && "cast<Ty>() argument of incompatible type!"' failed.

warning: `uuid` (lib) generated 1 warning (1 duplicate)
error: could not compile `uuid` (lib); 1 warning emitted

Caused by:
  process didn't exit successfully: `rustc --crate-name uuid --edition=2018 /build/build.LibreELEC-ARMv7.arm-12.2-devel/build/rust-1.85.1/cargo_home/registry/src/index.crates.io-1949cf8c6b5b557f/uuid-1.18.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no --allow=unexpected_cfgs --check-cfg 'cfg(uuid_unstable)' --cfg 'feature="default"' --cfg 'feature="rng"' --cfg 'feature="std"' --cfg 'feature="v4"' --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values("arbitrary", "atomic", "borsh", "bytemuck", "default", "fast-rng", "js", "macro-diagnostics", "md5", "rng", "rng-getrandom", "rng-rand", "serde", "sha1", "slog", "std", "uuid-rng-internal-lib", "v1", "v3", "v4", "v5", "v6", "v7", "v8", "zerocopy"))' -C metadata=b06979afd45429b6 -C extra-filename=-41db921dfe4e4c5b --out-dir /build/build.LibreELEC-ARMv7.arm-12.2-devel/build/librespot-0.7.0/.armv7a-libreelec-linux-gnueabihf/target/armv7a-libreelec-linux-gnueabihf/release/deps --target armv7a-libreelec-linux-gnueabihf -C linker=/build/build.LibreELEC-ARMv7.arm-12.2-devel/toolchain/bin/armv7a-libreelec-linux-gnueabihf-gcc -C strip=debuginfo -L dependency=/build/build.LibreELEC-ARMv7.arm-12.2-devel/build/librespot-0.7.0/.armv7a-libreelec-linux-gnueabihf/target/armv7a-libreelec-linux-gnueabihf/release/deps -L dependency=/build/build.LibreELEC-ARMv7.arm-12.2-devel/build/librespot-0.7.0/.armv7a-libreelec-linux-gnueabihf/target/release/deps --extern getrandom=/build/build.LibreELEC-ARMv7.arm-12.2-devel/build/librespot-0.7.0/.armv7a-libreelec-linux-gnueabihf/target/armv7a-libreelec-linux-gnueabihf/release/deps/libgetrandom-0f4f5dcccf6eb7aa.rmeta --cap-lints allow` (signal: 6, SIGABRT: process abort signal)
warning: build failed, waiting for other jobs to finish...

FAILURE: scripts/build librespot:target during make_target (package.mk)
*********** FAILED COMMAND ***********
cargo build --target ${TARGET_NAME} --release --no-default-features --features "alsa-backend native-tls pulseaudio-backend with-dns-sd"
**************************************
FAILURE: scripts/build librespot:target has failed!

The following log for this failure is available:
  /build/build.LibreELEC-ARMv7.arm-12.2-devel/.threads/logs/104.log

>>> librespot:target seq 104 >>>

Host (what you are running librespot on):

  • OS: [e.g. Linux] Linux
  • Platform: [e.g. RPi 3B+] RPi2
Originally created by @heitbaum on GitHub (Aug 25, 2025). Original GitHub issue: https://github.com/librespot-org/librespot/issues/1553 ### Description Compile issue of librespot 0.7.0 targeting arm32. aarch64 and x86_64 builds are building as expected. ### Version What version(s) of *librespot* does this problem exist in? 0.7.0 ### How to reproduce Steps to reproduce the behavior in *librespot* e.g. 1. Build librespot targeting arm32 ### Log ``` rustc: /build/build.LibreELEC-ARMv7.arm-12.2-devel/build/llvm-18.1.8/llvm/include/llvm/Support/Casting.h:578: decltype(auto) llvm::cast(From*) [with To = IntegerType; From = Type]: Assertion `isa<To>(Val) && "cast<Ty>() argument of incompatible type!"' failed. warning: `uuid` (lib) generated 1 warning (1 duplicate) error: could not compile `uuid` (lib); 1 warning emitted Caused by: process didn't exit successfully: `rustc --crate-name uuid --edition=2018 /build/build.LibreELEC-ARMv7.arm-12.2-devel/build/rust-1.85.1/cargo_home/registry/src/index.crates.io-1949cf8c6b5b557f/uuid-1.18.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no --allow=unexpected_cfgs --check-cfg 'cfg(uuid_unstable)' --cfg 'feature="default"' --cfg 'feature="rng"' --cfg 'feature="std"' --cfg 'feature="v4"' --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values("arbitrary", "atomic", "borsh", "bytemuck", "default", "fast-rng", "js", "macro-diagnostics", "md5", "rng", "rng-getrandom", "rng-rand", "serde", "sha1", "slog", "std", "uuid-rng-internal-lib", "v1", "v3", "v4", "v5", "v6", "v7", "v8", "zerocopy"))' -C metadata=b06979afd45429b6 -C extra-filename=-41db921dfe4e4c5b --out-dir /build/build.LibreELEC-ARMv7.arm-12.2-devel/build/librespot-0.7.0/.armv7a-libreelec-linux-gnueabihf/target/armv7a-libreelec-linux-gnueabihf/release/deps --target armv7a-libreelec-linux-gnueabihf -C linker=/build/build.LibreELEC-ARMv7.arm-12.2-devel/toolchain/bin/armv7a-libreelec-linux-gnueabihf-gcc -C strip=debuginfo -L dependency=/build/build.LibreELEC-ARMv7.arm-12.2-devel/build/librespot-0.7.0/.armv7a-libreelec-linux-gnueabihf/target/armv7a-libreelec-linux-gnueabihf/release/deps -L dependency=/build/build.LibreELEC-ARMv7.arm-12.2-devel/build/librespot-0.7.0/.armv7a-libreelec-linux-gnueabihf/target/release/deps --extern getrandom=/build/build.LibreELEC-ARMv7.arm-12.2-devel/build/librespot-0.7.0/.armv7a-libreelec-linux-gnueabihf/target/armv7a-libreelec-linux-gnueabihf/release/deps/libgetrandom-0f4f5dcccf6eb7aa.rmeta --cap-lints allow` (signal: 6, SIGABRT: process abort signal) warning: build failed, waiting for other jobs to finish... FAILURE: scripts/build librespot:target during make_target (package.mk) *********** FAILED COMMAND *********** cargo build --target ${TARGET_NAME} --release --no-default-features --features "alsa-backend native-tls pulseaudio-backend with-dns-sd" ************************************** FAILURE: scripts/build librespot:target has failed! The following log for this failure is available: /build/build.LibreELEC-ARMv7.arm-12.2-devel/.threads/logs/104.log >>> librespot:target seq 104 >>> ``` ### Host (what you are running `librespot` on): - OS: [e.g. Linux] Linux - Platform: [e.g. RPi 3B+] RPi2
kerem 2026-02-27 19:32:03 +03:00
Author
Owner

@roderickvd commented on GitHub (Aug 26, 2025):

Our CI is showing a successful build: https://github.com/librespot-org/librespot/actions/runs/17190295060/job/48765014700

On which version of Rust is that?
Is the build directory clean? (cargo clean)

<!-- gh-comment-id:3222764034 --> @roderickvd commented on GitHub (Aug 26, 2025): Our CI is showing a successful build: https://github.com/librespot-org/librespot/actions/runs/17190295060/job/48765014700 On which version of Rust is that? Is the build directory clean? (`cargo clean`)
Author
Owner

@heitbaum commented on GitHub (Aug 26, 2025):

Our CI is showing a successful build: https://github.com/librespot-org/librespot/actions/runs/17190295060/job/48765014700

On which version of Rust is that?

rust 1.89.0 built using llvm 20.1.8 builds the ARMv7 correctly. (similar to your CI/CD build)
rust 1.85.1 built using llvm 18.1.8 is where the failure is.

fail >> https://github.com/LibreELEC/actions/actions/runs/17223585810/job/48863809463

Is the build directory clean? (cargo clean)

Yes - built in the GHA CI/CD.

<!-- gh-comment-id:3222823499 --> @heitbaum commented on GitHub (Aug 26, 2025): > Our CI is showing a successful build: https://github.com/librespot-org/librespot/actions/runs/17190295060/job/48765014700 > > On which version of Rust is that? rust 1.89.0 built using llvm 20.1.8 builds the ARMv7 correctly. (similar to your CI/CD build) rust 1.85.1 built using llvm 18.1.8 is where the failure is. fail >> https://github.com/LibreELEC/actions/actions/runs/17223585810/job/48863809463 > Is the build directory clean? (`cargo clean`) Yes - built in the GHA CI/CD.
Author
Owner

@roderickvd commented on GitHub (Aug 26, 2025):

Clear. Could you find out the lowest working Rust version? Most pragmatic is to just raise the MSRV then.

<!-- gh-comment-id:3222828639 --> @roderickvd commented on GitHub (Aug 26, 2025): Clear. Could you find out the lowest working Rust version? Most pragmatic is to just raise the MSRV then.
Author
Owner

@heitbaum commented on GitHub (Aug 26, 2025):

Clear. Could you find out the lowest working Rust version? Most pragmatic is to just raise the MSRV then.

Hmm - It's not rust itself - but llvm.
Updating to spirv-llvm-translator-19.1.10 and llvm-19.1.7 whilst leaving rust at 1.85.1 allows librespot to compile on ARMv7.

llvm-18.1.8 has a maximum rust version of 1.85.1 (which is why rust was kept back in the stable release of LibreELEC-12.2, whereas LibreELEC-13 has the latest llvm and rust)

<!-- gh-comment-id:3226025125 --> @heitbaum commented on GitHub (Aug 26, 2025): > Clear. Could you find out the lowest working Rust version? Most pragmatic is to just raise the MSRV then. Hmm - It's not rust itself - but llvm. Updating to spirv-llvm-translator-19.1.10 and llvm-19.1.7 whilst leaving rust at 1.85.1 allows librespot to compile on ARMv7. llvm-18.1.8 has a maximum rust version of 1.85.1 (which is why rust was kept back in the stable release of LibreELEC-12.2, whereas LibreELEC-13 has the latest llvm and rust)
Author
Owner

@roderickvd commented on GitHub (Aug 30, 2025):

I see. Not really something librespot can do something about I guess? Will close then, feel free to reopen if you think we can do better.

<!-- gh-comment-id:3239535991 --> @roderickvd commented on GitHub (Aug 30, 2025): I see. Not really something librespot can do something about I guess? Will close then, feel free to reopen if you think we can do better.
Author
Owner

@heitbaum commented on GitHub (Sep 4, 2025):

I see. Not really something librespot can do something about I guess? Will close then, feel free to reopen if you think we can do better.

All good now. Build now completed in CI/CD with llvm-19.1.7 https://github.com/LibreELEC/actions/actions/runs/17461146867/job/49585908613

<!-- gh-comment-id:3253292642 --> @heitbaum commented on GitHub (Sep 4, 2025): > I see. Not really something librespot can do something about I guess? Will close then, feel free to reopen if you think we can do better. All good now. Build now completed in CI/CD with llvm-19.1.7 https://github.com/LibreELEC/actions/actions/runs/17461146867/job/49585908613
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/librespot#703
No description provided.