jimsynz
Hi folks.
In my project I needed a way to check to see if a process was running on the host system (mainly when MIX_TARGET=:host) so I quickly wrapped up the proclist crate with Rustler however my firmware doesn’t start complaining about missing shared libraries (basically it’s not cross-compiling it’s just lucky that my laptop and the firmware have the same arch). The main article I can find talks you through setting up a nerves project with rustler crates in-tree but it doesn’t help with rustler-based dependencies. Now in my case, since I only use this package when doing dev on my laptop, I can just disable it for all other targets, which is fine, but I think we need to figure out a way to make the increasing number of rustler-based packages work nicely in the nerves ecosystem.
What tooling do we need that is missing? I expect we’d need some changes to rustler itself - I’m happy to open and shepherd some PRs if that’s the case.
Trending in Questions
Other Trending Topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #blog-post
- #elixir-ls
- #ai
- #elixirconf-us
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #hex
- #security
- #metaprogramming










Showing Posts 1 to 2- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
gus
I’ve used Rustler on Nerves before, and fortunately it exposes ways to support cross compile, namely through the
RUSTLER_TARGETenvironment variable. Cocoa has a really good guide on it here:https://cocoa-research.works/2022/01/use-rustler-with-nerves-cross-compile/
There’s also a
:targetconfiguration option for the Rustler package:You might just be able to set that to the target triple on your Nerves device in your
config/target.exs. But there might also be some more steps that would be required to get it to work on Nerves - it looks like Cocoa’s method explicitly sets the linker withSystem.get_env("CC") |> tap(&System.put_env("RUSTFLAGS", "-C linker=#{&1}")), so that might also be requiredjimsynz
Thanks @gus - it took a bit of thinking for me to realise that I needed to provide all those env vars in the
proclistpackage and not my nerves project directly. Also because I’m targeting x86_64 I needed to add--codegen target-feature=-crt-statictoRUSTFLAGS. The final result is here for those who searched this up.