#include <cstdlib> #include <cstdint> #include <cxxabi.h> namespace __cxxabiv1 { // 3.2.6 Pure Virtual Function API extern "C" void __cxa_pure_virtual () { while(true); } // 3.2.7 Deleted Virtual Function API extern "C" void __cxa_deleted_virtual () { while(true); } // 3.3.2 One-time Construction API // NOTE: Implementation does not support threads; no locking involved extern "C" int __cxa_guard_acquire(__guard *_guard) { uint8_t *guard = reinterpret_cast<uint8_t*>(_guard); return guard[0] ? 0 : 1; } extern "C" void __cxa_guard_release(__guard *_guard) { uint8_t *guard = reinterpret_cast<uint8_t*>(_guard); guard[0] = 1; } extern "C" void __cxa_guard_abort(__guard *_guard) { uint8_t *guard = reinterpret_cast<uint8_t*>(_guard); guard[0] = 0; } } // namespace __cxxabiv1