From 72db767f5a5bdb958bb11bcb6fe6b9b332a2b195 Mon Sep 17 00:00:00 2001 From: spicyjpeg <88942473+spicyjpeg@users.noreply.github.com> Date: Sun, 20 Feb 2022 12:31:31 +0100 Subject: Rewrite assert() and DL_CALL(), update mkpsxiso --- libpsn00b/libc/abort.c | 14 ++++++++++---- libpsn00b/libc/c++-support.cxx | 22 +++++++++++----------- 2 files changed, 21 insertions(+), 15 deletions(-) (limited to 'libpsn00b/libc') diff --git a/libpsn00b/libc/abort.c b/libpsn00b/libc/abort.c index ca5ab1d..1d07037 100644 --- a/libpsn00b/libc/abort.c +++ b/libpsn00b/libc/abort.c @@ -1,9 +1,15 @@ #include void abort() { - printf("abort()\n"); - - while(1); -} \ No newline at end of file + for (;;) + __asm__ volatile(""); +} + +void _assert_abort(const char *file, int line, const char *expr) { + printf("%s:%d: assert(%s)\n", file, line, expr); + + for (;;) + __asm__ volatile(""); +} diff --git a/libpsn00b/libc/c++-support.cxx b/libpsn00b/libc/c++-support.cxx index d169fdb..d0c0f3a 100644 --- a/libpsn00b/libc/c++-support.cxx +++ b/libpsn00b/libc/c++-support.cxx @@ -1,28 +1,28 @@ -#include #include #include +#include -extern "C" +extern "C" void __cxa_pure_virtual(void) { + printf("__cxa_pure_virtual()\n"); -void __cxa_pure_virtual(void) { - /* Pure C++ virtual call; abort! */ - assert(false); + for (;;) + __asm__ volatile(""); } void* operator new(size_t size) { - return malloc(size); + return malloc(size); } void* operator new[](size_t size) { - return malloc(size); + return malloc(size); } void operator delete(void* ptr) { - free(ptr); + free(ptr); } void operator delete[](void* ptr) { - free(ptr); + free(ptr); } /*- @@ -35,5 +35,5 @@ void operator delete[](void* ptr) { * * A memory allocator can use the given size to be more efficient */ void operator delete(void* ptr, unsigned int) { - free(ptr); -} \ No newline at end of file + free(ptr); +} -- cgit v1.2.3