mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-02 03:58:11 +00:00
minor fixes for gathering library members
This commit is contained in:
+1
-1
@@ -973,7 +973,7 @@ lnk_queue_lib_member_input(Arena *arena,
|
|||||||
// lookup member in the lib where pull-in reference is declared
|
// lookup member in the lib where pull-in reference is declared
|
||||||
LNK_Symbol *best_match = member_symbol;
|
LNK_Symbol *best_match = member_symbol;
|
||||||
for (LNK_Symbol *s = member_symbol; s != 0; s = s->u.member.next) {
|
for (LNK_Symbol *s = member_symbol; s != 0; s = s->u.member.next) {
|
||||||
if (s->u.member.v.lib == pull_in_ref->u.member.v.lib) {
|
if (s->u.member.v.lib == pull_in_ref->u.defined.obj->lib) {
|
||||||
best_match = s;
|
best_match = s;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -316,7 +316,6 @@ lnk_can_replace_symbol(LNK_SymbolScope scope, LNK_Symbol *dst, LNK_Symbol *src)
|
|||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
case LNK_SymbolScope_Lib: {
|
case LNK_SymbolScope_Lib: {
|
||||||
// link.exe picks symbol from lib that is discovered first
|
|
||||||
can_replace = lnk_symbol_lib_is_before(src, dst);
|
can_replace = lnk_symbol_lib_is_before(src, dst);
|
||||||
} break;
|
} break;
|
||||||
default: { InvalidPath; }
|
default: { InvalidPath; }
|
||||||
@@ -345,7 +344,7 @@ lnk_on_symbol_replace(LNK_SymbolScope scope, LNK_Symbol *dst, LNK_Symbol *src)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// make sure leader section is not removed from the output
|
// assert leader section is live
|
||||||
#if BUILD_DEBUG
|
#if BUILD_DEBUG
|
||||||
{
|
{
|
||||||
COFF_ParsedSymbol src_parsed = lnk_parsed_symbol_from_coff_symbol_idx(src->u.defined.obj, src->u.defined.symbol_idx);
|
COFF_ParsedSymbol src_parsed = lnk_parsed_symbol_from_coff_symbol_idx(src->u.defined.obj, src->u.defined.symbol_idx);
|
||||||
@@ -358,7 +357,9 @@ lnk_on_symbol_replace(LNK_SymbolScope scope, LNK_Symbol *dst, LNK_Symbol *src)
|
|||||||
#endif
|
#endif
|
||||||
} break;
|
} break;
|
||||||
case LNK_SymbolScope_Lib: {
|
case LNK_SymbolScope_Lib: {
|
||||||
// nothing to replace
|
LNK_Symbol *last;
|
||||||
|
for (last = src; last->u.member.next != 0; last = last->u.member.next);
|
||||||
|
last->u.member.next = dst;
|
||||||
} break;
|
} break;
|
||||||
default: { InvalidPath; }
|
default: { InvalidPath; }
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user