kurt@ks.almaden.ibm.com (Kurt Shoens) (05/04/90)
I got perl running on the '6000 both on 9005 and later levels. On 9005, perl liked being compiled with CC=xlc (i.e., ANSI compiler rules). On later releases, it liked cc better. The version of perl used was 3.0 Patchlevel 6. In general, the problems had to do with C compiler pickiness about the data types of pointers passed to routines like fwrite(). You can either go through the source and cast them to (void *) or you can use -D_NO_PROTO to keep the compiler from seeing the function prototypes. There was also trouble about the return types of sprintf, vsprintf, and signal. For sprintf/vsprintf, I found that perl always ignores the returned value, so I deleted perl's definition of their returned type. For signal, I think I fixed it by hand. In doio.c, there's trouble about pw_class, so I commented this out. I link perl with -ldbm -lPW -lm -lbsd. You have to put the -lbsd last, otherwise the symbol "mcan" will be undefined. The resulting perl fails two tests (comp.cpp and op.magic) and passes the rest. The same level on AIX/RT 2.2.1 passed all the tests, sigh. Since I'm backlevel on perl, don't pass all the tests, and don't have ship-level AIX3 software yet, I haven't reported the changes back to Larry Wall yet. -- Kurt Shoens, IBM Almaden Research Center, ...!uunet!ibmarc!kurt