warricksothr / RustBuild

Scripts and patches to auto build Rustc and Cargo on ARM
MIT License
104 stars 8 forks source link

Is this still operational? #17

Closed hgrecco closed 8 years ago

hgrecco commented 8 years ago

The lastest build seems to be 1.8 nightly. are you planning to update?

MagaTailor commented 8 years ago

You can still find up-to-date builds here:

https://sothr.com/RustBuild/armv6-armhf/rust/nightly/latest

The only practical inconvenience is going to come from having to pass -C target-cpu and -C target-feature flags when targeting armv7. You don't have to worry about performance hit from using v6 rustlibs.

If you do, however, you can pass --target=armv7-unknown-linux-gnueabihf to rustc instead, after installing matching armv7- crates.

Lastly, it seems ARM binaries are going to be officially distributed soon.

warricksothr commented 8 years ago

I have some build issues on the armv7 versions and I haven't had the time to debug the build system. The armv6 builds still work and are what I've been using locally till I get a chance to rebuild the armv7 build system and debug the issue.

warricksothr commented 8 years ago

Built a new version of ARMv7 rust manually. Making the changes to the builder and closing this after I test it and cargo on the odroid. Would appreciate if you're interested that you test the latest ARMv7 build as well.

Cargo is having some issues with the static ssl configuration patch. Looking into that now.

https://sothr.com/RustBuild/armv7/rust/nightly/latest https://sothr.com/RustBuild/armv7/cargo/nightly/latest

warricksothr commented 8 years ago

My libraries are building with:

$ rustc -Vv
rustc 1.9.0-dev (073a09fd6 2016-04-14)
binary: rustc
commit-hash: 073a09fd63c9b4ec3bb4709986a2517ca4c3cdf1
commit-date: 2016-04-14
host: armv7-unknown-linux-gnueabihf
release: 1.9.0-dev
$ cargo -vV
cargo 0.11.0-nightly (59238e8 2016-04-14)
$ cargo test
    Updating registry `https://github.com/rust-lang/crates.io-index`
 Downloading flate2 v0.2.13
 Downloading complex v0.8.0
 Downloading rustc-serialize v0.3.19
 Downloading image v0.6.1
 Downloading libc v0.2.10
 Downloading dft v0.4.2
 Downloading sha1 v0.1.1
 Downloading docopt v0.6.80
 Downloading miniz-sys v0.1.7
 Downloading gcc v0.3.26
 Downloading byteorder v0.4.2
 Downloading png v0.4.2
 Downloading enum_primitive v0.1.0
 Downloading num v0.1.32
 Downloading gif v0.7.0
 Downloading glob v0.2.11
 Downloading inflate v0.1.0
 Downloading bitflags v0.3.3
 Downloading num-integer v0.1.32
 Downloading num-rational v0.1.32
 Downloading num-complex v0.1.32
 Downloading num-iter v0.1.32
 Downloading num-bigint v0.1.32
 Downloading num-traits v0.1.32
 Downloading rand v0.3.14
 Downloading lzw v0.9.0
 Downloading color_quant v1.0.0
 Downloading byteorder v0.5.1
 Downloading strsim v0.3.0
 Downloading regex v0.1.65
 Downloading regex-syntax v0.3.1
 Downloading utf8-ranges v0.1.3
 Downloading aho-corasick v0.5.1
 Downloading memchr v0.1.11
 Downloading mempool v0.3.1
   Compiling color_quant v1.0.0
   Compiling complex v0.8.0
   Compiling byteorder v0.5.1
   Compiling gcc v0.3.26
   Compiling utf8-ranges v0.1.3
   Compiling mempool v0.3.1
   Compiling libc v0.2.10
   Compiling lzw v0.9.0
   Compiling regex-syntax v0.3.1
   Compiling num-traits v0.1.32
   Compiling strsim v0.3.0
   Compiling glob v0.2.11
   Compiling bitflags v0.3.3
   Compiling miniz-sys v0.1.7
   Compiling sha1 v0.1.1
   Compiling rustc-serialize v0.3.19
   Compiling rand v0.3.14
   Compiling num-integer v0.1.32
   Compiling inflate v0.1.0
   Compiling gif v0.7.0
   Compiling byteorder v0.4.2
   Compiling flate2 v0.2.13
   Compiling num-iter v0.1.32
   Compiling memchr v0.1.11
   Compiling aho-corasick v0.5.1
   Compiling regex v0.1.65
   Compiling num-complex v0.1.32
   Compiling num-bigint v0.1.32
   Compiling docopt v0.6.80
   Compiling num-rational v0.1.32
   Compiling num v0.1.32
   Compiling enum_primitive v0.1.0
   Compiling dft v0.4.2
   Compiling png v0.4.2
   Compiling image v0.6.1
   Compiling pihash v0.3.3 (file:///home/sothr/dev/Perceptual-Image-Hashing)
     Running target/debug/pihash-2b552ccfdf97b0e2

running 6 tests
test tests::test_can_get_test_images ... ok
test hash::phash::test_2d_dft ... ok
test cache::test_get_file_hash ... ok
test tests::test_confirm_ahash_results ... ok
test tests::test_confirm_dhash_results ... ok
test tests::test_confirm_phash_results ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured

     Running target/debug/pihash-1bb0529195f0019d

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured

   Doc-tests pihash

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured

Going to close this and update the Readme to point to the latest dropbox folders after stable and beta build tonight.

MagaTailor commented 8 years ago

@warricksothr Yeah, works like a charm. BTW, compared to the official distribution, you should advertise the distinguishing feature of your builds, namely, relying on system allocation instead of jemalloc. On an untested platform like ARM (for both rust and jemalloc) it's a boon.

As for performance, you could try running the binary_trees benchmark on your Cortex-A15 based board - on weaker ARM parts there's no benefit from jemalloc but that particular one might show some.

Lastly, that ARM patch, I always build with, will make it into LLVM for the 3.8.1 release which means official rust performance on ARM will have to suffer for a bit longer.