https://git.reactos.org/?p=reactos.git;a=commitdiff;h=d6dca1da171f0768ac8a05...
commit d6dca1da171f0768ac8a0530f9e9febc6f03008d Author: winesync ros-dev@reactos.org AuthorDate: Fri Sep 11 18:46:08 2020 +0200 Commit: Jérôme Gardou jerome.gardou@reactos.org CommitDate: Wed Sep 16 10:35:50 2020 +0200
[WINESYNC] dbghelp: Use DWARF registry mapping quirk only for actual macho modules.
Fixes handling DWARF in PE on macOS.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
wine commit id 3b6c268380d703079fa3c5ca06f67b6feb02487f by Jacek Caban jacek@codeweavers.com --- dll/win32/dbghelp/cpu_i386.c | 4 +--- sdk/tools/winesync/dbghelp.cfg | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/dll/win32/dbghelp/cpu_i386.c b/dll/win32/dbghelp/cpu_i386.c index 1528b603221..78f477115d7 100644 --- a/dll/win32/dbghelp/cpu_i386.c +++ b/dll/win32/dbghelp/cpu_i386.c @@ -526,13 +526,11 @@ static unsigned i386_map_dwarf_register(unsigned regno, const struct module* mod case 3: reg = CV_REG_EBX; break; case 4: case 5: -#ifdef __APPLE__ /* On OS X, DWARF eh_frame uses a different mapping for the registers. It's apparently the mapping as emitted by GCC, at least at some point in its history. */ - if (eh_frame) + if (eh_frame && module->type == DMT_MACHO) reg = (regno == 4) ? CV_REG_EBP : CV_REG_ESP; else -#endif reg = (regno == 4) ? CV_REG_ESP : CV_REG_EBP; break; case 6: reg = CV_REG_ESI; break; diff --git a/sdk/tools/winesync/dbghelp.cfg b/sdk/tools/winesync/dbghelp.cfg index 4cfa407ebcf..85f89bf51d8 100644 --- a/sdk/tools/winesync/dbghelp.cfg +++ b/sdk/tools/winesync/dbghelp.cfg @@ -4,4 +4,4 @@ files: include/dbghelp.h: sdk/include/psdk/dbghelp.h include/wine/mscvpdb.h: sdk/include/reactos/wine/mscvpdb.h tags: - wine: 5d8067c6088a30cdb4fe6945e6ae1cda0da85467 + wine: 3b6c268380d703079fa3c5ca06f67b6feb02487f