Ah, yes, that is what I thought. The problem is that AIX's kernel doesn't have vprintf. Only printf. However, the change set you linked indicates that previously, osi_Msg used fprintf, and indeed that goes all the way back to the beginning. That's why I wonder how it worked on AIX in the past. With no vprintf in the kernel, what alternative should we use here?
Thank you! -Ben ________________________________ From: Jeffrey E Altman Sent: Saturday, August 13, 2022 2:23 AM To: Ben Huntsman; [email protected] Subject: Re: [OpenAFS] linking afs.ext.64 on AIX fails with missing symbol vprintf On 8/13/2022 1:57 AM, Ben Huntsman ([email protected]<mailto:[email protected]>) wrote: After a few tweaks to some of the source files (which I will submit later), I have all the code for afs.ext.64 compiling, but it fails to link due to a missing symbol .vprintf. The AIX man pages show that this is included in /lib/libc.a, and nm confirms it. libc is a userspace library. The failure is when linking the kernel module and there is no vprintf in the kernel. The reference is from src/rx/rx_kcommon.c: void osi_Msg(const char *fmt, ...) { va_list ap; va_start(ap, fmt); #if defined(AFS_LINUX_ENV) vprintk(fmt, ap); #else vprintf(fmt, ap); #endif va_end(ap); } Just as another sloppy fix I tried several variants of print functions that could substitute on AIX, but they all fail with a missing symbol. How did this work on AIX in the past? The vprintf usage in kernel on AIX was introduced by https://gerrit.openafs.org/14791
