about summary refs log tree commit diff
path: root/compiler/rustc_target/src/spec/illumos_base.rs
AgeCommit message (Collapse)AuthorLines
2023-11-08target: move base specs to spec/baseDavid Wood-59/+0
Signed-off-by: David Wood <david@davidtw.co>
2023-01-17Remove double spaces after dots in commentsMaybe Waffle-6/+6
2022-10-06rustc_target: Refactor internal linker flavorsVadim Petrochenkov-3/+3
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-06-25rustc_target: Add convenience functions for adding linker argumentsVadim Petrochenkov-6/+5
They ensure that lld and non-lld linker flavors get the same set of arguments
2022-04-03Cleanup after some refactoring in rustc_targetLoïc BRANSTETT-4/+1
2022-04-03Replace every Vec in Target(Options) with it's Cow equivalentLoïc BRANSTETT-1/+3
2022-04-03Replace every `String` in Target(Options) with `Cow<'static, str>`Loïc BRANSTETT-6/+6
2021-12-17Rename `has_elf_tls` to `has_thread_local`Chris Denton-1/+1
2021-06-30Add support for leaf fn frame pointer eliminationSimonas Kazlauskas-2/+2
This PR adds ability for the target specifications to specify frame pointer emission type that's not just “always” or “whatever cg decides”. In particular there's a new mode that allows omission of the frame pointer for leaf functions (those that don't call any other functions). We then set this new mode for Aarch64-based Apple targets. Fixes #86196
2021-05-20Swap TargetOptions::linker_is_gnu default from false to true and update ↵Luqman Aden-0/+1
targets as appropriate.
2021-05-06illumos should put libc last in library search orderJoshua M. Clulow-0/+11
Under some conditions, the toolchain will produce a sequence of linker arguments that result in a NEEDED list that puts libc before libgcc_s; e.g., [0] NEEDED 0x2046ba libc.so.1 [1] NEEDED 0x204723 libm.so.2 [2] NEEDED 0x204736 libsocket.so.1 [3] NEEDED 0x20478b libumem.so.1 [4] NEEDED 0x204763 libgcc_s.so.1 Both libc and libgcc_s provide an unwinder implementation, but libgcc_s provides some extra symbols upon which Rust directly depends. If libc is first in the NEEDED list we will find some of those symbols in libc but others in libgcc_s, resulting in undefined behaviour as the two implementations do not use compatible interior data structures. This solution is not perfect, but is the simplest way to produce correct binaries on illumos for now.
2021-04-11Allow setting `target_family` to multiple valuesSimonas Kazlauskas-1/+1
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
2020-11-08rustc_target: Rename some target options to avoid tautologyVadim Petrochenkov-2/+2
`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 `target_os` from `Target` to `TargetOptions`Vadim Petrochenkov-0/+1
2020-08-30mv compiler to compiler/mark-0/+49