diff options
| author | bors <bors@rust-lang.org> | 2020-11-08 02:21:55 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2020-11-08 02:21:55 +0000 |
| commit | f2ea2f648e117013b0217f001088ae89e0f163ca (patch) | |
| tree | b7de93bef167297744953525a7fa9a600dbf488b /compiler/rustc_codegen_llvm/src | |
| parent | 771cc7ffc35b832bf35fecb22860eabb70c91da5 (diff) | |
| parent | c0c0597e099a6c6b1f3b47e839a630c5bc97aab9 (diff) | |
| download | rust-f2ea2f648e117013b0217f001088ae89e0f163ca.tar.gz rust-f2ea2f648e117013b0217f001088ae89e0f163ca.zip | |
Auto merge of #77729 - petrochenkov:mergetarg, r=Mark-Simulacrum
rustc_target: Move some target options from `Target` to `TargetOptions` The only reason for `Target` to `TargetOptions` to be separate structures is that options in `TargetOptions` have reasonable defaults and options in `Target` don't. (Otherwise all the options logically belong to a single `Target` struct.) This PR moves a number of options with reasonable defaults from `Target` to `TargetOptions`, so they no longer needs to be specified explicitly for majority of the targets. The move also allows to inherit the options from `rustc_target/src/spec/*_base.rs` files in a nicer way. I didn't change any specific option values here. The moved options are `target_c_int_width` (defaults to `"32"`), `target_endian` (defaults to `"little"`), `target_os` (defaults to `"none"`), `target_env` (defaults to `""`), `target_vendor` (defaults to `"unknown"`) and `linker_flavor` (defaults to `LinkerFlavor::Gcc`). Next steps (in later PRs): - Find a way to merge `TargetOptions` into `Target` - If not, always access `TargetOptions` fields through `Deref` making it a part of `Target` at least logically (`session.target.target.options.foo` -> `session.target.target.foo`) - ~Eliminate `session::config::Config` and use `Target` instead (`session.target.target.foo` -> `session.target.foo`)~ Done in https://github.com/rust-lang/rust/pull/77943. - Avoid tautologies in option names (`target.target_os` -> `target.os`) - Resolve _ https://github.com/rust-lang/rust/issues/77730 (rustc_target: The differences between `target_os = "none"` and `target_os = "unknown"`, and `target_vendor = "unknown"` and `target_vendor = ""` are unclear) noticed during implementation of this PR.
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
0 files changed, 0 insertions, 0 deletions
