https://git.reactos.org/?p=reactos.git;a=commitdiff;h=63f681c1e6743b99966401c600b93d014175ffc7

commit 63f681c1e6743b99966401c600b93d014175ffc7
Author:     winesync <[email protected]>
AuthorDate: Fri Sep 11 19:00:41 2020 +0200
Commit:     Jérôme Gardou <[email protected]>
CommitDate: Wed Sep 16 10:35:54 2020 +0200

    [WINESYNC] dbghelp: Use local fat header declaration.
    
    Signed-off-by: Jacek Caban <[email protected]>
    Signed-off-by: Alexandre Julliard <[email protected]>
    
    wine commit id 8230889f1f2e545222f3a51ba9b47fa02196eb98 by Jacek Caban 
<[email protected]>
---
 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

Reply via email to