diff options
| author | Amlal EL Mahrouss <amlalelmahrouss@icloud.com> | 2024-08-12 09:42:36 +0200 |
|---|---|---|
| committer | Amlal EL Mahrouss <amlalelmahrouss@icloud.com> | 2024-08-12 09:42:36 +0200 |
| commit | 016b117159eafa0d90b43e5757617ac4147b45db (patch) | |
| tree | 399317579050a6681952e42ec7268f6085b9939c | |
| parent | 418f8c29bc3594eedd7e15aa22ebd8da1103a45c (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.hxx | 6 | ||||
| -rw-r--r-- | Tools/Linker.cxx | 6 | ||||
| -rw-r--r-- | Tools/link.json | 10 |
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 |
