move lib member queue state to the link step and release it after link step is done

This commit is contained in:
Nikita Smith
2026-01-20 15:27:31 -08:00
parent d1b055c62f
commit 1c0e9030fa
5 changed files with 107 additions and 77 deletions
-12
View File
@@ -3,14 +3,6 @@
#pragma once
typedef U8 LNK_LibMemberFlags;
enum
{
LNK_LibMemberFlag_LinkedRegular = (1 << 0),
LNK_LibMemberFlag_LinkedImp = (1 << 1),
LNK_LibMemberFlag_WasQueued = (1 << 2),
};
typedef struct LNK_Lib
{
String8 path;
@@ -20,8 +12,6 @@ typedef struct LNK_Lib
U32 symbol_count;
U32 *member_offsets;
U16 *symbol_indices;
LNK_Symbol **member_links;
LNK_LibMemberFlags *member_flags;
String8Array symbol_names;
String8 long_names;
U64 input_idx;
@@ -76,7 +66,5 @@ internal LNK_Lib ** lnk_array_from_lib_list(Arena *arena, LNK_LibList list
internal void lnk_lib_list_push_node(LNK_LibList *list, LNK_LibNode *node);
internal LNK_LibNodeArray lnk_lib_list_push_parallel(TP_Context *tp, TP_Arena *arena, LNK_LibList *list, U64 inputs_count, struct LNK_Input **inputs);
internal B32 lnk_lib_set_link_symbol(LNK_Lib *lib, U32 member_idx, LNK_Symbol *link_symbol);
internal B32 lnk_search_lib(LNK_Lib *lib, String8 symbol_name, U32 *member_idx_out);