Remove detailed abort, too many compatibility issues
This commit is contained in:
@@ -1,12 +1,6 @@
|
||||
#ifndef _BITS_STDLIB_H
|
||||
#define _BITS_STDLIB_H
|
||||
|
||||
// C++ needs abort to be a function, and cannot use this
|
||||
#ifndef __cplusplus
|
||||
// Override abort function with detailed abort in C
|
||||
#define abort() __abort(__func__, __FILE__, __LINE__)
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
+2
-4
@@ -2,11 +2,9 @@
|
||||
|
||||
uintptr_t __stack_chk_guard = 0xd048c37519fcadfe;
|
||||
|
||||
// manually define detailed abort function
|
||||
void __abort(const char *func, const char *file, int line) __attribute__((noreturn));
|
||||
void abort(void) __attribute__((noreturn));
|
||||
|
||||
__attribute__((noreturn))
|
||||
void __stack_chk_fail(void) {
|
||||
// call detailed abort function
|
||||
__abort(__func__, __FILE__, __LINE__);
|
||||
abort();
|
||||
}
|
||||
|
||||
@@ -91,27 +91,7 @@ pub unsafe extern "C" fn a64l(s: *const c_char) -> c_long {
|
||||
|
||||
#[no_mangle]
|
||||
pub unsafe extern "C" fn abort() -> ! {
|
||||
eprintln!("Legacy Abort");
|
||||
|
||||
intrinsics::abort();
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub unsafe extern "C" fn __abort(
|
||||
func: *const c_char,
|
||||
file: *const c_char,
|
||||
line: c_int,
|
||||
) -> ! {
|
||||
let func = CStr::from_ptr(func).to_str().unwrap();
|
||||
let file = CStr::from_ptr(file).to_str().unwrap();
|
||||
|
||||
eprintln!(
|
||||
"{}: {}:{}: Abort",
|
||||
func,
|
||||
file,
|
||||
line
|
||||
);
|
||||
|
||||
eprintln!("Abort");
|
||||
intrinsics::abort();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user