Fix pending reviews

This commit is contained in:
infrandomness 2022-06-09 16:50:34 +02:00
parent 9130034337
commit 97a512070a
7 changed files with 23 additions and 22 deletions

View File

@ -2,15 +2,15 @@ use rustc_middle::mir;
use rustc_target::spec::abi::Abi;
use crate::*;
use shims::unix::freebsd::dlsym as freebsd;
use shims::unix::linux::dlsym as linux;
use shims::unix::macos::dlsym as macos;
use shims::unix::freebsd::dlsym as freebsd;
#[derive(Debug, Copy, Clone)]
pub enum Dlsym {
Linux(linux::Dlsym),
MacOs(macos::Dlsym),
FreeBSD(freebsd::Dlsym)
FreeBSD(freebsd::Dlsym),
}
impl Dlsym {
@ -43,7 +43,8 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
match dlsym {
Dlsym::Linux(dlsym) => linux::EvalContextExt::call_dlsym(this, dlsym, args, dest, ret),
Dlsym::MacOs(dlsym) => macos::EvalContextExt::call_dlsym(this, dlsym, args, dest, ret),
Dlsym::FreeBSD(dlsym) => freebsd::EvalContextExt::call_dlsym(this, dlsym, args, dest, ret)
Dlsym::FreeBSD(dlsym) =>
freebsd::EvalContextExt::call_dlsym(this, dlsym, args, dest, ret),
}
}
}

View File

@ -1,13 +1,10 @@
use rustc_middle::mir;
use crate::*;
use helpers::check_arg_count;
#[derive(Debug, Copy, Clone)]
#[allow(non_camel_case_types)]
pub enum Dlsym {
getentropy,
}
pub enum Dlsym {}
impl Dlsym {
// Returns an error for unsupported symbols, and None if this symbol

View File

@ -20,4 +20,4 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
// match
Ok(EmulateByNameResult::NeedsJumping)
}
}
}

View File

@ -1,2 +1,2 @@
pub mod dlsym;
pub mod foreign_items;
pub mod dlsym;

View File

@ -3,10 +3,12 @@ use rustc_middle::mir;
use log::trace;
use crate::*;
use helpers::check_arg_count;
#[derive(Debug, Copy, Clone)]
#[allow(non_camel_case_types)]
pub enum Dlsym {
getentropy,
}
impl Dlsym {
@ -14,7 +16,8 @@ impl Dlsym {
// should become a NULL pointer (pretend it does not exist).
pub fn from_str<'tcx>(name: &str) -> InterpResult<'tcx, Option<Dlsym>> {
Ok(match name {
_ => throw_unsup_format!("unsupported freebsd dlsym: {}", name),
"getentropy" => Some(Dlsym::getentropy),
_ => throw_unsup_format!("unsupported macOS dlsym: {}", name),
})
}
}
@ -30,7 +33,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
) -> InterpResult<'tcx> {
let this = self.eval_context_mut();
let ret = ret.expect("we don't support any diverging dlsym");
assert!(this.tcx.sess.target.os == "freebsd");
assert!(this.tcx.sess.target.os == "macos");
match dlsym {
Dlsym::getentropy => {

View File

@ -5,8 +5,8 @@ mod fs;
mod sync;
mod thread;
mod freebsd;
mod linux;
mod macos;
mod freebsd;
pub use fs::{DirHandler, FileHandler};

View File

@ -5,14 +5,14 @@
extern crate libc;
#[cfg(target_os = "linux, freebsd")]
#[cfg(any(target_os = "linux", target_os = "freebsd"))]
fn tmp() -> std::path::PathBuf {
std::env::var("MIRI_TEMP")
.map(std::path::PathBuf::from)
.unwrap_or_else(|_| std::env::temp_dir())
}
#[cfg(target_os = "linux, freebsd")]
#[cfg(any(target_os = "linux", target_os = "freebsd"))]
fn test_posix_fadvise() {
use std::convert::TryInto;
use std::fs::{remove_file, File};
@ -42,7 +42,7 @@ fn test_posix_fadvise() {
assert_eq!(result, 0);
}
#[cfg(target_os = "linux, freebsd")]
#[cfg(any(target_os = "linux", target_os = "freebsd"))]
fn test_sync_file_range() {
use std::fs::{remove_file, File};
use std::io::Write;
@ -208,7 +208,7 @@ fn test_rwlock_libc_static_initializer() {
/// Test whether the `prctl` shim correctly sets the thread name.
///
/// Note: `prctl` exists only on Linux.
#[cfg(target_os = "linux,freebsd")]
#[cfg(any(target_os = "linux", target_os = "freebsd"))]
fn test_prctl_thread_name() {
use libc::c_long;
use std::ffi::CString;
@ -277,7 +277,7 @@ fn test_thread_local_errno() {
}
/// Tests whether clock support exists at all
#[cfg(target_os = "linux,freebsd")]
#[cfg(any(target_os = "linux", target_os = "freebsd"))]
fn test_clocks() {
let mut tp = std::mem::MaybeUninit::<libc::timespec>::uninit();
let is_error = unsafe { libc::clock_gettime(libc::CLOCK_REALTIME, tp.as_mut_ptr()) };
@ -291,10 +291,10 @@ fn test_clocks() {
}
fn main() {
#[cfg(target_os = "linux,freebsd")]
#[cfg(any(target_os = "linux", target_os = "freebsd"))]
test_posix_fadvise();
#[cfg(target_os = "linux,freebsd")]
#[cfg(any(target_os = "linux", target_os = "freebsd"))]
test_sync_file_range();
test_mutex_libc_init_recursive();
@ -302,14 +302,14 @@ fn main() {
test_mutex_libc_init_errorcheck();
test_rwlock_libc_static_initializer();
#[cfg(target_os = "linux,freebsd")]
#[cfg(any(target_os = "linux", target_os = "freebsd"))]
test_mutex_libc_static_initializer_recursive();
#[cfg(target_os = "linux,freebsd")]
#[cfg(any(target_os = "linux", target_os = "freebsd"))]
test_prctl_thread_name();
test_thread_local_errno();
#[cfg(target_os = "linux,freebsd")]
#[cfg(any(target_os = "linux", target_os = "freebsd"))]
test_clocks();
}