This is the mail archive of the
cygwin@sourceware.cygnus.com
mailing list for the Cygwin project.
Dlls @n symbols in Sybase
- To: cygwin at sourceware dot cygnus dot com
- Subject: Dlls @n symbols in Sybase
- From: peter at telnet-research dot co dot uk (Peter Hudson +44 1892 541 720)
- Date: Wed, 24 Nov 99 15:23:40 GMT
I am trying to write a Cygwin application that uses a Sybase Open
Client DLL (libsybdb.dll). Just about all of its symbols in the
.lib file end with @<n>
I have created a .a following the standard Cygwin documentation, with the
addition of --add-stdcall-alias .
However, if I then do an 'nm' on the resulting .a , the aliases without @<n>
aren't there, so my link fails with undefined symbols. My exact commands
are:
echo EXPORTS > LIBSYBDB.def
nm LIBSYBDB.lib | grep ' T _' | sed -e 's/.* T _//' >> LIBSYBDB.def
dlltool -v --add-stdcall-alias --def LIBSYBDB.def --dllname LIBSYBDB.dll \
--output-lib LIBSYBDB.a
I have also experimented with --kill-at , but this makes no difference.
I have also manually edited the .def file, following a suggestion in the
mail archive, by adding this sort of aliasing:
LIBRARY sample
EXPORTS
Bar@0
Bar=Bar@0
Foo@24
Foo=Foo@24
This overcomes the undefined symbols at link time. But at runtime, the
stack gets corrupted ('where' in gdb becomes corrupt).
My main issue here is that --add-stdcall-alias does not seem to
have any effect. Why might that be?
Thanks for any suggestions.
Peter Hudson
Telnet Research Ltd
--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com