From e3231e35b6bbfabca1d9ceff9c4690af00328706 Mon Sep 17 00:00:00 2001 From: Marco A L Barbosa Date: Tue, 26 Dec 2017 13:05:03 -0200 Subject: [PATCH] Add armv4t-unknown-linux-gnueabi target --- .../target/armv4t_unknown_linux_gnueabi.rs | 36 +++++++++++++++++++ .../target/armv5te_unknown_linux_gnueabi.rs | 6 +--- src/librustc_back/target/mod.rs | 1 + 3 files changed, 38 insertions(+), 5 deletions(-) create mode 100644 src/librustc_back/target/armv4t_unknown_linux_gnueabi.rs diff --git a/src/librustc_back/target/armv4t_unknown_linux_gnueabi.rs b/src/librustc_back/target/armv4t_unknown_linux_gnueabi.rs new file mode 100644 index 00000000000..33399a78493 --- /dev/null +++ b/src/librustc_back/target/armv4t_unknown_linux_gnueabi.rs @@ -0,0 +1,36 @@ +// Copyright 2016 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +use LinkerFlavor; +use target::{Target, TargetOptions, TargetResult}; + +pub fn target() -> TargetResult { + let base = super::linux_base::opts(); + Ok(Target { + llvm_target: "armv4t-unknown-linux-gnueabi".to_string(), + target_endian: "little".to_string(), + target_pointer_width: "32".to_string(), + target_c_int_width: "32".to_string(), + data_layout: "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64".to_string(), + arch: "arm".to_string(), + target_os: "linux".to_string(), + target_env: "gnu".to_string(), + target_vendor: "unknown".to_string(), + linker_flavor: LinkerFlavor::Gcc, + + options: TargetOptions { + features: "+soft-float,+strict-align".to_string(), + // Atomic operations provided by compiler-builtins + max_atomic_width: Some(32), + abi_blacklist: super::arm_base::abi_blacklist(), + .. base + } + }) +} diff --git a/src/librustc_back/target/armv5te_unknown_linux_gnueabi.rs b/src/librustc_back/target/armv5te_unknown_linux_gnueabi.rs index 97397ca4962..4efe66980a0 100644 --- a/src/librustc_back/target/armv5te_unknown_linux_gnueabi.rs +++ b/src/librustc_back/target/armv5te_unknown_linux_gnueabi.rs @@ -27,11 +27,7 @@ pub fn target() -> TargetResult { options: TargetOptions { features: "+soft-float,+strict-align".to_string(), - - // Atomic operations provided when linked with libgcc. - // FIXME: If the following PR is merged, the atomic operations would be - // provided by compiler-builtins instead with no change of behavior: - // https://github.com/rust-lang-nursery/compiler-builtins/pull/115/files + // Atomic operations provided by compiler-builtins max_atomic_width: Some(32), abi_blacklist: super::arm_base::abi_blacklist(), .. base diff --git a/src/librustc_back/target/mod.rs b/src/librustc_back/target/mod.rs index 5c18e82fe3a..202e0948541 100644 --- a/src/librustc_back/target/mod.rs +++ b/src/librustc_back/target/mod.rs @@ -151,6 +151,7 @@ supported_targets! { ("arm-unknown-linux-gnueabihf", arm_unknown_linux_gnueabihf), ("arm-unknown-linux-musleabi", arm_unknown_linux_musleabi), ("arm-unknown-linux-musleabihf", arm_unknown_linux_musleabihf), + ("armv4t-unknown-linux-gnueabi", armv4t_unknown_linux_gnueabi), ("armv5te-unknown-linux-gnueabi", armv5te_unknown_linux_gnueabi), ("armv7-unknown-linux-gnueabihf", armv7_unknown_linux_gnueabihf), ("armv7-unknown-linux-musleabihf", armv7_unknown_linux_musleabihf),