Ross Ridge wrote:
>There are other MSC library functions that MinGW doesn't provide, so
>libraries may not link even with a _chkstk alias.

Mark Mitchell wrote:
>Got a list?

Probably the most common missing symbols, using their assembler
names are:

        __ftol2
        @[EMAIL PROTECTED]
        ___security_cookie

These are newer symbols in the MS CRT library and also cause problems
for Visual C++ 6.0 users.  I've worked around the missing security cookie
symbols by providing my own stub implementation, but apparently newer
versions of the Platform SDK include a library that fully implement these.
I'm not sure how _ftol2 is supposed to be different from _ftol, but
since I use -ffast-math anyways, I've just used the following code
as a work around:

        long _ftol2(double f) { return (long) f; }

Looking at an old copy of MSVCRT.LIB (c. 1998) other missing symbols
that might be a problem include:

T __alldiv [I]
T __allmul [I]
T __alloca_probe [I][*]
T __allrem [I]
T __allshl [I][*]
T __allshr [I]
T __aulldiv [I]
T __aullrem [I]
T __aullshr [I]
A __except_list [I][*]
T __matherr [D]
T __setargv [D]
T ___setargv [X]
A __tls_array [I]
B __tls_index [I]
R __tls_used [I]
T __wsetargv [D]

[D] Documented external interface
[I] Implicitly referenced by the MSC compiler
[X] Undocumented external interface
[*] Missing symbols I've encountered

The are other problems related to linking that can make an MSC compiled
static library incompatible including not processing MSC intialization
and termination sections, no support for thread-local variables and
broken COMDAT section handling.

                                                Ross Ridge

Reply via email to