Chip Davis : dbghelp: Look for .eh_fram if no .eh_frame is found.
Module: wine Branch: master Commit: 8000b5415d2c249176bda3d8b49f8fc9978e1623 URL: https://source.winehq.org/git/wine.git/?a=commit;h=8000b5415d2c249176bda3d8b... Author: Chip Davis <cdavis(a)codeweavers.com> Date: Sat Jan 11 15:06:58 2020 -0600 dbghelp: Look for .eh_fram if no .eh_frame is found. lld produces these, because '.eh_frame' misses the eight-character limit by one character, but '.eh_fram' does not. This allows it to avoid producing a string table for this common section. Signed-off-by: Chip Davis <cdavis(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/dbghelp/dwarf.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c index 26e2f42ba0..980e1d2178 100644 --- a/dlls/dbghelp/dwarf.c +++ b/dlls/dbghelp/dwarf.c @@ -3516,7 +3516,9 @@ BOOL dwarf2_parse(struct module* module, unsigned long load_offset, BOOL ret = TRUE; struct module_format* dwarf2_modfmt; - dwarf2_init_section(&eh_frame, fmap, ".eh_frame", NULL, &eh_frame_sect); + if (!dwarf2_init_section(&eh_frame, fmap, ".eh_frame", NULL, &eh_frame_sect)) + /* lld produces .eh_fram to avoid generating a long name */ + dwarf2_init_section(&eh_frame, fmap, ".eh_fram", NULL, &eh_frame_sect); dwarf2_init_section(§ion[section_debug], fmap, ".debug_info", ".zdebug_info", &debug_sect); dwarf2_init_section(§ion[section_abbrev], fmap, ".debug_abbrev", ".zdebug_abbrev", &debug_abbrev_sect); dwarf2_init_section(§ion[section_string], fmap, ".debug_str", ".zdebug_str", &debug_str_sect);
participants (1)
-
Alexandre Julliard