The following problems have been reported by readers building the source code. I am just collecting these and making them available: I do not have access to all the systems to try and duplicate the problems and/or fix them. Please let me know of any additional problems.
Edit the file unpv22e/lib/unpipc.h and insert #ifdef HAVE_PTHREAD_H just before the Pthread_xxxx prototypes, (which start on line 427), and put a #endif just after the prototype for pr_thread_id. (New line 459.)
Edit the file unpv22e/lib/my_shm.c and change both occurrences of MAP_ANON to MAP_ANONYMOUS.
Optional: If you have superuser privileges, clean up the include header /usr/include/rpc/xdr.h: Remove the extra /* inside the commented-out #endif on line 26--this will stop a plethora of (harmless) compiler warnings about the embedded comment start token.
cd to unpv22e/lib and do a make.
Continue on as described in the README file.
Beware of the following comment in the system headers <mqueue.h> and <semaphore.h>:
/* THIS FILE is for conformance to IEEE POSIX 1003.1c. * It describes required symbols for the Realtime option * which is NOT SUPPORTED. */AIX 4.3.1 does conform to Unix 98, but the Posix realtime options are (unfortunately) an option to Unix 98.
This system also has a <semaphore.h> header, but it doesn't appear to fully support Posix semaphores (it appears to support only Posix memory-based semaphores). To prevent trying to use Posix semaphores, comment out the definition of HAVE_SEMAPHORE_H in the config.h header.