Michael Peppler wrote:

[ Note - I'm a Unix/linux person and know very little about Windows ]

I'm trying to build sqsh under Cygwin and I'm running into a problem
with decorate vs. non-decorated library symbols.

Sybase uses the __stdcall calling convention for its libraries under
Windows, so gcc generates symbols like [EMAIL PROTECTED]

I've gone through the Cygwin docs on linking with Windows DLLs, and I've
generated three .def files and .a files using the following:

cd $SYBASE/OCS-12_5/lib
for i in libblk libcs libct; do
    echo "EXPORTS" >${i}.def
    nm ${i}.lib | grep 'T _' | sed 's/.* T _//' >>${i}.def
    dlltool --dllname ${i}.dll --def ${i}.def --output-lib ${i}.a
done

This generates what looks like valid .a files, *but* they are all with
non-decorated symbols, and of course the link phase fails.

Is there a way to direct the linker to match up the [EMAIL PROTECTED] symbols
with the corresponding _ct_xxx entries in the .a/.dll?

Have you tried the ld flag '--enable-stdcall-fixup'?


Gerrit -- =^..^=

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



Reply via email to