From 0d4345a9bf2623df079c50a3bc73cbb7deca1176 Mon Sep 17 00:00:00 2001 From: "John Wilbert M. Villamor" Date: Wed, 17 Jul 2019 11:30:07 +0800 Subject: Added C++ support, updated build instructions and makefiles, consolidated libc and libgcc (during build process), libraries now v0.12b and more --- libpsn00b/libc/c++-support.cxx | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 libpsn00b/libc/c++-support.cxx (limited to 'libpsn00b/libc/c++-support.cxx') diff --git a/libpsn00b/libc/c++-support.cxx b/libpsn00b/libc/c++-support.cxx new file mode 100644 index 0000000..fcf7cfc --- /dev/null +++ b/libpsn00b/libc/c++-support.cxx @@ -0,0 +1,40 @@ +#include +#include +#include +#include + +extern "C" + +void __cxa_pure_virtual(void) { + /* Pure C++ virtual call; abort! */ + assert(false); +} + +void* operator new(size_t size) { + return malloc(size); +} + +void* operator new[](size_t size) { + return malloc(size); +} + +void operator delete(void* ptr) { + free(ptr); +} + +void operator delete[](void* ptr) { + free(ptr); +} + +/*- + * + * + * Called if a user-defined replacement is provided, except that it's + * unspecified whether other overloads or this overload is called when deleting + * objects of incomplete type and arrays of non-class and trivially-destructible + * class types. + * + * 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 -- cgit v1.2.3