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

Reply via email to