- `cfg(target_has_atomic)` is stable now, use that.
- Hardcode in `build.rs` the list of targets with load/store but no CAS,
since `cfg(target_has_atomic_load_store)` is not stable yet.
- Do not try to autodetect whether `portable-atomic` is needed or not,
just let the user control it directly. If the user doesn't explicitly
enable `portable-atomic` and native atomics are unavailable, the
features requiring it will be missing.
The LLSC probe in `build.rs` checks for the presence of the
`clrex` instruction and assumes the target also has both `ldrex`
and `strex`.
In AArch64 `clrex` is a known mnemonic but `ldrex` and `strex`
are not. This caused the `arm_llsc` feature (and subsequently the
oiik module) to be included in the crate for AArc64 which is invalid.
The built-in rustc targets ended with names that start with `armv7a-` so #140
does not cover them though the intention was to support them; this commit fixes
that