diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-07-10 10:26:26 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-07-10 10:26:26 +0200 |
| commit | 1b49fe9e53f66ef3e9c74d78d6753a025e00e6f0 (patch) | |
| tree | 46904451f2655acdf13f7b2ae4e014a7914f9a38 /dev/LibC++ | |
| parent | cdb915bb1868cb7e52600d77afceaf84403ede5f (diff) | |
feat! Debugger and LibC++ changes, adding LibStdC++ too
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/LibC++')
| -rw-r--r-- | dev/LibC++/__abi+unreachable.cc (renamed from dev/LibC++/lc_runtime+unreachable.cc) | 9 | ||||
| -rw-r--r-- | dev/LibC++/__abi.h (renamed from dev/LibC++/lc_runtime.h) | 4 | ||||
| -rw-r--r-- | dev/LibC++/__power64.inc (renamed from dev/LibC++/power64.inc) | 2 | ||||
| -rw-r--r-- | dev/LibC++/base_exception.h | 1 | ||||
| -rw-r--r-- | dev/LibC++/base_process.h | 8 | ||||
| -rw-r--r-- | dev/LibC++/defines.h | 8 |
6 files changed, 18 insertions, 14 deletions
diff --git a/dev/LibC++/lc_runtime+unreachable.cc b/dev/LibC++/__abi+unreachable.cc index 39115a1..da23d47 100644 --- a/dev/LibC++/lc_runtime+unreachable.cc +++ b/dev/LibC++/__abi+unreachable.cc @@ -4,9 +4,14 @@ \ ------------------------------------------- */ -#include <LibC++/lc_runtime.h> +#include <LibC++/__abi.h> +#include <LibC++/base_process.h> + +static const int32_t __unreachable_code = 34; extern "C" void __libcompiler_unreachable(void) { - while (true) + std::base_process::signal(__unreachable_code) + + while (1) ; }
\ No newline at end of file diff --git a/dev/LibC++/lc_runtime.h b/dev/LibC++/__abi.h index d3d331f..9079f5f 100644 --- a/dev/LibC++/lc_runtime.h +++ b/dev/LibC++/__abi.h @@ -6,8 +6,4 @@ #pragma once -#ifdef __LIBCOMPILER__ - extern "C" void __libcompiler_unreachable(void); - -#endif
\ No newline at end of file diff --git a/dev/LibC++/power64.inc b/dev/LibC++/__power64.inc index 79dc923..fbda659 100644 --- a/dev/LibC++/power64.inc +++ b/dev/LibC++/__power64.inc @@ -1,4 +1,4 @@ -# Path: LibC++/power.inc +# Path: LibC++/__power64.inc # Language: LibCompiler POWER Assembly support for GNU. # Build Date: 2024-6-4 diff --git a/dev/LibC++/base_exception.h b/dev/LibC++/base_exception.h index db4b863..9a599be 100644 --- a/dev/LibC++/base_exception.h +++ b/dev/LibC++/base_exception.h @@ -8,6 +8,7 @@ #include <LibC++/defines.h> #include <LibC++/base_process.h> +#include <LibC++/__abi.h> #include <iostream> /// @author Amlal El Mahrouss (amlal@nekernel.org) diff --git a/dev/LibC++/base_process.h b/dev/LibC++/base_process.h index febcb32..126ac60 100644 --- a/dev/LibC++/base_process.h +++ b/dev/LibC++/base_process.h @@ -6,13 +6,21 @@ #pragma once +#include <LibC++/defines.h> + /// @brief CRT exit, with exit code (!!! exits all threads. !!!) /// @param code the exit code. /// @return the return > 0 for non successful. extern "C" int exit_(int code); +extern "C" int signal_(int code); /// @brief Standard C++ namespace namespace std::base_process { +inline int signal(int code) { + signal_(code); + return -1; +} + inline int exit(int code) { exit_(code); return -1; diff --git a/dev/LibC++/defines.h b/dev/LibC++/defines.h index 84e437a..493ed0c 100644 --- a/dev/LibC++/defines.h +++ b/dev/LibC++/defines.h @@ -12,18 +12,12 @@ extern "C" { #include <stdint.h> } - #define __ATTRIBUTE(X) __attribute__((X)) #ifndef __GNUC__ typedef __SIZE_TYPE__ size_t; - -#ifdef __LP64__ -typedef long int ssize_t; -#else -typedef int ssize_t; -#endif // __LP64__ +typedef __SSIZE_TYPE__ ssize_t; typedef void* ptr_type; typedef __SIZE_TYPE__ size_type; |
