For anyone who is willing, or wanting, to test Rust and/or Suricata6 AND are building from SOURCE main branch (Not ImageBuilder). Testing will PROBABLY AND MOST LIKELY fail because I need people to test in order to add support for various toolchains Rust knows how to build. Until I get tests and failures, it makes it difficult to build in support for various targets.
Currently targets I've setup: MIPS MUSL, MIPS64 MUSL, X86/64 MUSL, PowerPC MUSL, and ARM MUSLGNUEABI
Still interested in playing? Continue on...
Install git-pr
to make it easier to pull the Pull Requests (sudo apt-get install git-extras
)
cd ./feeds/packages
git-pr 13916 origin
This assumes you've not renamed the origin
branch for the upstream repo.
cd ~/openwrt
./scripts/feeds update -i && ./scripts/feeds install -a
This will force the build system to re-index the feeds, and then install them (including anything new it finds, like rust)
Special Note: If you are building for a MIPS64 target, you must also modify your libunwind
to recognize it actually works under MIPS64 by changing:
Edit ./package/libs/libunwind/Makefile
and change the following line from:
DEPENDS:=@((mips||mipsel||x86_64||arm||aarch64)||(USE_GLIBC&&(powerpc||i386))) +zlib
to
DEPENDS:=@((mips||mipsel||x86_64||arm||aarch64||mips64)||(USE_GLIBC&&(powerpc||i386))) +zlib
And, you're done. You should be able to now make menuconfig
and select Rust
under Languages
You can select various options under Compiler Options
, but the defaults should be fine.
The initial compile will take a WHILE.. Don't panic, let it run. The Rust-lang host toolchains are large, have to compiled from the relative ground-up, then packaged for re-use and install. Future compiles will find the installation binaries YOU create during the first compile and use it instead of recompiling on future builds. These installation binaries will survive even a make clean
, as the installation binary archive is kept in ./dl/
, so the only time the toolchain is recompiled would be when the version of Rust itself changes.