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. Xiaojian
ejk@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"