[PATCH] AIX test shouldn't trip OS/400 PASE
Jarkko Hietaniemi [Thu, 19 Sep 2002 18:59:48 +0000 (21:59 +0300)]
Date: Thu, 19 Sep 2002 18:59:48 +0300
Message-Id: <20020919155948.GU208696@lyta.hut.fi>

Subject: [PATCH] more PASE tweakage
From: Jarkko Hietaniemi <jhi@iki.fi>
Date: Thu, 19 Sep 2002 18:01:44 +0300
Message-Id: <20020919150144.GJ208696@lyta.hut.fi>

p4raw-id: //depot/perl@17912

README.os400
hints/aix.sh

index 28a8a5f..1eec8b2 100644 (file)
@@ -71,21 +71,27 @@ latest PTFs to have this feature.  Scripts starting with
 
 =head2 Known Problems
 
-When compiling natively in PASE, there is no "oslevel" command as
-there is in AIX-- this will confuse the Configure script.  Therefore,
-before running Configure you may want to create a script (in your
-$PATH) called "oslevel" that prints out the level of AIX that your
-version of PASE supports.  Consult your documentation to find out
-what this is, or just use "4.3.3.0".
-
-When using sockets, you probably will want a signal handler for
-SIGPIPE since there seems to be some signal handling differences
-between AIX and PASE.  Especially, PASE doesn't seem to allow
-writing to a closed socket but instead throws SIGPIPE immediately.
-Because of this the subtest #18 of io_sock in IO::Socket fails.
-
-Some tests in Time::HiRes are failing because some of the system
-calls being used aren't really implemented in PASE.
+When compiling in PASE, there is no "oslevel" command.  Therefore,
+you may want to create a script called "oslevel" that echoes the
+level of AIX that your version of PASE runtime supports.  If you're
+unsure, consult your documentation or use "4.3.3.0".
+
+If you have test cases that fail, check for the existence of spool files.
+The test case may be trying to use a syscall that is not implemented
+in PASE.  To avoid the SIGILL, try setting the PASE_SYSCALL_NOSIGILL
+environment variable or have a handler for the SIGILL.  If you can
+compile programs for PASE, run the config script and edit config.sh
+when it gives you the option.  If you want to remove fchdir(), which
+isn't implement in V5R1, simply change the line that says:
+
+d_fchdir='define'
+
+to
+
+d_fchdir='undef'
+
+and then compile Perl.  The places where fchdir() is used have
+alternatives for systems that do not have fchdir() available.
 
 =head2 Perl on ILE
 
index bee1479..427412e 100644 (file)
@@ -215,7 +215,10 @@ cc*|xlc*) # cc should've been set by line 116 or so if empty.
        if test ! -x /usr/bin/$cc -a -x /usr/vac/bin/$cc; then
                case ":$PATH:" in
                *:/usr/vac/bin:*) ;;
-               *) cat <<EOF
+               *) if test ! -x /QOpenSys/usr/bin/$cc; then
+                       # The /QOpenSys/usr/bin/$cc saves us if we are
+                       # building natively in OS/400 PASE.
+                       cat <<EOF
 
 ***
 *** You either implicitly or explicitly specified an IBM C compiler,
@@ -224,7 +227,8 @@ cc*|xlc*) # cc should've been set by line 116 or so if empty.
 *** in your PATH.  I suggest adding that and retrying Configure.
 ***
 EOF
-                  exit 1
+                       exit 1
+                  fi 
                   ;;
                esac
        fi