From a3582332ee84281d8235f3ce13e9fc691403658a Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Sun, 17 Aug 2025 16:10:13 -0700 Subject: [PATCH] push a null symbol as a terminator for /alternatename weak symbol chain --- src/linker/lnk.c | 5 ++++- src/linker/lnk.h | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index a2588938..c1b28c35 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -462,7 +462,10 @@ lnk_make_null_obj(Arena *arena) { COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0,COFF_MachineType_Unknown); - // make import stub + // push null symbol + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(LNK_NULL_SYMBOL), 0, COFF_SymStorageClass_External); + + // push import stub { COFF_ObjSymbol *tag = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("RAD_IMPORT_STUB_NULL"), 0, COFF_SymStorageClass_Static); coff_obj_writer_push_symbol_weak(obj_writer, str8_lit(LNK_IMPORT_STUB), COFF_WeakExt_AntiDependency, tag); diff --git a/src/linker/lnk.h b/src/linker/lnk.h index 2aa1dc61..20fc27be 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -6,6 +6,7 @@ // --- Link -------------------------------------------------------------------- #define LNK_IMPORT_STUB "*** RAD_IMPORT_STUB ***" +#define LNK_NULL_SYMBOL "*** RAD_NULL_SYMBOL ***" #define LNK_SECTION_FLAG_IS_LIVE (1 << 0) typedef struct LNK_LinkContext