https://git.reactos.org/?p=reactos.git;a=commitdiff;h=63f681c1e6743b9996640…
commit 63f681c1e6743b99966401c600b93d014175ffc7
Author: winesync <ros-dev(a)reactos.org>
AuthorDate: Fri Sep 11 19:00:41 2020 +0200
Commit: Jérôme Gardou <jerome.gardou(a)reactos.org>
CommitDate: Wed Sep 16 10:35:54 2020 +0200
[WINESYNC] dbghelp: Use local fat header declaration.
Signed-off-by: Jacek Caban <jacek(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
wine commit id 8230889f1f2e545222f3a51ba9b47fa02196eb98 by Jacek Caban
<jacek(a)codeweavers.com>
---
dll/win32/dbghelp/macho_module.c | 21 +++++++++++++++++----
sdk/tools/winesync/dbghelp.cfg | 2 +-
2 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/dll/win32/dbghelp/macho_module.c b/dll/win32/dbghelp/macho_module.c
index 0e532c354b3..6710385a88c 100644
--- a/dll/win32/dbghelp/macho_module.c
+++ b/dll/win32/dbghelp/macho_module.c
@@ -54,7 +54,6 @@
#ifdef HAVE_MACH_O_LOADER_H
-#include <mach-o/fat.h>
#include <mach-o/loader.h>
#include <mach-o/nlist.h>
#include <mach-o/dyld.h>
@@ -111,6 +110,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(dbghelp_macho);
memory by dyld. */
#define MACHO_DYLD_IN_SHARED_CACHE 0x80000000
+#define MACHO_FAT_MAGIC 0xcafebabe
#define UUID_STRING_LEN 37 /* 16 bytes at 2 hex digits apiece, 4 dashes, and the null
terminator */
@@ -682,7 +682,6 @@ static BOOL macho_map_file(struct process *pcs, const WCHAR
*filenameW,
BOOL split_segs, struct image_file_map* ifm)
{
struct macho_file_map* fmap = &ifm->u.macho;
- struct fat_header fat_header;
struct mach_header mach_header;
int i;
WCHAR* filename;
@@ -693,6 +692,12 @@ static BOOL macho_map_file(struct process *pcs, const WCHAR
*filenameW,
uint32_t target_cmd = (pcs->is_64bit) ? LC_SEGMENT_64 : LC_SEGMENT;
DWORD bytes_read;
+ struct
+ {
+ UINT32 magic; /* FAT_MAGIC or FAT_MAGIC_64 */
+ UINT32 nfat_arch; /* number of structs that follow */
+ } fat_header;
+
TRACE("(%s, %p)\n", debugstr_w(filenameW), fmap);
reset_file_map(ifm);
@@ -721,12 +726,20 @@ static BOOL macho_map_file(struct process *pcs, const WCHAR
*filenameW,
TRACE("... got possible fat header\n");
/* Fat header is always in big-endian order. */
- if (swap_ulong_be_to_host(fat_header.magic) == FAT_MAGIC)
+ if (swap_ulong_be_to_host(fat_header.magic) == MACHO_FAT_MAGIC)
{
int narch = swap_ulong_be_to_host(fat_header.nfat_arch);
for (i = 0; i < narch; i++)
{
- struct fat_arch fat_arch;
+ struct
+ {
+ UINT32 cputype; /* cpu specifier (int) */
+ UINT32 cpusubtype; /* machine specifier (int) */
+ UINT32 offset; /* file offset to this object file */
+ UINT32 size; /* size of this object file */
+ UINT32 align; /* alignment as a power of 2 */
+ } fat_arch;
+
if (!ReadFile(fmap->handle, &fat_arch, sizeof(fat_arch),
&bytes_read, NULL) || bytes_read != sizeof(fat_arch))
goto done;
if (swap_ulong_be_to_host(fat_arch.cputype) == target_cpu)
diff --git a/sdk/tools/winesync/dbghelp.cfg b/sdk/tools/winesync/dbghelp.cfg
index c05f3af56ae..7bb2f98904c 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: 64341284c58bcc22f13f8146bcb6c8a08c0c4ff2
+ wine: 8230889f1f2e545222f3a51ba9b47fa02196eb98