diff options
| author | Amlal <amlal@nekernel.org> | 2025-08-12 15:32:30 +0200 |
|---|---|---|
| committer | Amlal <amlal@nekernel.org> | 2025-08-12 15:32:30 +0200 |
| commit | 2a36b103240c5724d2a4a8dc4820d2ceea72e56b (patch) | |
| tree | edfc68b07632aad5e8822db0be25203ae66bad29 | |
| parent | a2d091a55cdc465a4f90181f2b404bdd062dbad6 (diff) | |
feat: ld64: Fix linker issues with start symbol fetch.
feat: tests: add linker test.
Signed-off-by: Amlal <amlal@nekernel.org>
| -rw-r--r-- | dev/CompilerKit/src/Linker/DynamicLinker64PEF.cc | 4 | ||||
| -rw-r--r-- | tests/test_02_linker/linker_test.cc | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/dev/CompilerKit/src/Linker/DynamicLinker64PEF.cc b/dev/CompilerKit/src/Linker/DynamicLinker64PEF.cc index 917b592..946a3c7 100644 --- a/dev/CompilerKit/src/Linker/DynamicLinker64PEF.cc +++ b/dev/CompilerKit/src/Linker/DynamicLinker64PEF.cc @@ -113,10 +113,10 @@ NECTI_MODULE(DynamicLinker64PEF) { continue; } else if (std::strcmp(argv[linker_arg], "-start") == 0) { - if (argv[linker_arg + 1] == nullptr || argv[linker_arg][0] == '-') continue; + if (argv[linker_arg + 1] == nullptr || argv[linker_arg + 1][0] == '-') continue; kLinkerStart = argv[linker_arg + 1]; - linker_arg += 2; + linker_arg += 1; continue; } else if (std::strcmp(argv[linker_arg], "-32k") == 0) { diff --git a/tests/test_02_linker/linker_test.cc b/tests/test_02_linker/linker_test.cc index 88d51de..7f220f7 100644 --- a/tests/test_02_linker/linker_test.cc +++ b/tests/test_02_linker/linker_test.cc @@ -19,6 +19,6 @@ TEST(LinkerTest, BasicLinkTest) expr = std::system("asm -asm:x64 sample/sample.cc.pp.masm"); EXPECT_TRUE(expr == 0) << "Assembler did not assemble the easy asm unit."; - expr = std::system("ld64 -fat-binary sample/sample.cc.pp.obj -start __NECTI_main -output main.exec"); + expr = std::system("ld64 -amd64 sample/sample.cc.pp.obj -start __NECTI_main -output main.exec"); EXPECT_TRUE(expr == 0) << "Linker did not link the easy object."; } |
