[Mingw-users] Re: libbfd, libtool & Win32

Guido Draheim guidod-2002-@gmx.de
Mon Sep 16 17:03:00 GMT 2002



Earnie Boyd wrote:
> Guido Draheim wrote:
> 
>>Earnie Boyd wrote:
>>
>>>>Oh, that's news to me. So, one can take the _linker_ to produce a
>>>>def file which contains the --dynamic-export-symbols? How is that?
>>>>I've looked into dlltool -z too long, it seems...
>>>>
>>>>(and btw, _how_ recent that my be? ye know, these things happen to
>>>> be unresolved for years now....)
>>>>
>>>
>>>
>>>Here's an example for the mingw-users archives.
>>>
>>>g++ -shared -Wl,--output-def,lib/example.def
>>>-Wl,--out-implib,lib/libexample
>>>.dll.a -Wl,--export-all-symbols -Wl,--add-stdcall-alias -o example.dll
>>>example.o -lpng12 -ltiff -lz -ljpeg -lungif -lgdi32
>>>
>>
>>which simply means that Olofson should stop looking
>>into dlltool, right!? That's because the work would
>>only be useful for setups with an older gcc/binutils
>>pair. And the real work should be done in libtool.m4
>>to be able to detect the newest format and implant
>>calls as those above. Is the format above the final
>>call-scheme? (or still under change?)
>>
> 
> 
> This sounds like a question for bintuils.  I've added them to the CC
> list.
> 
> As for not using dlltool, IIRC the above g++ example won't work in all
> cases at this time so dlltool should be used for now.  Danny Smith,
> please correct me if that is incorrect.
> 

hmm, perhaps, the LD can now link with dlls directly, and that should
be checked throughoughly. That was achieved by pushing code from the
dlltool into the LD, what I now wonder if it wouldn't be right to put
the other part of dlltool into objdump. The LD is used to create a
dll, and objdump is used to examine a dll, that's the scheme.

As noted by Rob Collins, the objdump does already exhibit the symbol
tables and he did guess that there is also the export table which is
fetched with the impgen.c extra code in libtool - but in a format
unusable by other compile steps.

Now, we have dlltool-z to take a .dll and create a .def file. Can we
have a w32-specific objdump call to not only print the export-table,
but have in a def-style format? That we can then use for other
compile steps?

Actually, some other platforms use -no-undefined too, and they do of
course examine the other libs with the help of objdump - it's just
they need no def files, just map-style functionname lists (for the
unresolvable symbols detection made by libtool).

Putting a w32-specific output-formatting option into objdump would
solve the impgen.c crosscompiler problem too, I hope. And the
`objdump -p` does already see an export-table today. See the example
in Rob's message:
    mail.gnu.org/pipermail/libtool/2002-January/005942.html

for reference, the description I made back then:
    http://mail.gnu.org/pipermail/libtool/2002-January/005931.html


thanks, and good luck, guido



More information about the Binutils mailing list