abort: fix unsafe-op-in-unsafe-fn, signal path, unused imports
- abort() body: use signal::sys::SIGABRT (the platform-independent name
the signal module uses for both linux and redox submodules)
- call sites: wrap abort() in unsafe { } blocks (Rust 2024 edition's
unsafe_op_in_unsafe_fn lint makes this mandatory inside unsafe fns)
- stdlib/mod.rs, start.rs: drop now-unused 'intrinsics' import
This commit is contained in:
@@ -20,5 +20,5 @@ pub unsafe extern "C" fn __assert_fail(
|
||||
|
||||
eprintln!("{}: {}:{}: Assertion `{}` failed.", func, file, line, cond);
|
||||
|
||||
crate::header::stdlib::abort();
|
||||
unsafe { crate::header::stdlib::abort() };
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
//!
|
||||
//! See <https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/stdlib.h.html>.
|
||||
|
||||
use core::{convert::TryFrom, intrinsics, iter, mem, ptr, slice};
|
||||
use core::{convert::TryFrom, iter, mem, ptr, slice};
|
||||
use rand::{
|
||||
RngExt, SeedableRng,
|
||||
distr::{Alphanumeric, Distribution, Uniform},
|
||||
@@ -117,8 +117,8 @@ pub unsafe extern "C" fn a64l(s: *const c_char) -> c_long {
|
||||
#[unsafe(no_mangle)]
|
||||
pub unsafe extern "C" fn abort() -> ! {
|
||||
log::error!("Abort");
|
||||
crate::header::signal::raise(crate::header::signal::redox::SIGABRT as c_int);
|
||||
_Exit(128 + crate::header::signal::redox::SIGABRT as c_int);
|
||||
crate::header::signal::raise(crate::header::signal::sys::SIGABRT as c_int);
|
||||
_Exit(128 + crate::header::signal::sys::SIGABRT as c_int);
|
||||
}
|
||||
|
||||
#[cfg(not(target_pointer_width = "64"))]
|
||||
|
||||
+3
-3
@@ -69,7 +69,7 @@ pub extern "C" fn relibc_panic(pi: &::core::panic::PanicInfo) -> ! {
|
||||
let mut w = platform::FileWriter::new(2);
|
||||
let _ = w.write_fmt(format_args!("RELIBC PANIC: {}\n", pi));
|
||||
|
||||
crate::header::stdlib::abort();
|
||||
unsafe { crate::header::stdlib::abort() };
|
||||
}
|
||||
|
||||
#[cfg(not(test))]
|
||||
@@ -100,7 +100,7 @@ pub extern "C" fn rust_oom(layout: ::core::alloc::Layout) -> ! {
|
||||
layout.align()
|
||||
));
|
||||
|
||||
crate::header::stdlib::abort();
|
||||
unsafe { crate::header::stdlib::abort() };
|
||||
}
|
||||
|
||||
#[cfg(not(test))]
|
||||
@@ -113,5 +113,5 @@ pub extern "C" fn _Unwind_Resume() -> ! {
|
||||
let mut w = platform::FileWriter::new(2);
|
||||
let _ = w.write_str("_Unwind_Resume\n");
|
||||
|
||||
crate::header::stdlib::abort();
|
||||
unsafe { crate::header::stdlib::abort() };
|
||||
}
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
//! Startup code.
|
||||
|
||||
use alloc::{boxed::Box, vec::Vec};
|
||||
use core::{intrinsics, ptr};
|
||||
use core::ptr;
|
||||
|
||||
#[cfg(target_os = "redox")]
|
||||
use generic_rt::ExpectTlsFree;
|
||||
@@ -78,7 +78,7 @@ unsafe fn copy_string_array(array: *const *const c_char, len: usize) -> Vec<*mut
|
||||
#[unsafe(no_mangle)]
|
||||
pub unsafe fn relibc_verify_host() {
|
||||
if !Sys::verify() {
|
||||
stdlib::abort();
|
||||
unsafe { stdlib::abort() };
|
||||
}
|
||||
}
|
||||
#[unsafe(link_section = ".init_array")]
|
||||
|
||||
Reference in New Issue
Block a user