- /*
- * XXX We assume a va_list is either a pointer or an array, so
- * what gets passed for a va_list is like a void * in some sense.
- */
- a = va_arg(args, void *);
- n = vfmtmsg(buf, buflen + 1, f, a);
+#ifndef __powerpc__
+ n = vfmtmsg(buf, buflen + 1, f, va_arg(args, va_list));
+#else
+ /* On the powerpc, a va_list is an array of 1 structure */
+ n = vfmtmsg(buf, buflen + 1, f, va_arg(args, void *));
+#endif