gas: Restore tc_pe_dwarf2_emit_offset for pe-aarch64

Restores tc_pe_dwarf2_emit_offset in tc-aarch64.c, which is needed to
make sure that DWARF offsets are encoded correctly (they're secrels in
COFF). There were remnants of this there before, but they were removed
by Jedidiah's original patch - presumably because we didn't yet have
.secrel32.
This commit is contained in:
Mark Harmstone 2022-12-27 22:16:04 +00:00
parent 16fea92ccd
commit 7697bc6523
2 changed files with 16 additions and 0 deletions

View file

@ -2116,6 +2116,17 @@ s_secrel (int dummy ATTRIBUTE_UNUSED)
input_line_pointer--;
demand_empty_rest_of_line ();
}
void
tc_pe_dwarf2_emit_offset (symbolS *symbol, unsigned int size)
{
expressionS exp;
exp.X_op = O_secrel;
exp.X_add_symbol = symbol;
exp.X_add_number = 0;
emit_expr (&exp, size);
}
#endif /* TE_PE */
static void s_aarch64_arch (int);

View file

@ -315,7 +315,12 @@ extern int tc_aarch64_regname_to_dw2regnum (char *regname);
extern void tc_aarch64_frame_initial_instructions (void);
#ifdef TE_PE
#define O_secrel O_md1
#define TC_DWARF2_EMIT_OFFSET tc_pe_dwarf2_emit_offset
void tc_pe_dwarf2_emit_offset (symbolS *, unsigned int);
#endif /* TE_PE */
#endif /* TC_AARCH64 */