* src/ld/emultempl/pe.em (gld_*_open_dynamic_archive): New search
order for dynamic library '-lfoo' on pei386: libfoo.dll.a, foo.dll.a, libfoo.a, libfoo.dll, foo.dll. This fixes compatibility errors introduced by the old dynamic lib search order.
This commit is contained in:
parent
874c8c99db
commit
0ad8cf4c25
|
@ -1,3 +1,10 @@
|
||||||
|
2000-07-16 Charles Wilson <cwilson@ece.gatech.edu>
|
||||||
|
|
||||||
|
* src/ld/emultempl/pe.em (gld_*_open_dynamic_archive): New search
|
||||||
|
order for dynamic library '-lfoo' on pei386: libfoo.dll.a,
|
||||||
|
foo.dll.a, libfoo.a, libfoo.dll, foo.dll. This fixes compatibility
|
||||||
|
errors introduced by the old dynamic lib search order.
|
||||||
|
|
||||||
2000-07-17 DJ Delorie <dj@cygnus.com>
|
2000-07-17 DJ Delorie <dj@cygnus.com>
|
||||||
|
|
||||||
* pe-dll.c (process_def_file): auto-export data items also
|
* pe-dll.c (process_def_file): auto-export data items also
|
||||||
|
|
|
@ -1387,6 +1387,22 @@ gld_${EMULATION_NAME}_open_dynamic_archive (arch, search, entry)
|
||||||
sprintf (string, "%s/%s.dll.a", search->name, filename);
|
sprintf (string, "%s/%s.dll.a", search->name, filename);
|
||||||
if (! ldfile_try_open_bfd (string, entry))
|
if (! ldfile_try_open_bfd (string, entry))
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
Try libfoo.a next. Normally, this would be interpreted as a static
|
||||||
|
library, but it *could* be an import library. For backwards compatibility,
|
||||||
|
libfoo.a needs to ==precede== libfoo.dll and foo.dll in the search,
|
||||||
|
or sometimes errors occur when building legacy packages.
|
||||||
|
|
||||||
|
Putting libfoo.a here means that in a failure case (i.e. the library
|
||||||
|
-lfoo is not found) we will search for libfoo.a twice before
|
||||||
|
giving up -- once here, and once when searching for a "static" lib.
|
||||||
|
for a "static" lib.
|
||||||
|
*/
|
||||||
|
/* Try "libfoo.a" (import lib, or static lib, but must
|
||||||
|
take precedence over dll's) */
|
||||||
|
sprintf (string, "%s/lib%s.a", search->name, filename);
|
||||||
|
if (! ldfile_try_open_bfd (string, entry))
|
||||||
|
{
|
||||||
/* Try "libfoo.dll" (preferred dll name) */
|
/* Try "libfoo.dll" (preferred dll name) */
|
||||||
sprintf (string, "%s/lib%s.dll", search->name, filename);
|
sprintf (string, "%s/lib%s.dll", search->name, filename);
|
||||||
if (! ldfile_try_open_bfd (string, entry))
|
if (! ldfile_try_open_bfd (string, entry))
|
||||||
|
@ -1401,6 +1417,7 @@ gld_${EMULATION_NAME}_open_dynamic_archive (arch, search, entry)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
entry->filename = string;
|
entry->filename = string;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue