Marcin Zaj=B1czkowski wrote:
> I'm not expert in converting libs (I only used reimp in standard form).=
=20
> What do You mean as "tracking down the problems in the usual fashion"?
I mean investigating the particular reason for each link error in the
same way you'd debug anything else. (Obviously I can't be more specific.=
)
> Warning: .drectve `%.*s' unrecognized
The weird .drectve errors come from a bug in binutils that has been
fixed. I don't remember whether the fixes just make the errors less
weird, or make them go away, but in any case, they're harmless. (The
.drectve section contains additional command-line flags in textual form
that the compiler would like the linker to use, which binutils does not
completely support. In this case, it is the autolink functionality.)
E:/DirectX9/lib/libd3dx9.a(obj/i386/cpudetect.obj)(.text+0xa0):..\cpudete=
ct.cpp:
> undefined reference to `_except_list'
The other errors are undefined symbols that the MSVC-generated code in
D3DX that expects to be linked against a complete MSVC runtime library.
I think most of these can be easily fixed by creating a complete
libmsvcrt.a import library. The MinGW one is presently missing a few
symbols that MSVC code needs. Note that you will need to use current
binutils CVS to do this due to bugs in dlltool.
You also probably will need to use mainline binutils anyway because D3DX
requires working weak symbol support in the linker, which no release of
binutils supports. (Without it, link will suceed, but the generated
executable will crash randomly.)
I recall from memory that you'll also need to create a few aliases for
alloca that MSVC's runtime usually provides.
There may be a few other fixes of this nature required. If this sounds
a little too tricky for you, you'll have to wait until someone has fixed
all of this, and the fixes make their way into a release version of the
tools.
Aaron W. LaFramboise
|