Mods to make perl under AIX 3.01 - and possible compiler bug

Richard Alan Brown rab at tauon.ph.unimelb.edu.au
Tue Feb 5 17:04:37 AEST 1991


The following modifications needed to be made to the perl (Release 3
patchlevel 28) source to compile on an IBM RS/6000 running AIX 3.01:

I am posting this:
	(a) for your information
	(b) for your ideas - particularly about problem 4. below.

1. in x2p/util.c

   the AIX xlc compiler throws up on:
   #ifdef undef
   ...it regards 'undef' as a illegal keyword
   I changed `undef' to `UNDEF'

2. in perl.h

   can't redefine sprintf(). Enclose within #ifndef AIX / #endif pair
   (and add -DAIX to CFLAGS in the makefile)

3. in doio.c

   In the conditional compilation determined by PWCLASS, the code assumes that
   if pw_class is not present, then pw_comment is. This is not true for AIX.
   I have set it to pw_gecos for want of a better idea.

4. in eval.c

   The compiler complains about multiple instances of the `case' 32 in the big
   switch statement. This appears to be a bug in the compiler, since inspection
   of the preprocessor output confirms that there  is only one instance of the
   case '32'. Changing the definition of O_COMPLEMENT from 32 to 247 made the
   problem disappear.

With the above mods, perl compiles and links. Doing 'make test' shows that
this version of perl fails the following tests:

	io.pipe	test 1
	op.exec	test 8

the others are ok. Since i am a perl novice, i haven't looked closely at this.

rab
------------------------------------------------------------------------
Richard Brown                     | E-mail: rab at tauon.ph.unimelb.EDU.AU
School of Physics                 | Phone : +61 3 344 5081
University of Melbourne           | Fax   : +61 3 347 4783
Parkville Victoria AUSTRALIA 3052 | Telex : AA35185



More information about the Comp.unix.aix mailing list