This is just a little crate I put together to use in rustup: sha2. This is the exact same code as in rust-crypto, but this crate has no C code at all, so it should build everywhere Rust does. Since Rust uses SHA-256 for hashing its build artifacts I find myself needing this code a lot.
Hmm, it looks like I'm seeing two distinct errors:
cc: error: unrecognized command line option '-marm'
and
src/util_helpers.c:1:0: error: bad value (armv7-a) for -march= switch
rust-crypto doesn't set those options - they are coming from the gcc crate. So, I'm guessing that either the GCC that Travis is using doesn't support those options, or that the gcc crate is omitting some options it shouldn't. I'm not quite sure, but I'd suspect the former. Confusingly, Aarch64 seems fine.
I've been hesitant to support Cargo feature flags to conditionally compile parts of the library - my concern is that it turns into a giant mess of compile time options that make it much harder to understand what is going on. However, compiling C dependencies does seem to be enough of a pain point that I'm strongly considering add a feature flag to optionally disable them and any algorithms that depend on C code.