mirror of
https://github.com/netwide-assembler/nasm.git
synced 2025-10-10 00:25:06 -04:00
elf: change form for DW_AT_frame_base to DW_form_exprloc
data4 was not spec-compliant here, causing some tools reading DWARF debug info to complain. Thanks to Nikita Smith for debugging this! Signed-off-by: Fabian Giesen <fabian.giesen@epicgames.com>
This commit is contained in:
committed by
H. Peter Anvin
parent
1d72743d6b
commit
9e03a95922
@@ -3268,7 +3268,7 @@ static void dwarf_generate(void)
|
||||
saa_write32(pinforel, pinfo->datalen + 4);
|
||||
saa_write32(pinforel, ((dwarf_fsect->section + 2) << 8) + R_386_32);
|
||||
saa_write32(pinfo,0); /* DW_AT_low_pc */
|
||||
saa_write32(pinfo,0); /* DW_AT_frame_base */
|
||||
saa_write8(pinfo,0); /* DW_AT_frame_base */
|
||||
saa_write8(pinfo,0); /* end of entries */
|
||||
saalen = pinfo->datalen;
|
||||
infolen = saalen + 4;
|
||||
@@ -3308,7 +3308,7 @@ static void dwarf_generate(void)
|
||||
saa_write32(pinforel, ((dwarf_fsect->section + 2) << 8) + R_X86_64_32);
|
||||
saa_write32(pinforel, 0);
|
||||
saa_write32(pinfo,0); /* DW_AT_low_pc */
|
||||
saa_write32(pinfo,0); /* DW_AT_frame_base */
|
||||
saa_write8(pinfo,0); /* DW_AT_frame_base */
|
||||
saa_write8(pinfo,0); /* end of entries */
|
||||
saalen = pinfo->datalen;
|
||||
infolen = saalen + 4;
|
||||
@@ -3349,7 +3349,7 @@ static void dwarf_generate(void)
|
||||
saa_write64(pinforel, ((uint64_t)(dwarf_fsect->section + 2) << 32) + R_X86_64_64);
|
||||
saa_write64(pinforel, 0);
|
||||
saa_write64(pinfo,0); /* DW_AT_low_pc */
|
||||
saa_write64(pinfo,0); /* DW_AT_frame_base */
|
||||
saa_write8(pinfo,0); /* DW_AT_frame_base */
|
||||
saa_write8(pinfo,0); /* end of entries */
|
||||
saalen = pinfo->datalen;
|
||||
infolen = saalen + 4;
|
||||
@@ -3393,7 +3393,7 @@ static void dwarf_generate(void)
|
||||
saa_write8(pabbrev,DW_AT_low_pc);
|
||||
saa_write8(pabbrev,DW_FORM_addr);
|
||||
saa_write8(pabbrev,DW_AT_frame_base);
|
||||
saa_write8(pabbrev,DW_FORM_data4);
|
||||
saa_write8(pabbrev,DW_FORM_exprloc);
|
||||
saa_write16(pabbrev,0); /* end of entry */
|
||||
/* Terminal zero entry */
|
||||
saa_write8(pabbrev,0);
|
||||
|
Reference in New Issue
Block a user