Enable inline stack probes on PowerPC and SystemZ
This commit is contained in:
parent
e1d7dec558
commit
ad8f519ed7
23 changed files with 107 additions and 48 deletions
|
@ -1,11 +1,12 @@
|
|||
use crate::abi::Endian;
|
||||
use crate::spec::{LinkerFlavor, Target, TargetOptions};
|
||||
use crate::spec::{LinkerFlavor, StackProbeType, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let mut base = super::freebsd_base::opts();
|
||||
base.cpu = "ppc64".into();
|
||||
base.add_pre_link_args(LinkerFlavor::Gcc, &["-m64"]);
|
||||
base.max_atomic_width = Some(64);
|
||||
base.stack_probes = StackProbeType::Inline;
|
||||
|
||||
Target {
|
||||
llvm_target: "powerpc64-unknown-freebsd".into(),
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
use crate::abi::Endian;
|
||||
use crate::spec::{LinkerFlavor, Target, TargetOptions};
|
||||
use crate::spec::{LinkerFlavor, StackProbeType, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let mut base = super::linux_gnu_base::opts();
|
||||
base.cpu = "ppc64".into();
|
||||
base.add_pre_link_args(LinkerFlavor::Gcc, &["-m64"]);
|
||||
base.max_atomic_width = Some(64);
|
||||
base.stack_probes = StackProbeType::Inline;
|
||||
|
||||
Target {
|
||||
llvm_target: "powerpc64-unknown-linux-gnu".into(),
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
use crate::abi::Endian;
|
||||
use crate::spec::{LinkerFlavor, Target, TargetOptions};
|
||||
use crate::spec::{LinkerFlavor, StackProbeType, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let mut base = super::linux_musl_base::opts();
|
||||
base.cpu = "ppc64".into();
|
||||
base.add_pre_link_args(LinkerFlavor::Gcc, &["-m64"]);
|
||||
base.max_atomic_width = Some(64);
|
||||
base.stack_probes = StackProbeType::Inline;
|
||||
|
||||
Target {
|
||||
llvm_target: "powerpc64-unknown-linux-musl".into(),
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
use crate::abi::Endian;
|
||||
use crate::spec::{LinkerFlavor, Target, TargetOptions};
|
||||
use crate::spec::{LinkerFlavor, StackProbeType, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let mut base = super::openbsd_base::opts();
|
||||
base.cpu = "ppc64".into();
|
||||
base.add_pre_link_args(LinkerFlavor::Gcc, &["-m64"]);
|
||||
base.max_atomic_width = Some(64);
|
||||
base.stack_probes = StackProbeType::Inline;
|
||||
|
||||
Target {
|
||||
llvm_target: "powerpc64-unknown-openbsd".into(),
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
use crate::abi::Endian;
|
||||
use crate::spec::{LinkerFlavor, Target, TargetOptions};
|
||||
use crate::spec::{LinkerFlavor, StackProbeType, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let mut base = super::vxworks_base::opts();
|
||||
base.cpu = "ppc64".into();
|
||||
base.add_pre_link_args(LinkerFlavor::Gcc, &["-m64"]);
|
||||
base.max_atomic_width = Some(64);
|
||||
base.stack_probes = StackProbeType::Inline;
|
||||
|
||||
Target {
|
||||
llvm_target: "powerpc64-unknown-linux-gnu".into(),
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
use crate::spec::{LinkerFlavor, Target, TargetOptions};
|
||||
use crate::spec::{LinkerFlavor, StackProbeType, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let mut base = super::freebsd_base::opts();
|
||||
base.cpu = "ppc64le".into();
|
||||
base.add_pre_link_args(LinkerFlavor::Gcc, &["-m64"]);
|
||||
base.max_atomic_width = Some(64);
|
||||
base.stack_probes = StackProbeType::Inline;
|
||||
|
||||
Target {
|
||||
llvm_target: "powerpc64le-unknown-freebsd".into(),
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
use crate::spec::{LinkerFlavor, Target, TargetOptions};
|
||||
use crate::spec::{LinkerFlavor, StackProbeType, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let mut base = super::linux_gnu_base::opts();
|
||||
base.cpu = "ppc64le".into();
|
||||
base.add_pre_link_args(LinkerFlavor::Gcc, &["-m64"]);
|
||||
base.max_atomic_width = Some(64);
|
||||
base.stack_probes = StackProbeType::Inline;
|
||||
|
||||
Target {
|
||||
llvm_target: "powerpc64le-unknown-linux-gnu".into(),
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
use crate::spec::{LinkerFlavor, Target, TargetOptions};
|
||||
use crate::spec::{LinkerFlavor, StackProbeType, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let mut base = super::linux_musl_base::opts();
|
||||
base.cpu = "ppc64le".into();
|
||||
base.add_pre_link_args(LinkerFlavor::Gcc, &["-m64"]);
|
||||
base.max_atomic_width = Some(64);
|
||||
base.stack_probes = StackProbeType::Inline;
|
||||
|
||||
Target {
|
||||
llvm_target: "powerpc64le-unknown-linux-musl".into(),
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
use crate::abi::Endian;
|
||||
use crate::spec::{LinkerFlavor, Target, TargetOptions};
|
||||
use crate::spec::{LinkerFlavor, StackProbeType, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let mut base = super::freebsd_base::opts();
|
||||
// Extra hint to linker that we are generating secure-PLT code.
|
||||
base.add_pre_link_args(LinkerFlavor::Gcc, &["-m32", "--target=powerpc-unknown-freebsd13.0"]);
|
||||
base.max_atomic_width = Some(32);
|
||||
base.stack_probes = StackProbeType::Inline;
|
||||
|
||||
Target {
|
||||
llvm_target: "powerpc-unknown-freebsd13.0".into(),
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
use crate::abi::Endian;
|
||||
use crate::spec::{LinkerFlavor, Target, TargetOptions};
|
||||
use crate::spec::{LinkerFlavor, StackProbeType, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let mut base = super::linux_gnu_base::opts();
|
||||
base.add_pre_link_args(LinkerFlavor::Gcc, &["-m32"]);
|
||||
base.max_atomic_width = Some(32);
|
||||
base.stack_probes = StackProbeType::Inline;
|
||||
|
||||
Target {
|
||||
llvm_target: "powerpc-unknown-linux-gnu".into(),
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
use crate::abi::Endian;
|
||||
use crate::spec::{LinkerFlavor, Target, TargetOptions};
|
||||
use crate::spec::{LinkerFlavor, StackProbeType, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let mut base = super::linux_gnu_base::opts();
|
||||
base.add_pre_link_args(LinkerFlavor::Gcc, &["-mspe"]);
|
||||
base.max_atomic_width = Some(32);
|
||||
base.stack_probes = StackProbeType::Inline;
|
||||
|
||||
Target {
|
||||
llvm_target: "powerpc-unknown-linux-gnuspe".into(),
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
use crate::abi::Endian;
|
||||
use crate::spec::{LinkerFlavor, Target, TargetOptions};
|
||||
use crate::spec::{LinkerFlavor, StackProbeType, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let mut base = super::linux_musl_base::opts();
|
||||
base.add_pre_link_args(LinkerFlavor::Gcc, &["-m32"]);
|
||||
base.max_atomic_width = Some(32);
|
||||
base.stack_probes = StackProbeType::Inline;
|
||||
|
||||
Target {
|
||||
llvm_target: "powerpc-unknown-linux-musl".into(),
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
use crate::abi::Endian;
|
||||
use crate::spec::{LinkerFlavor, Target, TargetOptions};
|
||||
use crate::spec::{LinkerFlavor, StackProbeType, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let mut base = super::netbsd_base::opts();
|
||||
base.add_pre_link_args(LinkerFlavor::Gcc, &["-m32"]);
|
||||
base.max_atomic_width = Some(32);
|
||||
base.stack_probes = StackProbeType::Inline;
|
||||
|
||||
Target {
|
||||
llvm_target: "powerpc-unknown-netbsd".into(),
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
use crate::abi::Endian;
|
||||
use crate::spec::Target;
|
||||
use crate::spec::{StackProbeType, Target};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let mut base = super::openbsd_base::opts();
|
||||
base.endian = Endian::Big;
|
||||
base.max_atomic_width = Some(32);
|
||||
base.stack_probes = StackProbeType::Inline;
|
||||
|
||||
Target {
|
||||
llvm_target: "powerpc-unknown-openbsd".into(),
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
use crate::abi::Endian;
|
||||
use crate::spec::{LinkerFlavor, Target, TargetOptions};
|
||||
use crate::spec::{LinkerFlavor, StackProbeType, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let mut base = super::vxworks_base::opts();
|
||||
base.add_pre_link_args(LinkerFlavor::Gcc, &["-m32", "--secure-plt"]);
|
||||
base.max_atomic_width = Some(32);
|
||||
base.stack_probes = StackProbeType::Inline;
|
||||
|
||||
Target {
|
||||
llvm_target: "powerpc-unknown-linux-gnu".into(),
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
use crate::abi::Endian;
|
||||
use crate::spec::{LinkerFlavor, Target, TargetOptions};
|
||||
use crate::spec::{LinkerFlavor, StackProbeType, Target, TargetOptions};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let mut base = super::vxworks_base::opts();
|
||||
base.add_pre_link_args(LinkerFlavor::Gcc, &["-mspe", "--secure-plt"]);
|
||||
base.max_atomic_width = Some(32);
|
||||
base.stack_probes = StackProbeType::Inline;
|
||||
|
||||
Target {
|
||||
llvm_target: "powerpc-unknown-linux-gnuspe".into(),
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
use crate::abi::Endian;
|
||||
use crate::spec::Target;
|
||||
use crate::spec::{StackProbeType, Target};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let mut base = super::linux_gnu_base::opts();
|
||||
|
@ -12,6 +12,7 @@ pub fn target() -> Target {
|
|||
base.features = "-vector".into();
|
||||
base.max_atomic_width = Some(64);
|
||||
base.min_global_align = Some(16);
|
||||
base.stack_probes = StackProbeType::Inline;
|
||||
|
||||
Target {
|
||||
llvm_target: "s390x-unknown-linux-gnu".into(),
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
use crate::abi::Endian;
|
||||
use crate::spec::Target;
|
||||
use crate::spec::{StackProbeType, Target};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let mut base = super::linux_musl_base::opts();
|
||||
|
@ -13,6 +13,7 @@ pub fn target() -> Target {
|
|||
base.max_atomic_width = Some(64);
|
||||
base.min_global_align = Some(16);
|
||||
base.static_position_independent_executables = true;
|
||||
base.stack_probes = StackProbeType::Inline;
|
||||
|
||||
Target {
|
||||
llvm_target: "s390x-unknown-linux-musl".into(),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue