lixj@acf4.NYU.EDU (Xiaojian Li) (02/02/91)
From lixj@acf4.NYU.EDU Fri Feb 1 18:49:36 1991
Received: from ACF4.NYU.EDU by cmcl2.NYU.EDU (5.61/1.34)
id AA16408; Fri, 1 Feb 91 18:49:36 -0500
Received: by acf4.NYU.EDU (5.61/1.34)
id AA29050; Fri, 1 Feb 91 18:49:30 -0500
Date: Fri, 1 Feb 91 18:49:30 -0500
From: lixj@acf4.NYU.EDU (Xiaojian Li)
Message-Id: <9102012349.AA29050@acf4.NYU.EDU>
To: rnews@cmcl2.NYU.EDU, rosenblg@acf4.NYU.EDU
Relay-Version: version nyu B notes v1.6.1 1/11/90; site acf4.NYU.EDU
From: lixj@acf4.NYU.EDU (Xiaojian Li)
Date: 1 Feb 91 18:49 EST
Date-Received: 1 Feb 91 18:49 EST
Subject: Perl and Patch for AIX3.1, my experience
Message-ID: <2540003@acf4.NYU.EDU>
Path: acf4!lixj
Newsgroups: comp.lang.perl
Posting-Version: version nyu B notes v1.6.1 1/11/90; site acf4.NYU.EDU
Organization: New York University
Dear Netters, here is some of my experience with "patch" and "perl" on
IBM6000/320.
apparently "xlc" is too strict to the packages, it complained
redeclaration of sprintf. Ok, I am smart enough to comment out lines like
int sprintf();
and use bsdcc(which is just xlc with many macros defined and libraries called
in different order). This worked! Perl failed one official test:
------------------------------------------------
#!./perl
print (mkdir('blurfl',0777) ? "ok 1\n" : "not ok 1\n");
print (mkdir('blurfl',0777) ? "not ok 2\n" : "ok 2\n");
print ($! =~ /exists/ ? "ok 3\n" : "not ok 3\n");
print $!, "\n";
print (-d 'blurfl' ? "ok 4\n" : "not ok 4\n");
print (rmdir('blurfl') ? "ok 5\n" : "not ok 5\n");
print (rmdir('blurfl') ? "not ok 6\n" : "ok 6\n");
print ($! =~ /such|exist/ ? "ok 7\n" : "not ok 7\n");
print $!, "\n";
ok 1
ok 2
not ok 3
Do not specify an existing file.
ok 4
ok 5
ok 6
ok 7
A file or directory in the path name does not exist.
------------------------------------------------
I guess I can not call it a fail because IBM uses a different English.
Hope this would help those who want to install perl and patch under AIX3.1
Have fun.
Xiaojianejk@ux2.cso.uiuc.edu (Ed Kubaitis) (02/03/91)
Here is a recipe for building perl patchlevel 44 on AIX 3.1 (3001) that passes
all tests in "make test". Note that "cc", not "xlc" or "bsdcc" is used.
o used perl-3.0.41.tar.Z from prep.ai.mit.edu
o applied patches 42, 43, & 44
o ./Configure
Default answer on all questions, EXCEPT:
"Do you wish to attempt to use the malloc that comes with perl? [y] n"
o apply attached patch which:
o defines SYMLINK in config.h
o prevents redefintion of sprintf in perl.h
o inserts "#pragma alloca" in x2p/a2p.y
o make depend
o make
o make test
o make install
----------------------------------
Ed Kubaitis (ejk@uxh.cso.uiuc.edu)
Computing Services Office - University of Illinois, Urbana
Attachment: patch for config.h, perl.h, x2p/a2p.y
==============================================================================
*** config.h- Mon Jan 14 10:16:13 1991
--- config.h Mon Jan 14 10:16:54 1991
***************
*** 418,424 ****
* This symbol, if defined, indicates that the symlink routine is available
* to create symbolic links.
*/
! /*#undef SYMLINK /**/
/* SYSCALL:
* This symbol, if defined, indicates that the syscall routine is available
--- 418,424 ----
* This symbol, if defined, indicates that the symlink routine is available
* to create symbolic links.
*/
! #define SYMLINK /**/
/* SYSCALL:
* This symbol, if defined, indicates that the syscall routine is available
*** perl.h- Mon Jan 14 08:09:19 1991
--- perl.h Mon Jan 14 08:23:20 1991
***************
*** 415,421 ****
# define I286
#endif
! #ifndef __STDC__
#ifdef CHARSPRINTF
char *sprintf();
#else
--- 415,421 ----
# define I286
#endif
! #if !defined(__STDC__) && !defined(_IBMR2)
#ifdef CHARSPRINTF
char *sprintf();
#else
*** x2p/a2p.y- Mon Jan 14 08:11:01 1991
--- x2p/a2p.y Mon Jan 14 08:11:34 1991
***************
*** 22,27 ****
--- 22,28 ----
*
*/
+ #pragma alloca
#include "INTERN.h"
#include "a2p.h"