+Wed Jul 05 03:18:00 2000 Charles Wilson <cwilson@ece.gatech.edu>
+
+ * ld/emultempl/pe.em: institute the following search order for
+ dynamic libraries on pei386: libfoo.dll.a, foo.dll.a (import
+ libs), libfoo.dll, foo.dll (link direct to dll). Fall back to
+ static lib (libfoo.a) if none of the above are found.
+
2000-07-07 Mumit Khan <khan@xraylith.wisc.edu>
* ld/emultempl/pe.em (pe_enable_auto_image_base): New variable.
string = (char *) xmalloc (strlen (search->name)
+ strlen (filename)
- + sizeof "/lib.dll"
+ + sizeof "/lib.a.dll"
+ 1);
- /* Try "foo.dll" first. */
- sprintf (string, "%s/%s.dll", search->name, filename);
+ /* Try "libfoo.dll.a" first (preferred explicit import library for dll's */
+ sprintf (string, "%s/lib%s.dll.a", search->name, filename);
if (! ldfile_try_open_bfd (string, entry))
{
- /* Try "libfoo.dll" next. */
- sprintf (string, "%s/lib%s.dll", search->name, filename);
-
+ /* Try "foo.dll.a" next (alternate explicit import library for dll's */
+ sprintf (string, "%s/%s.dll.a", search->name, filename);
if (! ldfile_try_open_bfd (string, entry))
{
- free (string);
- return false;
+ /* Try "libfoo.dll" (preferred dll name) */
+ sprintf (string, "%s/lib%s.dll", search->name, filename);
+ if (! ldfile_try_open_bfd (string, entry))
+ {
+ /* Finally, try "foo.dll" (alternate dll name) */
+ sprintf (string, "%s/%s.dll", search->name, filename);
+ if (! ldfile_try_open_bfd (string, entry))
+ {
+ free (string);
+ return false;
+ }
+ }
}
}
-
+
entry->filename = string;
return true;