* pe-dll.c (process_def_file): auto-export data items also

(pe_process_import_defs): also see if _imp_ form needed
This commit is contained in:
DJ Delorie 2000-07-17 18:40:47 +00:00
parent 67aa9423b0
commit 874c8c99db
2 changed files with 14 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2000-07-17 DJ Delorie <dj@cygnus.com>
* pe-dll.c (process_def_file): auto-export data items also
(pe_process_import_defs): also see if _imp_ form needed
2000-07-12 Charles Wilson <cwilson@ece.gatech.edu>
* pe-dll.c (make_one): fix a typo in the __imp_ name decoration

View File

@ -301,8 +301,7 @@ process_def_file (abfd, info)
for (j = 0; j < nsyms; j++)
{
if ((symbols[j]->flags & (BSF_FUNCTION | BSF_GLOBAL))
== (BSF_FUNCTION | BSF_GLOBAL))
if (symbols[j]->flags & BSF_GLOBAL)
{
const char *sn = symbols[j]->name;
if (*sn == '_')
@ -1661,10 +1660,17 @@ pe_process_import_defs (output_bfd, link_info)
struct bfd_link_hash_entry *blhe;
/* see if we need this import */
char *name = (char *) xmalloc (strlen (pe_def_file->imports[i].internal_name) + 2);
char *name = (char *) xmalloc (strlen (pe_def_file->imports[i].internal_name) + 2 + 6);
sprintf (name, "%s%s", U(""), pe_def_file->imports[i].internal_name);
blhe = bfd_link_hash_lookup (link_info->hash, name,
false, false, false);
if (!blhe || (blhe && blhe->type != bfd_link_hash_undefined))
{
sprintf (name, "%s%s", U("_imp__"),
pe_def_file->imports[i].internal_name);
blhe = bfd_link_hash_lookup (link_info->hash, name,
false, false, false);
}
free (name);
if (blhe && blhe->type == bfd_link_hash_undefined)
{