PR ld/11603
* pe-dll.c (process_def_file_and_drectve): Reorder check for forwarded export name after check for ordinary export.
This commit is contained in:
parent
55881a11e8
commit
75898d578f
@ -1,3 +1,9 @@
|
||||
2010-06-09 Dave Korn <dave.korn.cygwin@gmail.com>
|
||||
|
||||
PR ld/11603
|
||||
* pe-dll.c (process_def_file_and_drectve): Reorder check for
|
||||
forwarded export name after check for ordinary export.
|
||||
|
||||
2010-06-08 Bernd Schmidt <bernds@codesourcery.com>
|
||||
|
||||
* emulparams/elf32_tic6x_le.sh (OTHER_BSS_SECTIONS): New.
|
||||
|
44
ld/pe-dll.c
44
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 != '@'))
|
||||
@ -923,6 +901,28 @@ process_def_file_and_drectve (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_link_info *
|
||||
else
|
||||
exported_symbol_sections[i] = blhe->u.c.p->section;
|
||||
|
||||
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++;
|
||||
}
|
||||
}
|
||||
/* 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)
|
||||
|
Loading…
Reference in New Issue
Block a user