slint-ui / slint

Slint is a declarative GUI toolkit to build native user interfaces for Rust, C++, or JavaScript apps.
https://slint.dev
Other
16.93k stars 568 forks source link

raspi 3B+ build time rust crate 70 min #3443

Closed frehberg closed 1 year ago

frehberg commented 1 year ago

Cross build of slint 1.2 for raspberry aarch64 (raspi 3b+) fails with linker error, symbol memfd_create missing

Therefore I tried to compile on raspi 3b+ nativley. Due to 1GB memory limiations the build only succeeds using single thread, for release and without debug symbols, and takes 70 minutes

RUSTFLAGS='-C link-arg=-s' cargo build -j 1 --release

Compiling i-slint-backend-selector v1.2.0 Compiling slint-build v1.2.0 Compiling slint-test v0.1.0 (/home/sysuser/slint-test) Compiling slint-macros v1.2.0 Compiling slint v1.2.0 Finished release [optimized] target(s) in 70m 21s sysuser@raspberrypi:~/slint-test $

As workaround I plan to compile on raspi 4B with 8GB.

hunger commented 1 year ago

Thank you for your report!

It would be nice to have blazingly fast builds, but I am afraid independent of what we do: Build times on a 1GB machine will not be great:-/

I think your best bet is to fix the memfd_create problem and to cross-compile: https://github.com/rust-lang/rust/issues/113680 claims that updating glibc (well, updating to a distribution with a newer glibc;-) will help here.

ogoffart commented 1 year ago

This has been reported before: https://github.com/slint-ui/slint/issues/3403 Closing as duplicate. Thanks anyway for the report