about summary refs log tree commit diff
path: root/compiler/rustc_target/src/spec/aarch64_unknown_none.rs
AgeCommit message (Collapse)AuthorLines
2023-11-08targets: move target specs to spec/targetsDavid Wood-32/+0
Signed-off-by: David Wood <david@davidtw.co>
2023-02-14Add `kernel-address` sanitizer support for freestanding targetsWesley Norris-1/+1
2023-02-10Update the minimum external LLVM to 14Josh Stone-1/+1
2022-12-08Add LLVM KCFI support to the Rust compilerRamon de C Valle-1/+4
This commit adds LLVM Kernel Control Flow Integrity (KCFI) support to the Rust compiler. It initially provides forward-edge control flow protection for operating systems kernels for Rust-compiled code only by aggregating function pointers in groups identified by their return and parameter types. (See llvm/llvm-project@cff5bef.) Forward-edge control flow protection for C or C++ and Rust -compiled code "mixed binaries" (i.e., for when C or C++ and Rust -compiled code share the same virtual address space) will be provided in later work as part of this project by identifying C char and integer type uses at the time types are encoded (see Type metadata in the design document in the tracking issue #89653). LLVM KCFI can be enabled with -Zsanitizer=kcfi. Co-authored-by: bjorn3 <17426603+bjorn3@users.noreply.github.com>
2022-10-06rustc_target: Refactor internal linker flavorsVadim Petrochenkov-2/+2
In accordance with the design from https://github.com/rust-lang/rust/pull/96827#issuecomment-1208441595
2022-07-11rustc_target: Flip the default for `TargetOptions::executables` to trueVadim Petrochenkov-1/+0
Also change `executables` to true for linux-kernel and windows-uwp-gnu targets
2022-04-03Replace every `String` in Target(Options) with `Cow<'static, str>`Loïc BRANSTETT-5/+5
2021-07-06Replace per-target ABI denylist with an allowlistSimonas Kazlauskas-1/+0
It makes very little sense to maintain denylists of ABIs when, as far as non-generic ABIs are concerned, targets usually only support a small subset of the available ABIs. This has historically been a cause of bugs such as us allowing use of the platform-specific ABIs on x86 targets – these in turn would cause LLVM errors or assertions to fire. Fixes #57182 Sponsored by: standard.ai
2021-05-20Remove linker_is_gnu: true cases as that is now the default.Luqman Aden-1/+0
2020-11-11rustc_target: Normalize vendor from "" to "unknown" for all targetsVadim Petrochenkov-1/+0
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-08rustc_target: Rename some target options to avoid tautologyVadim Petrochenkov-1/+1
`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-07rustc_target: Move `linker_flavor` from `Target` to `TargetOptions`Vadim Petrochenkov-1/+1
2020-11-07rustc_target: Move `target_vendor` from `Target` to `TargetOptions`Vadim Petrochenkov-1/+1
2020-11-07rustc_target: Move `target_env` from `Target` to `TargetOptions`Vadim Petrochenkov-1/+0
2020-11-07rustc_target: Move `target_os` from `Target` to `TargetOptions`Vadim Petrochenkov-1/+0
2020-11-07rustc_target: Move `target_endian` from `Target` to `TargetOptions`Vadim Petrochenkov-1/+0
2020-11-07rustc_target: Move `target_c_int_width` from `Target` to `TargetOptions`Vadim Petrochenkov-1/+0
2020-10-15Use integer literals for builtin target_pointer_width fieldsest31-1/+1
Also change target_pointer_width to pointer_width. Preparation for a subsequent type change of target_pointer_width to an integer together with a rename to pointer_width. On its own, this commit breaks the build. I don't like making build-breaking commits, but in this instance I believe that it makes review easier, as the "real" changes of this PR can be seen much more easily. Result of running: find compiler/rustc_target/src/spec/ -type f -exec sed -i -e 's/target_pointer_width: "\(.*\)"\..*,/pointer_width: \1,/g' {} \;
2020-10-05rustc_target: Refactor away `TargetResult`Vadim Petrochenkov-3/+3
Construction of a built-in target is always infallible now, so `TargetResult` is no longer necessary.
2020-08-30mv compiler to compiler/mark-0/+37