diff options
author | Samuel Johnson <[email protected]> | 2025-06-27 17:46:28 -0400 |
---|---|---|
committer | Samuel Johnson <[email protected]> | 2025-06-27 17:46:28 -0400 |
commit | 12fd3a91f138bf90520134682e38bf3b0341e660 (patch) | |
tree | 66b3f4a19f50a0f9883ca3f5a286a1e8dc3bc8c6 /kernel/cxx | |
parent | 6e65e584a3baf2dfe8906c2d847ca5169b91b3fc (diff) |
Create kernel build infrastructure
Diffstat (limited to 'kernel/cxx')
-rw-r--r-- | kernel/cxx/constructors.cxx | 18 | ||||
-rw-r--r-- | kernel/cxx/gcc_required_functions.cxx | 1 | ||||
-rw-r--r-- | kernel/cxx/icxxabi.cxx | 0 | ||||
-rw-r--r-- | kernel/cxx/icxxabi.h | 0 |
4 files changed, 19 insertions, 0 deletions
diff --git a/kernel/cxx/constructors.cxx b/kernel/cxx/constructors.cxx new file mode 100644 index 0000000..8c21453 --- /dev/null +++ b/kernel/cxx/constructors.cxx @@ -0,0 +1,18 @@ +extern void (*_ctors_start[0])(void), (*_ctors_end[0])(void); +extern void (*_dtors_start[0])(void), (*_dtors_end[0])(void); + +void init (void) +{ + for (void (**ctor)(void) = _ctors_start; ctor != _ctors_end; ctor++) + { + (*ctor)(); + } +} + +void fini (void) +{ + for (void (**dtor)(void) = _dtors_start; dtor != _dtors_end; dtor++) + { + (*dtor)(); + } +} diff --git a/kernel/cxx/gcc_required_functions.cxx b/kernel/cxx/gcc_required_functions.cxx new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/kernel/cxx/gcc_required_functions.cxx @@ -0,0 +1 @@ + diff --git a/kernel/cxx/icxxabi.cxx b/kernel/cxx/icxxabi.cxx new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/kernel/cxx/icxxabi.cxx diff --git a/kernel/cxx/icxxabi.h b/kernel/cxx/icxxabi.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/kernel/cxx/icxxabi.h |