https://git.reactos.org/?p=reactos.git;a=commitdiff;h=72a0721cf7354a21e42e7…
commit 72a0721cf7354a21e42e725ff32a2bd8d07b9601
Author: winesync <ros-dev(a)reactos.org>
AuthorDate: Fri Sep 11 18:54:57 2020 +0200
Commit: Jérôme Gardou <jerome.gardou(a)reactos.org>
CommitDate: Wed Sep 16 10:35:52 2020 +0200
[WINESYNC] dbghelp: Use local AT_SYSINFO_EHDR definition.
Signed-off-by: Jacek Caban <jacek(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
wine commit id 620019fd71fd519470b4d624949a74fba9f350e9 by Jacek Caban
<jacek(a)codeweavers.com>
---
dll/win32/dbghelp/elf_module.c | 34 ++++++++++++++++++++--------------
sdk/tools/winesync/dbghelp.cfg | 2 +-
2 files changed, 21 insertions(+), 15 deletions(-)
diff --git a/dll/win32/dbghelp/elf_module.c b/dll/win32/dbghelp/elf_module.c
index 4019bcf7776..6bdbcdeb3e7 100644
--- a/dll/win32/dbghelp/elf_module.c
+++ b/dll/win32/dbghelp/elf_module.c
@@ -124,6 +124,8 @@ struct elf_module_info
struct image_file_map file_map;
};
+#define ELF_AT_SYSINFO_EHDR 33
+
/******************************************************************
* elf_map_section
*
@@ -1269,7 +1271,6 @@ static BOOL elf_load_file_cb(void *param, HANDLE handle, const WCHAR
*filename)
return elf_load_file(load_file->process, filename, load_file->load_offset,
load_file->dyn_addr, load_file->elf_info);
}
-#ifdef AT_SYSINFO_EHDR
/******************************************************************
* elf_search_auxv
*
@@ -1279,9 +1280,9 @@ static BOOL elf_search_auxv(const struct process* pcs, unsigned
type, ULONG_PTR*
{
char buffer[sizeof(SYMBOL_INFO) + MAX_SYM_NAME];
SYMBOL_INFO*si = (SYMBOL_INFO*)buffer;
- void* addr;
- void* str;
- void* str_max;
+ BYTE* addr;
+ BYTE* str;
+ BYTE* str_max;
si->SizeOfStruct = sizeof(*si);
si->MaxNameLen = MAX_SYM_NAME;
@@ -1309,36 +1310,43 @@ static BOOL elf_search_auxv(const struct process* pcs, unsigned
type, ULONG_PTR*
if (pcs->is_64bit)
{
- Elf64_auxv_t auxv;
+ struct
+ {
+ UINT64 a_type;
+ UINT64 a_val;
+ } auxv;
while (ReadProcessMemory(pcs->handle, addr, &auxv, sizeof(auxv), NULL)
&& auxv.a_type)
{
if (auxv.a_type == type)
{
- *val = auxv.a_un.a_val;
+ *val = auxv.a_val;
return TRUE;
}
- addr = (void*)((DWORD_PTR)addr + sizeof(auxv));
+ addr += sizeof(auxv);
}
}
else
{
- Elf32_auxv_t auxv;
+ struct
+ {
+ UINT32 a_type;
+ UINT32 a_val;
+ } auxv;
while (ReadProcessMemory(pcs->handle, addr, &auxv, sizeof(auxv), NULL)
&& auxv.a_type)
{
if (auxv.a_type == type)
{
- *val = auxv.a_un.a_val;
+ *val = auxv.a_val;
return TRUE;
}
- addr = (void*)((DWORD_PTR)addr + sizeof(auxv));
+ addr += sizeof(auxv);
}
}
return FALSE;
}
-#endif
/******************************************************************
* elf_search_and_load_file
@@ -1463,18 +1471,16 @@ static BOOL elf_enum_modules_internal(const struct process* pcs,
}
}
-#ifdef AT_SYSINFO_EHDR
if (!lm_addr)
{
ULONG_PTR ehdr_addr;
- if (elf_search_auxv(pcs, AT_SYSINFO_EHDR, &ehdr_addr))
+ if (elf_search_auxv(pcs, ELF_AT_SYSINFO_EHDR, &ehdr_addr))
{
static const WCHAR vdsoW[] =
{'[','v','d','s','o',']','.','s','o',0};
cb(vdsoW, ehdr_addr, 0, TRUE, user);
}
}
-#endif
return TRUE;
}
diff --git a/sdk/tools/winesync/dbghelp.cfg b/sdk/tools/winesync/dbghelp.cfg
index fee3214cbc1..03cb11af8a4 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: ee34cf365d34b23669c2ead03b040f09b7fb1e2b
+ wine: 620019fd71fd519470b4d624949a74fba9f350e9