From 323028d9f229a413579bb6ee2c57b2fe5afea6f0 Mon Sep 17 00:00:00 2001 From: Sylvie <35663410+Rangi42@users.noreply.github.com> Date: Fri, 6 Sep 2024 21:31:13 -0400 Subject: [PATCH] RGBLINK lists local symbols when encountering an unknown symbol reference (#1496) --- include/link/symbol.hpp | 2 ++ src/link/object.cpp | 3 +- src/link/patch.cpp | 1 + src/link/sdas_obj.cpp | 1 + src/link/symbol.cpp | 35 +++++++++++++++++++++++ test/link/symbols/{ => good}/a.asm | 0 test/link/symbols/{ => good}/b.asm | 0 test/link/symbols/{ => good}/out.err | 0 test/link/symbols/{ => good}/ref.out.bin | Bin test/link/symbols/{ => good}/ref.out.sym | 0 test/link/symbols/unknown/a.asm | 2 ++ test/link/symbols/unknown/b.asm | 2 ++ test/link/symbols/unknown/c.asm | 1 + test/link/symbols/unknown/d.asm | 1 + test/link/symbols/unknown/e.asm | 2 ++ test/link/symbols/unknown/out.err | 6 ++++ test/link/test.sh | 17 +++++++++-- 17 files changed, 69 insertions(+), 4 deletions(-) rename test/link/symbols/{ => good}/a.asm (100%) rename test/link/symbols/{ => good}/b.asm (100%) rename test/link/symbols/{ => good}/out.err (100%) rename test/link/symbols/{ => good}/ref.out.bin (100%) rename test/link/symbols/{ => good}/ref.out.sym (100%) create mode 100644 test/link/symbols/unknown/a.asm create mode 100644 test/link/symbols/unknown/b.asm create mode 100644 test/link/symbols/unknown/c.asm create mode 100644 test/link/symbols/unknown/d.asm create mode 100644 test/link/symbols/unknown/e.asm create mode 100644 test/link/symbols/unknown/out.err diff --git a/include/link/symbol.hpp b/include/link/symbol.hpp index 34a36bf1..daa5c0e8 100644 --- a/include/link/symbol.hpp +++ b/include/link/symbol.hpp @@ -49,4 +49,6 @@ void sym_AddSymbol(Symbol &symbol); */ Symbol *sym_GetSymbol(std::string const &name); +void sym_DumpLocalAliasedSymbols(std::string const &name); + #endif // RGBDS_LINK_SYMBOL_HPP diff --git a/src/link/object.cpp b/src/link/object.cpp index 76ac310f..32ceb86d 100644 --- a/src/link/object.cpp +++ b/src/link/object.cpp @@ -564,8 +564,7 @@ void obj_ReadFile(char const *fileName, unsigned int fileID) { readSymbol(file, symbol, fileName, nodes[fileID]); - if (symbol.type == SYMTYPE_EXPORT) - sym_AddSymbol(symbol); + sym_AddSymbol(symbol); if (symbol.data.holds