]> git.lizzy.rs Git - rust.git/commitdiff
Warn and error about some things and make METADATA_FILENAME an &str
authorbjorn3 <bjorn3@users.noreply.github.com>
Sat, 10 Nov 2018 14:01:01 +0000 (15:01 +0100)
committerbjorn3 <bjorn3@users.noreply.github.com>
Sat, 10 Nov 2018 14:01:01 +0000 (15:01 +0100)
src/lib.rs
src/link.rs
src/metadata.rs

index 9811793b8677a4ba996482a9e3ce246819fa8263..aacb3dae1215e59d479022cc948b88488620687e 100644 (file)
@@ -73,7 +73,7 @@ mod prelude {
 
     pub use rustc::hir::def_id::{CrateNum, DefId, LOCAL_CRATE};
     pub use rustc::mir::{self, interpret::AllocId, *};
-    pub use rustc::session::{config::CrateType, Session};
+    pub use rustc::session::{config::{CrateType, Lto}, Session};
     pub use rustc::ty::layout::{self, Abi, LayoutOf, Scalar, Size, TyLayout};
     pub use rustc::ty::{
         self, subst::Substs, FnSig, Instance, InstanceDef, ParamEnv, PolyFnSig, Ty, TyCtxt,
@@ -143,6 +143,18 @@ fn init(&self, sess: &Session) {
                 }
             }
         }
+        match sess.lto() {
+            Lto::Fat | Lto::Thin | Lto::ThinLocal => {
+                sess.warn("Rustc codegen cranelift doesn't support lto");
+            }
+            Lto::No => {},
+        }
+        if sess.opts.cg.rpath {
+            sess.err("rpath is not yet supported");
+        }
+        if sess.opts.debugging_opts.pgo_gen.is_some() {
+            sess.err("pgo is not supported");
+        }
     }
 
     fn metadata_loader(&self) -> Box<MetadataLoader + Sync> {
index 474584fa2a11435f4a65cd57518d9af0919f6f01..14202a4a6d4545da813a41b90e04a79f453a82e3 100644 (file)
@@ -22,7 +22,7 @@ pub(crate) fn link_rlib(sess: &Session, res: &crate::CodegenResults, output_name
     builder
         .append(
             &ar::Header::new(
-                crate::metadata::METADATA_FILENAME.to_vec(),
+                crate::metadata::METADATA_FILENAME.as_bytes().to_vec(),
                 res.metadata.len() as u64,
             ),
             ::std::io::Cursor::new(res.metadata.clone()),
index faeeeaa411d9bf02a0ad6c8b26202b0ae70c2d1c..c70fdba35d848d623f914ed51268d02f0a478633 100644 (file)
@@ -3,7 +3,7 @@
 use std::fs::File;
 use std::path::Path;
 
-pub const METADATA_FILENAME: &'static [u8] = b"rust.metadata.bin" as &[u8];
+pub const METADATA_FILENAME: &str = "rust.metadata.bin";
 
 pub struct CraneliftMetadataLoader;
 
@@ -17,7 +17,7 @@ fn get_rlib_metadata(
         // Iterate over all entries in the archive:
         while let Some(entry_result) = archive.next_entry() {
             let mut entry = entry_result.map_err(|e| format!("{:?}", e))?;
-            if entry.header().identifier() == METADATA_FILENAME {
+            if entry.header().identifier() == METADATA_FILENAME.as_bytes() {
                 let mut buf = Vec::new();
                 ::std::io::copy(&mut entry, &mut buf).map_err(|e| format!("{:?}", e))?;
                 let buf: OwningRef<Vec<u8>, [u8]> = OwningRef::new(buf).into();