On 9 Feb 2010, at 20:00, Chaz Chandler wrote:
> I'm not sure exactly what led to it, but at some point before late
> January references to vprintf crept into the IRIX kernel module because
> of the way osi_Panic was defined -- at which point the module would no
> longer load (and the kernel would no longer build with libafs.a in it).
> It looked like AIX had the same problem (lack of vprintf) and there was
> already some #ifdef code in there to work around it, so we just tacked
> on some more for IRIX. Well, I don't know how well it's working out for
> AIX, but now I'm playing wack-a-mole #ifdefing all of the osi_Panic refs
> elsewhere. I'm hoping there's a better way. Has anyone tested AIX
> recently?
Okay, so if the problem is references to vprintf, you just need to redefine the
source of those references, rather than hunting through the code. osi_Panic is
defined in two places - rx_kcommon.c for kernel code, and rx_user.c for user
code.
rx_kcommon.c has, in effect, the following:
#if defined(AFS_AIX_ENV) || defined(AFS_SGI_ENV)
void
osi_Panic(char *msg, void *a1, void *a2, void *a3)
{
if (!msg)
msg = "Unknown AFS panic";
printf(msg, a1, a2, a3);
panic(msg);
}
#endif
So, kernel mode code _should_ be okay - there are no references to vprintf
there. However, rx_user.c has only a vprintf based definition. It's worth
working out what's going on here, so here are some questions:
*) Is your problem really with kernel code?
*) Is IRIX using rx_user.c in user space and rx_kcommon.c in the kernel, or
is something weird happening?
Can you get more information about where the vprintf references are coming from?
S.
_______________________________________________
OpenAFS-devel mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-devel