summaryrefslogtreecommitdiff
path: root/na/lib/cxx_abi.cc
diff options
context:
space:
mode:
Diffstat (limited to 'na/lib/cxx_abi.cc')
-rw-r--r--na/lib/cxx_abi.cc37
1 files changed, 0 insertions, 37 deletions
diff --git a/na/lib/cxx_abi.cc b/na/lib/cxx_abi.cc
deleted file mode 100644
index 872b4a2..0000000
--- a/na/lib/cxx_abi.cc
+++ /dev/null
@@ -1,37 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-or-later */
-/* Copyright (C) 2026 Richard Qin */
-
-/*
- * cxx_abi.cc — Minimal C++ ABI stubs for freestanding kernel
- *
- * Provides symbols that the compiler/linker expects from the C++
- * runtime library. All error paths are fatal (kernel_panic).
- *
- * Reference: docs/specs/cpp_runtime.md
- */
-
-#include <lume/klog.h>
-
-/* Pure virtual function call trap.
- * Generated by the compiler in vtable entries for pure virtual methods.
- * Reaching this means a derived class failed to implement a pure virtual. */
-extern "C" void __cxa_pure_virtual()
-{
- kernel_panic("pure virtual function call");
-}
-
-/* Global destructor registration.
- * The kernel does not support global object destruction — all global
- * objects use Placement New with explicit lifetime management.
- * If the compiler emits a call to this, it indicates a code violation. */
-extern "C" int __cxa_atexit(void (*)(void*), void*, void*)
-{
- kernel_panic("__cxa_atexit called in kernel");
- return 0; // unreachable
-}
-
-/* DSO handle — required by __cxa_atexit ABI.
- * The kernel is statically linked; this symbol just needs to exist. */
-extern "C" {
-void* __dso_handle __attribute__((visibility("hidden"))) = nullptr;
-}