summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAmlal EL Mahrouss <amlalelmahrouss@icloud.com>2024-08-12 09:42:36 +0200
committerAmlal EL Mahrouss <amlalelmahrouss@icloud.com>2024-08-12 09:42:36 +0200
commit016b117159eafa0d90b43e5757617ac4147b45db (patch)
tree399317579050a6681952e42ec7268f6085b9939c
parent418f8c29bc3594eedd7e15aa22ebd8da1103a45c (diff)
[IMP] SEE BELOW.
+ Add 'link.exe' program from ndk.dll for NewOS subsystem. + Add recipes for the linker. Signed-off-by: Amlal EL Mahrouss <amlalelmahrouss@icloud.com>
-rw-r--r--NDKKit/Defines.hxx6
-rw-r--r--Tools/Linker.cxx6
-rw-r--r--Tools/link.json10
3 files changed, 19 insertions, 3 deletions
diff --git a/NDKKit/Defines.hxx b/NDKKit/Defines.hxx
index aca92c6..10f61c7 100644
--- a/NDKKit/Defines.hxx
+++ b/NDKKit/Defines.hxx
@@ -84,14 +84,14 @@
namespace NDK
{
- inline constexpr int BASE_YEAR = 1900;
+ inline constexpr int cBaseYear = 1900;
inline std::string current_date() noexcept
{
auto time_data = time(nullptr);
auto time_struct = gmtime(&time_data);
- std::string fmt = std::to_string(BASE_YEAR + time_struct->tm_year);
+ std::string fmt = std::to_string(cBaseYear + time_struct->tm_year);
fmt += "-";
fmt += std::to_string(time_struct->tm_mon + 1);
fmt += "-";
@@ -136,7 +136,7 @@ typedef char char_type;
".64x", ".32x", ".masm", ".s", ".S", ".asm" \
}
-#define NDK_MODULE(name) int name(int argc, char** argv)
+#define NDK_MODULE(name) extern "C" int name(int argc, char** argv)
#pragma scalar_storage_order big-endian
diff --git a/Tools/Linker.cxx b/Tools/Linker.cxx
new file mode 100644
index 0000000..d7eb90c
--- /dev/null
+++ b/Tools/Linker.cxx
@@ -0,0 +1,6 @@
+extern "C" int NewOSLinker(int argc, char const* argv[]);
+
+int main(int argc, char const *argv[])
+{
+ return NewOSLinker(argc, argv);
+}
diff --git a/Tools/link.json b/Tools/link.json
new file mode 100644
index 0000000..98e55a7
--- /dev/null
+++ b/Tools/link.json
@@ -0,0 +1,10 @@
+{
+ "compiler_path": "x86_64-w64-mingw32-g++.exe",
+ "compiler_std": "c++20",
+ "headers_path": ["../NDKKit", "../", "../NDKKit/Sources/Detail"],
+ "sources_path": ["Linker.cxx"],
+ "output_name": "link.exe",
+ "compiler_flags": ["-L../", "-lndk", "-Wl,--subsystem=17"],
+ "cpp_macros": ["__LINK__=202401"]
+ }
+ \ No newline at end of file