diff --git a/src/asm/output.c b/src/asm/output.c index 89cef353..3ba24671 100644 --- a/src/asm/output.c +++ b/src/asm/output.c @@ -469,10 +469,12 @@ static void writeFileStackNode(struct FileStackNode const *node, FILE *f) } } -static void registerExportedSymbol(struct Symbol *symbol, void *arg) +static void registerUnregisteredSymbol(struct Symbol *symbol, void *arg) { - (void)arg; - if (sym_IsExported(symbol) && symbol->ID == -1) { + (void)arg; // sym_ForEach requires a void* parameter, but we are not using it. + + // Check for symbol->src, to skip any auto generated symbol from rgbasm + if (symbol->src && symbol->ID == -1) { registerSymbol(symbol); } } @@ -491,8 +493,8 @@ void out_WriteObject(void) if (!f) err(1, "Couldn't write file '%s'", tzObjectname); - /* Also write exported symbols that weren't written above */ - sym_ForEach(registerExportedSymbol, NULL); + /* Also write symbols that weren't written above */ + sym_ForEach(registerUnregisteredSymbol, NULL); fprintf(f, RGBDS_OBJECT_VERSION_STRING, RGBDS_OBJECT_VERSION_NUMBER); putlong(RGBDS_OBJECT_REV, f);