... huh.

ThreadReviver ran fine on armv7l with no issues, but after recompiling for aarch64 and running on RasPiOS-64, suddenly now segfaults.

which is weird, since it's written in Rust and has no unsafe code of its own.


presumably a library bug (in which case it's either Serenity or async_trait)?

ahahah, turns out I needed to `cargo update`. whoops.

*insert maniacal laughter as I lose my mind here*

probably a weird quirk of when I copied the workspace back over from the armv7l config.


nevermind... That *did* make it so it doesn't instantly segfault, but it *eventually* segfaults instead.

Which makes... absolutely no sense to me. (Stack overflows are panics, no?)

Gonna stop actively posting about this issue till I get *somewhere* with it; something's bugged somewhere though...

· · Web · 1 · 0 · 0

long text, tech, "post-mortem"-kinda-thing 

Think I've worked it out, so background: on RasPiOS-32, the Pi was unable to build the serenity library itself (out-of-memory), so I had to build the exe via cross-compilation on Desktop and scp it over.

Which meant it needed statically-linking, because different versions of some core system libraries, so `+crt-static` was added to the build flags. This appears to cause the issue.

In any case, RasPiOS-64* allows the Pi to build it natively anyway.

long text, tech, "post-mortem"-kinda-thing 

As some final notes:

- I'm curious as to why '+crt-static' triggers a segfault on RasPiOS-64, which was not present on -32? May look into this and do a longer write-up later. :)

- RasPiOS-32/64 = Raspberry Pi OS (32-bit) or (64-bit) respectively.

In any case, this does not affect the published build on crates.io, and the GitHub source has been fixed. Cheers!

(* might also be because I increased the drive space available, for full correctness...)

Sign in to participate in the conversation

A Mastodon server friendly towards anti-fascists, members of the LGBTQ+ community, hackers, and the like.