mirror of
https://github.com/reactos/reactos.git
synced 2025-05-25 12:14:32 +00:00
[WINESYNC] dbghelp: Use local elf_header declaration.
Based on glibc. Signed-off-by: Jacek Caban <jacek@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org> wine commit id 78845911da06fc75c6d74237f816a1547c24b20b by Jacek Caban <jacek@codeweavers.com>
This commit is contained in:
parent
8f9ab8954d
commit
6c0765a0ec
4 changed files with 41 additions and 6 deletions
|
@ -359,7 +359,7 @@ static BOOL elf_map_file(struct elf_map_file_data* emfd, struct image_file_map*
|
|||
unsigned int i;
|
||||
size_t tmp, page_mask = sysinfo.dwPageSize - 1;
|
||||
WCHAR *dos_path;
|
||||
unsigned char e_ident[EI_NIDENT];
|
||||
unsigned char e_ident[ARRAY_SIZE(fmap->u.elf.elfhdr.e_ident)];
|
||||
|
||||
elf_reset_file_map(fmap);
|
||||
|
||||
|
@ -394,12 +394,28 @@ static BOOL elf_map_file(struct elf_map_file_data* emfd, struct image_file_map*
|
|||
|
||||
if (fmap->addr_size == 32)
|
||||
{
|
||||
Elf32_Ehdr elfhdr32;
|
||||
struct
|
||||
{
|
||||
UINT8 e_ident[16]; /* Magic number and other info */
|
||||
UINT16 e_type; /* Object file type */
|
||||
UINT16 e_machine; /* Architecture */
|
||||
UINT32 e_version; /* Object file version */
|
||||
UINT32 e_entry; /* Entry point virtual address */
|
||||
UINT32 e_phoff; /* Program header table file offset */
|
||||
UINT32 e_shoff; /* Section header table file offset */
|
||||
UINT32 e_flags; /* Processor-specific flags */
|
||||
UINT16 e_ehsize; /* ELF header size in bytes */
|
||||
UINT16 e_phentsize; /* Program header table entry size */
|
||||
UINT16 e_phnum; /* Program header table entry count */
|
||||
UINT16 e_shentsize; /* Section header table entry size */
|
||||
UINT16 e_shnum; /* Section header table entry count */
|
||||
UINT16 e_shstrndx; /* Section header string table index */
|
||||
} elfhdr32;
|
||||
|
||||
if (!elf_map_file_read(fmap, emfd, &elfhdr32, sizeof(elfhdr32), 0))
|
||||
return FALSE;
|
||||
|
||||
memcpy(fmap->u.elf.elfhdr.e_ident, elfhdr32.e_ident, EI_NIDENT);
|
||||
memcpy(fmap->u.elf.elfhdr.e_ident, elfhdr32.e_ident, sizeof(e_ident));
|
||||
fmap->u.elf.elfhdr.e_type = elfhdr32.e_type;
|
||||
fmap->u.elf.elfhdr.e_machine = elfhdr32.e_machine;
|
||||
fmap->u.elf.elfhdr.e_version = elfhdr32.e_version;
|
||||
|
|
|
@ -50,6 +50,24 @@
|
|||
|
||||
#define IMAGE_NO_MAP ((void*)-1)
|
||||
|
||||
struct elf_header
|
||||
{
|
||||
UINT8 e_ident[16]; /* Magic number and other info */
|
||||
UINT16 e_type; /* Object file type */
|
||||
UINT16 e_machine; /* Architecture */
|
||||
UINT32 e_version; /* Object file version */
|
||||
UINT64 e_entry; /* Entry point virtual address */
|
||||
UINT64 e_phoff; /* Program header table file offset */
|
||||
UINT64 e_shoff; /* Section header table file offset */
|
||||
UINT32 e_flags; /* Processor-specific flags */
|
||||
UINT16 e_ehsize; /* ELF header size in bytes */
|
||||
UINT16 e_phentsize; /* Program header table entry size */
|
||||
UINT16 e_phnum; /* Program header table entry count */
|
||||
UINT16 e_shentsize; /* Section header table entry size */
|
||||
UINT16 e_shnum; /* Section header table entry count */
|
||||
UINT16 e_shstrndx; /* Section header string table index */
|
||||
};
|
||||
|
||||
/* structure holding information while handling an ELF image
|
||||
* allows one by one section mapping for memory savings
|
||||
*/
|
||||
|
@ -68,8 +86,8 @@ struct image_file_map
|
|||
HANDLE handle;
|
||||
const char* shstrtab;
|
||||
char* target_copy;
|
||||
struct elf_header elfhdr;
|
||||
#if defined(__ELF__) && !defined(DBGHELP_STATIC_LIB)
|
||||
Elf64_Ehdr elfhdr;
|
||||
struct
|
||||
{
|
||||
Elf64_Shdr shdr;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* PROJECT: ReactOS Host Headers
|
||||
* LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
|
||||
* PURPOSE: Type definitions and useful macros for host tools
|
||||
* COPYRIGHT: Copyright 2007 Hervé Poussineau (hpoussin@reactos.org)
|
||||
* COPYRIGHT: Copyright 2007 Hervé Poussineau (hpoussin@reactos.org)
|
||||
* Copyright 2007 Colin Finck (colin@reactos.org)
|
||||
*/
|
||||
|
||||
|
@ -51,6 +51,7 @@ typedef void VOID, *PVOID, *LPVOID;
|
|||
typedef char CHAR, CCHAR, *PCHAR, *PSTR, *LPSTR;
|
||||
typedef const char *PCSTR, *LPCSTR;
|
||||
typedef unsigned char UCHAR, *PUCHAR, BYTE, *LPBYTE, BOOLEAN, *PBOOLEAN;
|
||||
typedef uint8_t UINT8;
|
||||
typedef int16_t SHORT, *PSHORT;
|
||||
typedef uint16_t USHORT, *PUSHORT, WORD, *PWORD, *LPWORD, WCHAR, *PWCHAR, *PWSTR, *LPWSTR, UINT16;
|
||||
typedef const uint16_t *PCWSTR, *LPCWSTR;
|
||||
|
|
|
@ -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: 11ea231501f4f2a54433031ada21052d81641fee
|
||||
wine: 78845911da06fc75c6d74237f816a1547c24b20b
|
||||
|
|
Loading…
Reference in a new issue