about summary refs log tree commit diff
path: root/src/librustc_back/target
diff options
context:
space:
mode:
authorJorge Aparicio <japaricious@gmail.com>2016-11-09 19:05:32 -0500
committerJorge Aparicio <japaricious@gmail.com>2016-11-12 17:33:35 -0500
commitfcde9904dbe7c4426a72b39a49b892eadb5a8940 (patch)
tree32317f818f065150e192c8e538daea39b6e66c1f /src/librustc_back/target
parent7b559368699c1d4c0df1e3d813c8a84dba3118aa (diff)
downloadrust-fcde9904dbe7c4426a72b39a49b892eadb5a8940.tar.gz
rust-fcde9904dbe7c4426a72b39a49b892eadb5a8940.zip
use msp430-as to emit object files from the assembly that LLVM emits
Diffstat (limited to 'src/librustc_back/target')
-rw-r--r--src/librustc_back/target/mod.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/librustc_back/target/mod.rs b/src/librustc_back/target/mod.rs
index 14fe02269d1..f6a0946dd5b 100644
--- a/src/librustc_back/target/mod.rs
+++ b/src/librustc_back/target/mod.rs
@@ -359,6 +359,10 @@ pub struct TargetOptions {
     // will 'just work'.
     pub obj_is_bitcode: bool,
 
+    // LLVM can't produce object files for MSP430. Instead, we'll make LLVM emit
+    // assembly and then use `msp430-as` to turn that assembly into an object file
+    pub obj_needs_as: bool,
+
     /// Don't use this field; instead use the `.max_atomic_width()` method.
     pub max_atomic_width: Option<u64>,
 
@@ -416,6 +420,7 @@ impl Default for TargetOptions {
             allow_asm: true,
             has_elf_tls: false,
             obj_is_bitcode: false,
+            obj_needs_as: false,
             max_atomic_width: None,
             panic_strategy: PanicStrategy::Unwind,
             abi_blacklist: vec![],
@@ -576,6 +581,7 @@ impl Target {
         key!(exe_allocation_crate);
         key!(has_elf_tls, bool);
         key!(obj_is_bitcode, bool);
+        key!(obj_needs_as, bool);
         key!(max_atomic_width, Option<u64>);
         try!(key!(panic_strategy, PanicStrategy));
 
@@ -735,6 +741,7 @@ impl ToJson for Target {
         target_option_val!(exe_allocation_crate);
         target_option_val!(has_elf_tls);
         target_option_val!(obj_is_bitcode);
+        target_option_val!(obj_needs_as);
         target_option_val!(max_atomic_width);
         target_option_val!(panic_strategy);