I didn't figured I'd get much of an anwser from users@ and this isn't exactly a mod_* question either.
--
I'm trying to compile a whole slew of things for a new install on my laptop for dev, including libxml2, libxslt, mod_perl, and AxKit.
Everything is done and passed all the tests with the exception of AxKit. What does this have to do with Apache you ask? Well, I'm getting errors linking against ApacheCore.lib in my 1.3.33 Apache install. This is the packages binary install from apache.org.
The error is:
axconfig.obj : error LNK2001: unresolved external symbol _ap_invoke_handler blib\arch\auto\AxKit\AxKit.dll : fatal error LNK1120: 1 unresolved externals NMAKE : fatal error U1077: 'C:\WINDOWS\system32\cmd.exe' : return code '0x460' Stop.
Now, the AxKit Makefile has the full path to ApacheCore.lib in it; without spaces. Removing that entry produces more errors, so it's definately getting linked to.
The relevant portion in AxKits' axconfig.c is:
/* ----- axconfig.c ----- */ static int axkit_handler(request_rec *r) { int retval; SV * handler_sv; SV * cfg; SV * debuglevel; SV * errorlevel;
if (S_ISDIR(r->finfo.st_mode)) { axkit_dir_config * cfg = (axkit_dir_config *)ap_get_module_config(r->per_dir_config, &XS_AxKit); if (!cfg || cfg->handle_dirs != 1) { return DECLINED; } }
handler_sv = newSVpv("AxKit::fast_handler", 0);
cfg = perl_get_sv("AxKit::Cfg", FALSE); debuglevel = perl_get_sv("AxKit::DebugLevel", FALSE); errorlevel = perl_get_sv("Error::Debug", FALSE);
ENTER;
save_item(cfg); save_item(debuglevel); save_item(errorlevel);
retval = perl_call_handler(handler_sv, (request_rec *)r, Nullav);
LEAVE;
SvREFCNT_dec(handler_sv);
if (retval == DECLINED) { r->handler = "default-handler"; return ap_invoke_handler(r); }
return retval; } /* ----- axconfig.c ----- */
I've also done a dumpbin on ApacheCore.lib and ApacheCore.dll to confirm that ap_invoke_handler is indeed exported.
The Microsoft KB has a million and one reasons that cause LNK1120 error, and I don't know a damn thing about C.
Any C guru Apache internals god out there have any ideas?
Thanks, -=Chris