Scan table pe_dll->exports, which is sorted alphabetically, instead of
exported_symbols, which is sorted by ordinal.
This commit is contained in:
parent
f4dbdb5468
commit
03a1c9a708
2 changed files with 16 additions and 6 deletions
|
@ -1,3 +1,9 @@
|
|||
2003-06-02 Fabrizio Gennari <fabrizio.ge@tiscalinet.it>
|
||||
|
||||
* pe-dll.c (fill_edata): Scan table pe_dll->exports, which is
|
||||
sorted alphabetically, instead of exported_symbols, which is
|
||||
sorted by ordinal.
|
||||
|
||||
2003-05-30 Ulrich Drepper <drepper@redhat.com>
|
||||
Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
|
|
16
ld/pe-dll.c
16
ld/pe-dll.c
|
@ -959,7 +959,7 @@ fill_edata (abfd, info)
|
|||
bfd *abfd;
|
||||
struct bfd_link_info *info ATTRIBUTE_UNUSED;
|
||||
{
|
||||
int i, hint;
|
||||
int s, hint;
|
||||
unsigned char *edirectory;
|
||||
unsigned long *eaddresses;
|
||||
unsigned long *enameptrs;
|
||||
|
@ -1000,13 +1000,16 @@ fill_edata (abfd, info)
|
|||
|
||||
fill_exported_offsets (abfd, info);
|
||||
|
||||
/* Ok, now for the filling in part. */
|
||||
/* Ok, now for the filling in part.
|
||||
Scan alphabetically - ie the ordering in the exports[] table,
|
||||
rather than by ordinal - the ordering in the exported_symbol[]
|
||||
table. See dlltool.c and:
|
||||
http://sources.redhat.com/ml/binutils/2003-04/msg00379.html
|
||||
for more information. */
|
||||
hint = 0;
|
||||
for (i = 0; i < export_table_size; i++)
|
||||
for (s = 0; s < NE; s++)
|
||||
{
|
||||
int s = exported_symbols[i];
|
||||
|
||||
if (s != -1)
|
||||
if (pe_def_file->exports[s].ordinal != -1)
|
||||
{
|
||||
struct sec *ssec = exported_symbol_sections[s];
|
||||
unsigned long srva = (exported_symbol_offsets[s]
|
||||
|
@ -1020,6 +1023,7 @@ fill_edata (abfd, info)
|
|||
if (!pe_def_file->exports[s].flag_noname)
|
||||
{
|
||||
char *ename = pe_def_file->exports[s].name;
|
||||
|
||||
bfd_put_32 (abfd, ERVA (enamestr), (void *) enameptrs);
|
||||
enameptrs++;
|
||||
strcpy (enamestr, ename);
|
||||
|
|
Loading…
Reference in a new issue