[OBJ2BIN] Use section flags instead of a hardcoded ".text" name (#5317)

A 32-bit ASM file can turn into an empty binary file in certain cases (compiled with MSVC).
MASM/ML produces a ".text$mn" section instead of the ".text", which makes obj2bin generate an empty binary file.

The problem didn't occur with our 16-bit artifacts (16-bit stubs, bootsectors...), because their object files all have similar sections pattern: the ".text" section and empty ".text$mn" section, which didn't matter since it is empty.
On the contrary, the .text$mn section(s) aren't empty for 32-bit stubs.
This commit is contained in:
Dmitry Borisov
2026-03-16 13:19:54 +01:00
committed by GitHub
parent 057d978fcb
commit 73413d4ca3
+3 -2
View File
@@ -140,8 +140,9 @@ int main(int argc, char *argv[])
/* Loop all sections */
for (i = 0; i < pFileHeader->NumberOfSections; i++)
{
/* Check if this is '.text' section */
if ((strcmp((char*)pSectionHeader->Name, ".text") == 0) &&
/* Check if this is a section with executable code */
if (((pSectionHeader->Characteristics & (IMAGE_SCN_CNT_CODE | IMAGE_SCN_MEM_EXECUTE)) ==
(IMAGE_SCN_CNT_CODE | IMAGE_SCN_MEM_EXECUTE)) &&
(pSectionHeader->SizeOfRawData != 0))
{
if (!RelocateSection(pData,