diff options
Diffstat (limited to 'user/rust/0024-Add-foxkit-target-specs.patch')
-rw-r--r-- | user/rust/0024-Add-foxkit-target-specs.patch | 244 |
1 files changed, 244 insertions, 0 deletions
diff --git a/user/rust/0024-Add-foxkit-target-specs.patch b/user/rust/0024-Add-foxkit-target-specs.patch new file mode 100644 index 000000000..2df25f447 --- /dev/null +++ b/user/rust/0024-Add-foxkit-target-specs.patch @@ -0,0 +1,244 @@ +From 0a6fb2cbb5ca1a9a07bcd426e0ec81975fe16682 Mon Sep 17 00:00:00 2001 +From: Samuel Holland <samuel@sholland.org> +Date: Mon, 17 Sep 2018 02:29:06 +0000 +Subject: [PATCH 24/24] Add foxkit target specs + +--- + src/bootstrap/native.rs | 10 ++++++-- + .../spec/aarch64_foxkit_linux_musl.rs | 21 +++++++++++++++++ + .../spec/armv7_foxkit_linux_musleabihf.rs | 21 +++++++++++++++++ + .../spec/i586_foxkit_linux_musl.rs | 23 +++++++++++++++++++ + src/librustc_target/spec/mod.rs | 7 ++++++ + .../spec/powerpc64_foxkit_linux_musl.rs | 21 +++++++++++++++++ + .../spec/powerpc_foxkit_linux_musl.rs | 23 +++++++++++++++++++ + .../spec/x86_64_foxkit_linux_musl.rs | 21 +++++++++++++++++ + 8 files changed, 145 insertions(+), 2 deletions(-) + create mode 100644 src/librustc_target/spec/aarch64_foxkit_linux_musl.rs + create mode 100644 src/librustc_target/spec/armv7_foxkit_linux_musleabihf.rs + create mode 100644 src/librustc_target/spec/i586_foxkit_linux_musl.rs + create mode 100644 src/librustc_target/spec/powerpc64_foxkit_linux_musl.rs + create mode 100644 src/librustc_target/spec/powerpc_foxkit_linux_musl.rs + create mode 100644 src/librustc_target/spec/x86_64_foxkit_linux_musl.rs + +diff --git a/src/bootstrap/native.rs b/src/bootstrap/native.rs +index a0329910be..f1ee4ed882 100644 +--- a/src/bootstrap/native.rs ++++ b/src/bootstrap/native.rs +@@ -685,6 +685,12 @@ impl Step for Openssl { + "x86_64-unknown-linux-gnux32" => "linux-x32", + "x86_64-unknown-linux-musl" => "linux-x86_64", + "x86_64-unknown-netbsd" => "BSD-x86_64", ++ "aarch64-foxkit-linux-musl" => "linux-aarch64", ++ "armv7-foxkit-linux-musleabihf" => "linux-armv4", ++ "i586-foxkit-linux-musl" => "linux-elf", ++ "powerpc-foxkit-linux-musl" => "linux-ppc", ++ "powerpc64-foxkit-linux-musl" => "linux-ppc64", ++ "x86_64-foxkit-linux-musl" => "linux-x86_64", + _ => panic!("don't know how to configure OpenSSL for {}", target), + }; + configure.arg(os); +@@ -699,7 +705,7 @@ impl Step for Openssl { + configure.arg("-fomit-frame-pointer"); + } + // OpenSSL ships incompatible ELFv1 ABI assembly code +- if target == "powerpc64-unknown-linux-musl" { ++ if target == "powerpc64-unknown-linux-musl" || target == "powerpc64-foxkit-linux-musl" { + configure.arg("no-asm"); + } + if target == "sparc64-unknown-netbsd" { +@@ -714,7 +720,7 @@ impl Step for Openssl { + // Make PIE binaries + // Non-PIE linker support was removed in Lollipop + // https://source.android.com/security/enhancements/enhancements50 +- if target == "i686-linux-android" { ++ if target == "i686-linux-android" || target == "i586-foxkit-linux-musl" { + configure.arg("no-asm"); + } + configure.current_dir(&obj); +diff --git a/src/librustc_target/spec/aarch64_foxkit_linux_musl.rs b/src/librustc_target/spec/aarch64_foxkit_linux_musl.rs +new file mode 100644 +index 0000000000..18ad2c2f31 +--- /dev/null ++++ b/src/librustc_target/spec/aarch64_foxkit_linux_musl.rs +@@ -0,0 +1,21 @@ ++// Copyright 2018 The Rust Project Developers. See the COPYRIGHT ++// file at the top-level directory of this distribution and at ++// http://rust-lang.org/COPYRIGHT. ++// ++// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or ++// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license ++// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your ++// option. This file may not be copied, modified, or distributed ++// except according to those terms. ++ ++use spec::TargetResult; ++ ++pub fn target() -> TargetResult { ++ let mut base = super::aarch64_unknown_linux_musl::target()?; ++ ++ base.llvm_target = "aarch64-foxkit-linux-musl".to_string(); ++ base.target_vendor = "foxkit".to_string(); ++ base.options.crt_static_default = false; ++ ++ Ok(base) ++} +diff --git a/src/librustc_target/spec/armv7_foxkit_linux_musleabihf.rs b/src/librustc_target/spec/armv7_foxkit_linux_musleabihf.rs +new file mode 100644 +index 0000000000..facfd5d363 +--- /dev/null ++++ b/src/librustc_target/spec/armv7_foxkit_linux_musleabihf.rs +@@ -0,0 +1,21 @@ ++// Copyright 2018 The Rust Project Developers. See the COPYRIGHT ++// file at the top-level directory of this distribution and at ++// http://rust-lang.org/COPYRIGHT. ++// ++// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or ++// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license ++// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your ++// option. This file may not be copied, modified, or distributed ++// except according to those terms. ++ ++use spec::TargetResult; ++ ++pub fn target() -> TargetResult { ++ let mut base = super::armv7_unknown_linux_musleabihf::target()?; ++ ++ base.llvm_target = "armv7-foxkit-linux-musleabihf".to_string(); ++ base.target_vendor = "foxkit".to_string(); ++ base.options.crt_static_default = false; ++ ++ Ok(base) ++} +diff --git a/src/librustc_target/spec/i586_foxkit_linux_musl.rs b/src/librustc_target/spec/i586_foxkit_linux_musl.rs +new file mode 100644 +index 0000000000..e0284d96e6 +--- /dev/null ++++ b/src/librustc_target/spec/i586_foxkit_linux_musl.rs +@@ -0,0 +1,23 @@ ++// Copyright 2018 The Rust Project Developers. See the COPYRIGHT ++// file at the top-level directory of this distribution and at ++// http://rust-lang.org/COPYRIGHT. ++// ++// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or ++// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license ++// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your ++// option. This file may not be copied, modified, or distributed ++// except according to those terms. ++ ++use spec::{LinkerFlavor, TargetResult}; ++ ++pub fn target() -> TargetResult { ++ let mut base = super::i586_unknown_linux_musl::target()?; ++ ++ base.llvm_target = "i586-foxkit-linux-musl".to_string(); ++ base.target_vendor = "foxkit".to_string(); ++ base.options.crt_static_default = false; ++ base.options.post_link_args.insert(LinkerFlavor::Gcc, ++ vec!["-Wl,--as-needed".to_string(), "-lssp_nonshared".to_string()]); ++ ++ Ok(base) ++} +diff --git a/src/librustc_target/spec/mod.rs b/src/librustc_target/spec/mod.rs +index 9ee761fd51..0ee10e3d33 100644 +--- a/src/librustc_target/spec/mod.rs ++++ b/src/librustc_target/spec/mod.rs +@@ -414,6 +414,13 @@ supported_targets! { + ("riscv32imac-unknown-none-elf", riscv32imac_unknown_none_elf), + + ("aarch64-unknown-none", aarch64_unknown_none), ++ ++ ("aarch64-foxkit-linux-musl", aarch64_foxkit_linux_musl), ++ ("armv7-foxkit-linux-musleabihf", armv7_foxkit_linux_musleabihf), ++ ("i586-foxkit-linux-musl", i586_foxkit_linux_musl), ++ ("powerpc-foxkit-linux-musl", powerpc_foxkit_linux_musl), ++ ("powerpc64-foxkit-linux-musl", powerpc64_foxkit_linux_musl), ++ ("x86_64-foxkit-linux-musl", x86_64_foxkit_linux_musl), + } + + /// Everything `rustc` knows about how to compile for a specific target. +diff --git a/src/librustc_target/spec/powerpc64_foxkit_linux_musl.rs b/src/librustc_target/spec/powerpc64_foxkit_linux_musl.rs +new file mode 100644 +index 0000000000..b7202ee0fc +--- /dev/null ++++ b/src/librustc_target/spec/powerpc64_foxkit_linux_musl.rs +@@ -0,0 +1,21 @@ ++// Copyright 2018 The Rust Project Developers. See the COPYRIGHT ++// file at the top-level directory of this distribution and at ++// http://rust-lang.org/COPYRIGHT. ++// ++// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or ++// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license ++// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your ++// option. This file may not be copied, modified, or distributed ++// except according to those terms. ++ ++use spec::TargetResult; ++ ++pub fn target() -> TargetResult { ++ let mut base = super::powerpc64_unknown_linux_musl::target()?; ++ ++ base.llvm_target = "powerpc64-foxkit-linux-musl".to_string(); ++ base.target_vendor = "foxkit".to_string(); ++ base.options.crt_static_default = false; ++ ++ Ok(base) ++} +diff --git a/src/librustc_target/spec/powerpc_foxkit_linux_musl.rs b/src/librustc_target/spec/powerpc_foxkit_linux_musl.rs +new file mode 100644 +index 0000000000..34246a7e28 +--- /dev/null ++++ b/src/librustc_target/spec/powerpc_foxkit_linux_musl.rs +@@ -0,0 +1,23 @@ ++// Copyright 2018 The Rust Project Developers. See the COPYRIGHT ++// file at the top-level directory of this distribution and at ++// http://rust-lang.org/COPYRIGHT. ++// ++// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or ++// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license ++// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your ++// option. This file may not be copied, modified, or distributed ++// except according to those terms. ++ ++use spec::{LinkerFlavor, TargetResult}; ++ ++pub fn target() -> TargetResult { ++ let mut base = super::powerpc_unknown_linux_musl::target()?; ++ ++ base.llvm_target = "powerpc-foxkit-linux-musl".to_string(); ++ base.target_vendor = "foxkit".to_string(); ++ base.options.crt_static_default = false; ++ base.options.post_link_args.insert(LinkerFlavor::Gcc, ++ vec!["-Wl,--as-needed".to_string(), "-lssp_nonshared".to_string()]); ++ ++ Ok(base) ++} +diff --git a/src/librustc_target/spec/x86_64_foxkit_linux_musl.rs b/src/librustc_target/spec/x86_64_foxkit_linux_musl.rs +new file mode 100644 +index 0000000000..801dd8d6f4 +--- /dev/null ++++ b/src/librustc_target/spec/x86_64_foxkit_linux_musl.rs +@@ -0,0 +1,21 @@ ++// Copyright 2018 The Rust Project Developers. See the COPYRIGHT ++// file at the top-level directory of this distribution and at ++// http://rust-lang.org/COPYRIGHT. ++// ++// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or ++// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license ++// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your ++// option. This file may not be copied, modified, or distributed ++// except according to those terms. ++ ++use spec::TargetResult; ++ ++pub fn target() -> TargetResult { ++ let mut base = super::x86_64_unknown_linux_musl::target()?; ++ ++ base.llvm_target = "x86_64-foxkit-linux-musl".to_string(); ++ base.target_vendor = "foxkit".to_string(); ++ base.options.crt_static_default = false; ++ ++ Ok(base) ++} +-- +2.18.0 + |