mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-17 16:05:56 +08:00
* pe-dll.c (pe_implied_import_dll): Also scan .rdata sections
to identify data symbols.
This commit is contained in:
@ -1,3 +1,8 @@
|
|||||||
|
2003-10-14 Danny Smith <dannysmith@users.sourceforge.net>
|
||||||
|
|
||||||
|
* pe-dll.c (pe_implied_import_dll): Also scan .rdata sections
|
||||||
|
to identify data symbols.
|
||||||
|
|
||||||
2003-10-13 Richard Sandiford <rsandifo@redhat.com>
|
2003-10-13 Richard Sandiford <rsandifo@redhat.com>
|
||||||
|
|
||||||
* emulparams/elf32bmipn32-defs.sh (INITIAL_READONLY_SECTIONS): Move
|
* emulparams/elf32bmipn32-defs.sh (INITIAL_READONLY_SECTIONS): Move
|
||||||
|
15
ld/pe-dll.c
15
ld/pe-dll.c
@ -2442,6 +2442,8 @@ pe_implied_import_dll (const char *filename)
|
|||||||
will not be set by mistake, and avoids compiler warning. */
|
will not be set by mistake, and avoids compiler warning. */
|
||||||
unsigned long data_start = 1;
|
unsigned long data_start = 1;
|
||||||
unsigned long data_end = 0;
|
unsigned long data_end = 0;
|
||||||
|
unsigned long rdata_start = 1;
|
||||||
|
unsigned long rdata_end = 0;
|
||||||
unsigned long bss_start = 1;
|
unsigned long bss_start = 1;
|
||||||
unsigned long bss_end = 0;
|
unsigned long bss_end = 0;
|
||||||
|
|
||||||
@ -2516,6 +2518,15 @@ pe_implied_import_dll (const char *filename)
|
|||||||
data_start = vaddr;
|
data_start = vaddr;
|
||||||
data_end = vaddr + vsize;
|
data_end = vaddr + vsize;
|
||||||
|
|
||||||
|
if (pe_dll_extra_pe_debug)
|
||||||
|
printf ("%s %s: 0x%08lx-0x%08lx (0x%08lx)\n",
|
||||||
|
__FUNCTION__, sec_name, vaddr, vaddr + vsize, flags);
|
||||||
|
}
|
||||||
|
else if (strcmp(sec_name,".rdata") == 0)
|
||||||
|
{
|
||||||
|
rdata_start = vaddr;
|
||||||
|
rdata_end = vaddr + vsize;
|
||||||
|
|
||||||
if (pe_dll_extra_pe_debug)
|
if (pe_dll_extra_pe_debug)
|
||||||
printf ("%s %s: 0x%08lx-0x%08lx (0x%08lx)\n",
|
printf ("%s %s: 0x%08lx-0x%08lx (0x%08lx)\n",
|
||||||
__FUNCTION__, sec_name, vaddr, vaddr + vsize, flags);
|
__FUNCTION__, sec_name, vaddr, vaddr + vsize, flags);
|
||||||
@ -2573,9 +2584,11 @@ pe_implied_import_dll (const char *filename)
|
|||||||
exported in buggy auto-import releases. */
|
exported in buggy auto-import releases. */
|
||||||
if (strncmp (erva + name_rva, "_nm_", 4) != 0)
|
if (strncmp (erva + name_rva, "_nm_", 4) != 0)
|
||||||
{
|
{
|
||||||
/* is_data is true if the address is in the data or bss segment. */
|
/* is_data is true if the address is in the data, rdata or bss
|
||||||
|
segment. */
|
||||||
is_data =
|
is_data =
|
||||||
(func_rva >= data_start && func_rva < data_end)
|
(func_rva >= data_start && func_rva < data_end)
|
||||||
|
|| (func_rva >= rdata_start && func_rva < rdata_end)
|
||||||
|| (func_rva >= bss_start && func_rva < bss_end);
|
|| (func_rva >= bss_start && func_rva < bss_end);
|
||||||
|
|
||||||
imp = def_file_add_import (pe_def_file, erva + name_rva,
|
imp = def_file_add_import (pe_def_file, erva + name_rva,
|
||||||
|
Reference in New Issue
Block a user