summaryrefslogtreecommitdiffhomepage
path: root/dev/LibC++
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-07-10 10:26:26 +0200
committerAmlal El Mahrouss <amlal@nekernel.org>2025-07-10 10:26:26 +0200
commit1b49fe9e53f66ef3e9c74d78d6753a025e00e6f0 (patch)
tree46904451f2655acdf13f7b2ae4e014a7914f9a38 /dev/LibC++
parentcdb915bb1868cb7e52600d77afceaf84403ede5f (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.h1
-rw-r--r--dev/LibC++/base_process.h8
-rw-r--r--dev/LibC++/defines.h8
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;