mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-08 06:48:41 +00:00
do not emit relocation for empty resource entry
This commit is contained in:
+4
-2
@@ -672,8 +672,9 @@ lnk_serialize_pe_resource_tree(COFF_ObjWriter *obj_writer, PE_ResourceDir *root_
|
||||
COFF_ResourceDataEntry *coff_res = push_array(obj_writer->arena, COFF_ResourceDataEntry, 1);
|
||||
coff_res->data_size = res->u.coff_res.data.size;
|
||||
coff_res->data_voff = 0; // relocated
|
||||
coff_res->code_page = 0; // TODO: whats this for? (lld-link writes zero)
|
||||
coff_res->code_page = 0; // TODO: whats this for?
|
||||
|
||||
if (res->u.coff_res.data.size >= sizeof(U32)) {
|
||||
// emit symbol for resource data
|
||||
U32 resdat_off = safe_cast_u32(rsrc2->data.total_size);
|
||||
COFF_ObjSymbol *resdat = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("resdat"), resdat_off, rsrc2);
|
||||
@@ -681,7 +682,8 @@ lnk_serialize_pe_resource_tree(COFF_ObjWriter *obj_writer, PE_ResourceDir *root_
|
||||
// emit reloc for 'data_voff'
|
||||
U64 apply_off = rsrc1->data.total_size + OffsetOf(COFF_ResourceDataEntry, data_voff);
|
||||
U32 apply_off32 = safe_cast_u32(apply_off);
|
||||
coff_obj_writer_section_push_reloc(obj_writer, rsrc1, apply_off32, resdat, COFF_Reloc_X64_Addr32Nb);
|
||||
coff_obj_writer_section_push_reloc_voff(obj_writer, rsrc1, apply_off32, resdat);
|
||||
}
|
||||
|
||||
// push resource entry & data
|
||||
str8_list_push(obj_writer->arena, &rsrc1->data, str8_struct(coff_res));
|
||||
|
||||
Reference in New Issue
Block a user