diff options
Diffstat (limited to 'ld/pe-dll.c')
-rw-r--r-- | ld/pe-dll.c | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/ld/pe-dll.c b/ld/pe-dll.c index 5048c20..47722b6 100644 --- a/ld/pe-dll.c +++ b/ld/pe-dll.c @@ -871,28 +871,6 @@ process_def_file_and_drectve (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_link_info * for (i = 0; i < NE; i++) { char *name; - - /* Check for forward exports */ - if (strchr (pe_def_file->exports[i].internal_name, '.')) - { - count_exported++; - if (!pe_def_file->exports[i].flag_noname) - count_exported_byname++; - - pe_def_file->exports[i].flag_forward = 1; - - if (pe_def_file->exports[i].ordinal != -1) - { - if (max_ordinal < pe_def_file->exports[i].ordinal) - max_ordinal = pe_def_file->exports[i].ordinal; - if (min_ordinal > pe_def_file->exports[i].ordinal) - min_ordinal = pe_def_file->exports[i].ordinal; - count_with_ordinals++; - } - - continue; - } - name = xmalloc (strlen (pe_def_file->exports[i].internal_name) + 2); if (pe_details->underscored && (*pe_def_file->exports[i].internal_name != '@')) @@ -932,6 +910,28 @@ process_def_file_and_drectve (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_link_info * count_with_ordinals++; } } + /* Check for forward exports. These are indicated in DEF files by an + export directive of the form NAME1 = MODULE-NAME.EXTERNAL-NAME + but we must take care not to be fooled when the user wants to export + a symbol that actually really has a dot in it, so we only check + for them here, after real defined symbols have already been matched. */ + else if (strchr (pe_def_file->exports[i].internal_name, '.')) + { + count_exported++; + if (!pe_def_file->exports[i].flag_noname) + count_exported_byname++; + + pe_def_file->exports[i].flag_forward = 1; + + if (pe_def_file->exports[i].ordinal != -1) + { + if (max_ordinal < pe_def_file->exports[i].ordinal) + max_ordinal = pe_def_file->exports[i].ordinal; + if (min_ordinal > pe_def_file->exports[i].ordinal) + min_ordinal = pe_def_file->exports[i].ordinal; + count_with_ordinals++; + } + } else if (blhe && blhe->type == bfd_link_hash_undefined) { /* xgettext:c-format */ |