On Sun, 9 May 2004, Stas Bekman wrote:
Yes, that sounds like a much better idea. There should be a way to tell the application that certain symbols will be resolved at run-time, and no matter who will provide them (application, another library or else). On AIX the linker is just as picky, but lets you shut up itself by telling it that the missing symbols will be resolved at run time and that it shouldn't worry about it. using the -brtl option (see lib/Apache/Build.pm).
There is a link option on VC++ 6, -delayload:some.dll, which delays the loading of a dll until a function inside it is actually called by an application. But this is used in situations like if (some_condition_is_true) { call_the_dll_function(); } else { do_something_else(); } where the dll may not be available on some target machine.
What seems different on Windows compared to Unix, even with this delayload thing (which still requires you to link against the .lib file corresponding to the relevant .dll), is that when you link against a .lib file which resolves symbols, information about those symbols appears in the result which contains references to the specific dll where those symbols appear. What Jan suggested, in some sense, is to try to fool Win32 by building, eg, APR.so, in a way to make it go by the name of mod_perl.so, by using the same .def file for both (and specifying a library name). But this doesn't seem to quite work, at least in a simple way.
In short, no go, right?
How about a quick workaround as follows: For windows only, link APR.so statically with all APR/Foo.o and the required modperl_foo.o and arrange for the bootstrap not to call it for windows if APR.so is loaded?
-- __________________________________________________________________ Stas Bekman JAm_pH ------> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
