mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-05 15:15:42 +00:00
ld,dlltool: move read-only delayimp data into .rdata
This allows the delay IAT to be in its own section with nothing else, as required by IMAGE_GUARD_DELAYLOAD_IAT_IN_ITS_OWN_SECTION, documented at https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#load-configuration-layout Signed-off-by: Jeremy Drake <sourceware-bugzilla@jdrake.com>
This commit is contained in:
committed by
Jan Beulich
parent
3cad19db4e
commit
b2c87b521b
@@ -2798,7 +2798,7 @@ make_delay_head (void)
|
|||||||
|
|
||||||
/* Output the delay import descriptor */
|
/* Output the delay import descriptor */
|
||||||
fprintf (f, "\n%s DELAY_IMPORT_DESCRIPTOR\n", ASM_C);
|
fprintf (f, "\n%s DELAY_IMPORT_DESCRIPTOR\n", ASM_C);
|
||||||
fprintf (f, ".section\t.text$2\n");
|
fprintf (f, ".section\t.didat$2\n");
|
||||||
fprintf (f, "%s __DELAY_IMPORT_DESCRIPTOR_%s\n", ASM_GLOBAL,imp_name_lab);
|
fprintf (f, "%s __DELAY_IMPORT_DESCRIPTOR_%s\n", ASM_GLOBAL,imp_name_lab);
|
||||||
fprintf (f, "__DELAY_IMPORT_DESCRIPTOR_%s:\n", imp_name_lab);
|
fprintf (f, "__DELAY_IMPORT_DESCRIPTOR_%s:\n", imp_name_lab);
|
||||||
fprintf (f, "\t%s 1\t%s grAttrs\n", ASM_LONG, ASM_C);
|
fprintf (f, "\t%s 1\t%s grAttrs\n", ASM_LONG, ASM_C);
|
||||||
@@ -2841,12 +2841,9 @@ make_delay_head (void)
|
|||||||
fprintf (f, "\t%s\t0\n", ASM_LONG);
|
fprintf (f, "\t%s\t0\n", ASM_LONG);
|
||||||
if (create_for_pep)
|
if (create_for_pep)
|
||||||
fprintf (f, "\t%s\t0\n", ASM_LONG);
|
fprintf (f, "\t%s\t0\n", ASM_LONG);
|
||||||
fprintf (f, "\t.section\t.didat$4\n");
|
|
||||||
fprintf (f, "__INT_%s:\n", imp_name_lab);
|
fprintf (f, "__INT_%s:\n", imp_name_lab);
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf (f, "\t.section\t.didat$2\n");
|
|
||||||
|
|
||||||
fclose (f);
|
fclose (f);
|
||||||
|
|
||||||
assemble_file (TMP_HEAD_S, TMP_HEAD_O);
|
assemble_file (TMP_HEAD_S, TMP_HEAD_O);
|
||||||
|
|||||||
@@ -146,6 +146,11 @@ SECTIONS
|
|||||||
${RELOCATING+__rt_psrelocs_start = .;}
|
${RELOCATING+__rt_psrelocs_start = .;}
|
||||||
${RELOCATING+KEEP(*(.rdata_runtime_pseudo_reloc))}
|
${RELOCATING+KEEP(*(.rdata_runtime_pseudo_reloc))}
|
||||||
${RELOCATING+__rt_psrelocs_end = .;}
|
${RELOCATING+__rt_psrelocs_end = .;}
|
||||||
|
/* read-only parts of .didat */
|
||||||
|
/* This cannot currently be handled with grouped sections.
|
||||||
|
See pe.em:sort_sections. */
|
||||||
|
${R_DIDAT234}
|
||||||
|
${R_DIDAT67}
|
||||||
|
|
||||||
/* .ctors & .dtors */
|
/* .ctors & .dtors */
|
||||||
${CONSTRUCTING+
|
${CONSTRUCTING+
|
||||||
@@ -263,9 +268,7 @@ SECTIONS
|
|||||||
{
|
{
|
||||||
/* This cannot currently be handled with grouped sections.
|
/* This cannot currently be handled with grouped sections.
|
||||||
See pe.em:sort_sections. */
|
See pe.em:sort_sections. */
|
||||||
${R_DIDAT234}
|
|
||||||
${R_DIDAT5}
|
${R_DIDAT5}
|
||||||
${R_DIDAT67}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Windows TLS expects .tls\$AAA to be at the start and .tls\$ZZZ to be
|
/* Windows TLS expects .tls\$AAA to be at the start and .tls\$ZZZ to be
|
||||||
|
|||||||
@@ -148,6 +148,12 @@ SECTIONS
|
|||||||
${RELOCATING+__rt_psrelocs_start = .;}
|
${RELOCATING+__rt_psrelocs_start = .;}
|
||||||
${RELOCATING+KEEP(*(.rdata_runtime_pseudo_reloc))}
|
${RELOCATING+KEEP(*(.rdata_runtime_pseudo_reloc))}
|
||||||
${RELOCATING+__rt_psrelocs_end = .;}
|
${RELOCATING+__rt_psrelocs_end = .;}
|
||||||
|
/* read-only parts of .didat */
|
||||||
|
/* This cannot currently be handled with grouped sections.
|
||||||
|
See pe.em:sort_sections. */
|
||||||
|
${RELOCATING+. = ALIGN(8);}
|
||||||
|
${R_DIDAT234}
|
||||||
|
${R_DIDAT67}
|
||||||
|
|
||||||
/* .ctors & .dtors */
|
/* .ctors & .dtors */
|
||||||
${CONSTRUCTING+. = ALIGN(8);}
|
${CONSTRUCTING+. = ALIGN(8);}
|
||||||
@@ -271,9 +277,7 @@ SECTIONS
|
|||||||
{
|
{
|
||||||
/* This cannot currently be handled with grouped sections.
|
/* This cannot currently be handled with grouped sections.
|
||||||
See pep.em:sort_sections. */
|
See pep.em:sort_sections. */
|
||||||
${R_DIDAT234}
|
|
||||||
${R_DIDAT5}
|
${R_DIDAT5}
|
||||||
${R_DIDAT67}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Windows TLS expects .tls\$AAA to be at the start and .tls\$ZZZ to be
|
/* Windows TLS expects .tls\$AAA to be at the start and .tls\$ZZZ to be
|
||||||
|
|||||||
Reference in New Issue
Block a user