[Patch/pe-coff] : Add native spelling of import lib names to dynamic lib search
Danny Smith
dannysmith@clear.net.nz
Tue Jun 20 08:51:00 GMT 2006
At
<http://sourceware.org/ml/binutils/2006-06/msg00294.html>
Ross Ridge wrote
> Danny Smith wrote:
> >However, the native naming convention for these import libs is
"foo.lib"
> >and gld_i386pe_open_dynamic_archive does not currently recognize this
> >name format. This means that doing something like -L/path/to/sdk
-lfoo32
> >could link directly to "foo32.dll", rather than find the import lib
> >"foo32.lib".
>
> Umm... doing something like -L/path/to/sdk -lfoo32 already works for
> me with ld. Am I missing something here?
>
It finds foo32.lib after unsuccesfully going through the dynamic lib
search list, then trying to find a static lib name libfoo32.a and
finally trying the .lib spelling in
gld_${EMULATION_NAME}_find_potential_libraries
If 'foo32.dll' is found before the import lib, 'foo32.lib', ld will
attempt direct linking to foo32.dll. This will fail if, as in platform
sdk, the symbols are exported only by aliased name.
Now I realize that putting a DLL in a library search path is not the
best thing to do, but it happens.
It often happens when building/testing a project and the makefile puts
the new dll and the import lib in the same directory.
See this:
http://cygwin.com/ml/cygwin/2006-06/msg00187.html
I didn't like the answer given by the cygwin respondents. The patch was
an alternative answer.
Danny
> Ross Ridge
>
More information about the Binutils
mailing list