[WINESYNC] dbghelp: Use local macho section declaration.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 64341284c58bcc22f13f8146bcb6c8a08c0c4ff2 by Jacek Caban <jacek@codeweavers.com>
This commit is contained in:
winesync 2020-09-11 18:59:48 +02:00 committed by Jérôme Gardou
parent 739259ac2f
commit eff9360f47
3 changed files with 35 additions and 16 deletions

View file

@ -21,16 +21,6 @@
#pragma once #pragma once
#ifdef HAVE_LINK_H
# include <link.h>
#endif
#ifdef HAVE_SYS_LINK_H
# include <sys/link.h>
#endif
#ifdef HAVE_MACH_O_LOADER_H
#include <mach-o/loader.h>
#endif
#define IMAGE_NO_MAP ((void*)-1) #define IMAGE_NO_MAP ((void*)-1)
struct elf_header struct elf_header
@ -78,6 +68,37 @@ struct macho_uuid_command
UINT8 uuid[16]; UINT8 uuid[16];
}; };
struct macho_section
{
char sectname[16]; /* name of this section */
char segname[16]; /* segment this section goes in */
UINT64 addr; /* memory address of this section */
UINT64 size; /* size in bytes of this section */
UINT32 offset; /* file offset of this section */
UINT32 align; /* section alignment (power of 2) */
UINT32 reloff; /* file offset of relocation entries */
UINT32 nreloc; /* number of relocation entries */
UINT32 flags; /* flags (section type and attributes)*/
UINT32 reserved1; /* reserved (for offset or index) */
UINT32 reserved2; /* reserved (for count or sizeof) */
UINT32 reserved3; /* reserved */
};
struct macho_section32
{
char sectname[16]; /* name of this section */
char segname[16]; /* segment this section goes in */
UINT32 addr; /* memory address of this section */
UINT32 size; /* size in bytes of this section */
UINT32 offset; /* file offset of this section */
UINT32 align; /* section alignment (power of 2) */
UINT32 reloff; /* file offset of relocation entries */
UINT32 nreloc; /* number of relocation entries */
UINT32 flags; /* flags (section type and attributes)*/
UINT32 reserved1; /* reserved (for offset or index) */
UINT32 reserved2; /* reserved (for count or sizeof) */
};
/* structure holding information while handling an ELF image /* structure holding information while handling an ELF image
* allows one by one section mapping for memory savings * allows one by one section mapping for memory savings
*/ */
@ -120,15 +141,13 @@ struct image_file_map
* read from arch_offset. */ * read from arch_offset. */
unsigned arch_offset; unsigned arch_offset;
#ifdef HAVE_MACH_O_LOADER_H
int num_sections; int num_sections;
struct struct
{ {
struct section_64 section; struct macho_section section;
const char* mapped; const char* mapped;
unsigned int ignored : 1; unsigned int ignored : 1;
}* sect; }* sect;
#endif
} macho; } macho;
struct pe_file_map struct pe_file_map
{ {

View file

@ -624,7 +624,7 @@ static int macho_load_section_info(struct image_file_map* ifm, const struct mach
{ {
if (ifm->addr_size == 32) if (ifm->addr_size == 32)
{ {
const struct section *section = &((const struct section *)sections)[i]; const struct macho_section32 *section = &((const struct macho_section32 *)sections)[i];
memcpy(fmap->sect[info->section_index].section.sectname, section->sectname, sizeof(section->sectname)); memcpy(fmap->sect[info->section_index].section.sectname, section->sectname, sizeof(section->sectname));
memcpy(fmap->sect[info->section_index].section.segname, section->segname, sizeof(section->segname)); memcpy(fmap->sect[info->section_index].section.segname, section->segname, sizeof(section->segname));
fmap->sect[info->section_index].section.addr = section->addr; fmap->sect[info->section_index].section.addr = section->addr;
@ -636,7 +636,7 @@ static int macho_load_section_info(struct image_file_map* ifm, const struct mach
fmap->sect[info->section_index].section.flags = section->flags; fmap->sect[info->section_index].section.flags = section->flags;
} }
else else
fmap->sect[info->section_index].section = ((const struct section_64 *)sections)[i]; fmap->sect[info->section_index].section = ((const struct macho_section *)sections)[i];
fmap->sect[info->section_index].mapped = IMAGE_NO_MAP; fmap->sect[info->section_index].mapped = IMAGE_NO_MAP;
fmap->sect[info->section_index].ignored = ignore; fmap->sect[info->section_index].ignored = ignore;

View file

@ -4,4 +4,4 @@ files:
include/dbghelp.h: sdk/include/psdk/dbghelp.h include/dbghelp.h: sdk/include/psdk/dbghelp.h
include/wine/mscvpdb.h: sdk/include/reactos/wine/mscvpdb.h include/wine/mscvpdb.h: sdk/include/reactos/wine/mscvpdb.h
tags: tags:
wine: c695e7e99e0a06b6039d46f98fea35c363aa6cbe wine: 64341284c58bcc22f13f8146bcb6c8a08c0c4ff2