rust-lang / miri

An interpreter for Rust's mid-level intermediate representation
Apache License 2.0
4.63k stars 349 forks source link

Miri broken on Solaris #4050

Open RalfJung opened 10 hours ago

RalfJung commented 10 hours ago

Running any program on Solaris fails since some recent rustc change:

error: unsupported operation: can't call foreign function `__sysconf_xpg7` on OS `solaris`
    --> /Users/runner/.rustup/toolchains/miri/lib/rustlib/src/rust/library/std/src/sys/pal/unix/os.rs:698:14
     |
  LL |     unsafe { libc::sysconf(libc::_SC_PAGESIZE) as usize }
     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't call foreign function `__sysconf_xpg7` on OS `solaris`
     |
     = help: if this is a basic API commonly used on this target, please report an issue with Miri
     = help: however, note that Miri does not aim to support every FFI function out there; for instance, we will not support APIs for things such as GUIs, scripting languages, or databases
     = note: BACKTRACE:
     = note: inside `std::sys::pal::unix::os::page_size` at /Users/runner/.rustup/toolchains/miri/lib/rustlib/src/rust/library/std/src/sys/pal/unix/os.rs:698:14: 698:47
     = note: inside `std::sys::pal::unix::stack_overflow::imp::init` at /Users/runner/.rustup/toolchains/miri/lib/rustlib/src/rust/library/std/src/sys/pal/unix/stack_overflow.rs:128:25: 128:40
     = note: inside `std::sys::pal::unix::init` at /Users/runner/.rustup/toolchains/miri/lib/rustlib/src/rust/library/std/src/sys/pal/unix/mod.rs:57:5: 57:27
     = note: inside `std::rt::init` at /Users/runner/.rustup/toolchains/miri/lib/rustlib/src/rust/library/std/src/rt.rs:102:9: 102:39
     = note: inside closure at /Users/runner/.rustup/toolchains/miri/lib/rustlib/src/rust/library/std/src/rt.rs:172:42: 172:67
     = note: inside `std::panicking::r#try::do_call::<{closure@std::rt::lang_start_internal::{closure#0}}, ()>` at /Users/runner/.rustup/toolchains/miri/lib/rustlib/src/rust/library/std/src/panicking.rs:557:40: 557:43
     = note: inside `std::panicking::r#try::<(), {closure@std::rt::lang_start_internal::{closure#0}}>` at /Users/runner/.rustup/toolchains/miri/lib/rustlib/src/rust/library/std/src/panicking.rs:520:19: 520:88
     = note: inside `std::panic::catch_unwind::<{closure@std::rt::lang_start_internal::{closure#0}}, ()>` at /Users/runner/.rustup/toolchains/miri/lib/rustlib/src/rust/library/std/src/panic.rs:358:14: 358:33
     = note: inside `std::rt::lang_start_internal` at /Users/runner/.rustup/toolchains/miri/lib/rustlib/src/rust/library/std/src/rt.rs:172:5: 172:70
     = note: inside `std::rt::lang_start::<()>` at /Users/runner/.rustup/toolchains/miri/lib/rustlib/src/rust/library/std/src/rt.rs:194:17: 199:6

Cc @devnexen

devnexen commented 8 hours ago

Ok will have a look.