Vadim Petrochenkov
572b6a9c60
rustc_target: Refactor internal linker flavors
...
In accordance with the design from https://github.com/rust-lang/rust/pull/96827#issuecomment-1208441595
2022-10-06 13:41:12 +04:00
Tyler Mandry
55d5dcb1aa
Fix flags when using clang as linker for Fuchsia
...
Don't add C runtime or set dynamic linker when linking with clang for
Fuchsia. Clang already does this for us.
2022-08-10 16:35:27 -07:00
Vadim Petrochenkov
8d9fdb778e
rustc_target: Flip the default for TargetOptions::executables to true
...
Also change `executables` to true for linux-kernel and windows-uwp-gnu targets
2022-07-11 23:23:51 +03:00
Vadim Petrochenkov
46aba8850b
rustc_target: Add convenience functions for adding linker arguments
...
They ensure that lld and non-lld linker flavors get the same set of arguments
2022-06-25 21:55:56 +03:00
Vadim Petrochenkov
37fd2941a1
rustc_target: Remove some redundant target properties
2022-06-18 01:09:20 +03:00
Loïc BRANSTETT
1a1f5b89a4
Cleanup after some refactoring in rustc_target
2022-04-03 21:29:57 +02:00
Loïc BRANSTETT
ce61d4044d
Replace every Vec in Target(Options) with it's Cow equivalent
2022-04-03 21:29:57 +02:00
Loïc BRANSTETT
ccff48f97b
Replace every String in Target(Options) with Cow<'static, str>
2022-04-03 21:29:57 +02:00
Chris Denton
391332c5d9
Rename has_elf_tls to has_thread_local
2021-12-17 20:56:38 +00:00
Luqman Aden
3221a5e65b
Remove linker_is_gnu: true cases as that is now the default.
2021-05-20 23:36:04 -07:00
Simonas Kazlauskas
4afea69090
Allow setting target_family to multiple values
...
This enables us to set more generic labels shared between targets. For
example `target_family="wasm"` across all targets that are conceptually
"wasm".
See https://github.com/rust-lang/reference/pull/1006
2021-04-11 01:18:38 +03:00
Vadim Petrochenkov
e7e485cf51
rustc_target: Rely on defaults more in target specs
2021-04-05 23:12:56 +03:00
Vadim Petrochenkov
1def24c5f4
rustc_target: Normalize vendor from "" to "unknown" for all targets
...
Majority of targets use "unknown" vendor and changing it from "unknown" to omitted doesn't make sense.
From the LLVM docs (https://clang.llvm.org/docs/CrossCompilation.html#target-triple ):
>Most of the time it can be omitted (and Unknown) will be assumed, which sets the defaults for the specified architecture.
>When a parameter is not important, it can be omitted, or you can choose unknown and the defaults will be used. If you choose a parameter that Clang doesn’t know, like blerg, it’ll ignore and assume unknown
2020-11-11 20:40:51 +03:00
Vadim Petrochenkov
dc004d4809
rustc_target: Rename some target options to avoid tautology
...
`target.target_endian` -> `target.endian`
`target.target_c_int_width` -> `target.c_int_width`
`target.target_os` -> `target.os`
`target.target_env` -> `target.env`
`target.target_vendor` -> `target.vendor`
`target.target_family` -> `target.os_family`
`target.target_mcount` -> `target.mcount`
2020-11-08 17:29:13 +03:00
Vadim Petrochenkov
d41fe05d1a
rustc_target: Move linker_flavor from Target to TargetOptions
2020-11-07 14:27:48 +03:00
Vadim Petrochenkov
b294cc71a2
rustc_target: Move target_vendor from Target to TargetOptions
2020-11-07 14:27:47 +03:00
Vadim Petrochenkov
74ffb9b4a2
rustc_target: Move target_os from Target to TargetOptions
2020-11-07 14:27:47 +03:00
mark
9e5f7d5631
mv compiler to compiler/
2020-08-30 18:45:07 +03:00