Switch to LLD as default linker for {arm,thumb}v4t-none-eabi
This commit is contained in:
parent
f346fb0bc6
commit
3811275f09
3 changed files with 3 additions and 26 deletions
|
@ -4,13 +4,6 @@
|
|||
//!
|
||||
//! Please ping @Lokathor if changes are needed.
|
||||
//!
|
||||
//! This target profile assumes that you have the ARM binutils in your path
|
||||
//! (specifically the linker, `arm-none-eabi-ld`). They can be obtained for free
|
||||
//! for all major OSes from the ARM developer's website, and they may also be
|
||||
//! available in your system's package manager. Unfortunately, the standard
|
||||
//! linker that Rust uses (`lld`) only supports as far back as `ARMv5TE`, so we
|
||||
//! must use the GNU `ld` linker.
|
||||
//!
|
||||
//! **Important:** This target profile **does not** specify a linker script. You
|
||||
//! just get the default link script when you build a binary for this target.
|
||||
//! The default link script is very likely wrong, so you should use
|
||||
|
@ -35,8 +28,8 @@ pub fn target() -> Target {
|
|||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
options: TargetOptions {
|
||||
abi: "eabi".into(),
|
||||
linker_flavor: LinkerFlavor::Gnu(Cc::No, Lld::No),
|
||||
linker: Some("arm-none-eabi-ld".into()),
|
||||
linker_flavor: LinkerFlavor::Gnu(Cc::No, Lld::Yes),
|
||||
linker: Some("rust-lld".into()),
|
||||
asm_args: cvs!["-mthumb-interwork", "-march=armv4t", "-mlittle-endian",],
|
||||
// Force-enable 32-bit atomics, which allows the use of atomic load/store only.
|
||||
// The resulting atomics are ABI incompatible with atomics backed by libatomic.
|
||||
|
|
|
@ -4,19 +4,12 @@
|
|||
//!
|
||||
//! Please ping @Lokathor if changes are needed.
|
||||
//!
|
||||
//! This target profile assumes that you have the ARM binutils in your path
|
||||
//! (specifically the linker, `arm-none-eabi-ld`). They can be obtained for free
|
||||
//! for all major OSes from the ARM developer's website, and they may also be
|
||||
//! available in your system's package manager. Unfortunately, the standard
|
||||
//! linker that Rust uses (`lld`) only supports as far back as `ARMv5TE`, so we
|
||||
//! must use the GNU `ld` linker.
|
||||
//!
|
||||
//! **Important:** This target profile **does not** specify a linker script. You
|
||||
//! just get the default link script when you build a binary for this target.
|
||||
//! The default link script is very likely wrong, so you should use
|
||||
//! `-Clink-arg=-Tmy_script.ld` to override that with a correct linker script.
|
||||
|
||||
use crate::spec::{cvs, Cc, FramePointer, LinkerFlavor, Lld};
|
||||
use crate::spec::{cvs, FramePointer};
|
||||
use crate::spec::{PanicStrategy, RelocModel, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
|
@ -36,8 +29,6 @@ pub fn target() -> Target {
|
|||
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(),
|
||||
options: TargetOptions {
|
||||
abi: "eabi".into(),
|
||||
linker_flavor: LinkerFlavor::Gnu(Cc::No, Lld::No),
|
||||
linker: Some("arm-none-eabi-ld".into()),
|
||||
|
||||
// extra args passed to the external assembler (assuming `arm-none-eabi-as`):
|
||||
// * activate t32/a32 interworking
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue