# HG changeset patch # User lost # Date 1232172700 0 # Node ID ea2cfebef5d05e73e9c106024234f7b34150da56 # Parent 718998b673ee5aefb14228244ea518e25e612ac6 Make external symbols remain unresolved in expressions and also flag them in the symbol list diff -r 718998b673ee -r ea2cfebef5d0 src/lwasm.c --- a/src/lwasm.c Sat Jan 17 05:56:40 2009 +0000 +++ b/src/lwasm.c Sat Jan 17 06:11:40 2009 +0000 @@ -220,6 +220,11 @@ register_error(st -> as, st -> l, 2, "Undefined symbol '%s'", sym); return NULL; } + // external reference - can not resolve it + if (se -> flags & SYMBOL_EXTERN) + { + return NULL; + } if (st -> as -> outformat != OUTPUT_OBJ || se -> sect == NULL || se -> sect == st -> as -> csect) { // global symbol, intrasegment reference, or not an object target diff -r 718998b673ee -r ea2cfebef5d0 src/symbol.c --- a/src/symbol.c Sat Jan 17 05:56:40 2009 +0000 +++ b/src/symbol.c Sat Jan 17 06:11:40 2009 +0000 @@ -200,6 +200,8 @@ if (se -> flags & SYMBOL_SET) fputc('S', lf); + else if (se -> flags & SYMBOL_EXTERN) + fputc('E', lf); else fputc(' ', lf);