[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

impgen.c again / Re: Linux/Win32 cross and DLLs

From: Guido Draheim
Subject: impgen.c again / Re: Linux/Win32 cross and DLLs
Date: Mon, 16 Sep 2002 12:54:07 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.1) Gecko/20020826

This thing is unresolved for years. A number of people did try to get
someone with with DLL-mana to fix it, and there are dozens and dozens
of mails to libtool-ML to be found around this problem, please
check the mailinglist-archives (again) for the details. Sorry, 'I don't
have much time at the moment, but -no-undefined is definitly not the
problem, the real cause is that your CC is a crosscompiler, and impgen.c
gets compiled on the fly and executed immediatly to create an importlib
from a DLL found in the sytem, but that does not work of course since
the CC did create a impgen.exe. Add the above macro to your,
and see that impgen.c will be compiled with HOST_CC instead of CC. And
yes, the name is a bit misleading, it's just many years old, and why
should one fix something that is wrong in the first place. There should
be an implib helper along dlltool, i.e. preinstalled in the build
environment, it should not be compiled on the fly anyway, so the whole
stuff of buildcc .vs. crossgcc is bad bad bad anyway. You have some
30 hours time to spare for communications and e-mails? I'd love to get
someone again to try to fix the situation...

(btw, where's the crossgcc faq gone? I crafted it, it was planned to
show up on and I posted it to the sdl-mailinglist a number
of the times.. hmm... may be these thing get forgotten too quickly...)

David Olofson wrote:

I'm working on a library/DLL version of an audio engine that was formerly part of a game. I'd like to support both static and dynamic linking where possible. No problem with Linux native builds.

However, when it comes to cross compiling for Win32, I'm running into trouble as soon as I try to link with another library/DLL. System libraries and stuff are fine, but libSDL just won't work.

IIRC, if I use the -no-undefined option, I simply get only a static lib (no DLL), while without it, libtool wants to run impgen.c on SDL.DLL, but fails to compile impgen.c as a result of passing some System V specific switch to 'as'. (At last, it *does* at least use the native compiler instead of the Win32 cross gcc, without any libtool patching or other tricks... Dunno' what I was doing before.)

Meanwhile, other libraries that depend on SDL don't even try to run impgen - they just build proper DLLs anyway. I've looked at everything I could think of, including upgrading other projects to the automake/autoconf/libtool I'm using and vice versa, but still; my lib won't build a DLL and others will.

I've read all docs and posts I could find on the matter, and I've spent countless hours trying to sort out what's actually going on, but so far, no luck. Any ideas...?

I'm using autoconf 2.52, automake 1.5 and, hmm... libtool 1.3.5.

Could the older libtool be it?

Still doesn't explain why other libs build properly with the same setup, even after replacing *all* scripts with my versions. It *has* to be something with my code or scripts, I think...

Hints? Specific documentation on Linux->Win32 cross compiling?

//David Olofson --- Programmer, Reologica Instruments AB

.- M A I A -------------------------------------------------.
|      Multimedia Application Integration Architecture      |
| A Free/Open Source Plugin API for Professional Multimedia |
`----------------------------> -'
.- David Olofson -------------------------------------------.
| Audio Hacker - Open Source Advocate - Singer - Songwriter |
`-------------------------------------> -'

Libtool mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]