Implement flexible target specification

See commit message.
This should be `false` these days.  See [this](https://github.com/rust-lang/rust/pull/16156/files#diff-702dd5df63def453a98faa6eee4c7ee1L544).