Remove the VM/ESA port.
authorNicholas Clark <nick@ccl4.org>
Thu, 30 Aug 2012 16:25:53 +0000 (18:25 +0200)
committerNicholas Clark <nick@ccl4.org>
Fri, 31 Aug 2012 12:13:01 +0000 (14:13 +0200)
VM/ESA was a mainframe OS. IBM ended service on it in June 2003. It was
superseded by Z/VM.

31 files changed:
Cross/Makefile-cross-SH
MANIFEST
Makefile.SH
Porting/perlhist_calculate.pl
README.bs2000
README.os390
README.vmesa [deleted file]
ext/DynaLoader/dl_vmesa.xs [deleted file]
ext/Errno/Errno_pm.PL
hints/vmesa.sh [deleted file]
lib/perl5db.pl
perl.c
perl.h
plan9/mkfile
pod/perl.pod
pod/perl58delta.pod
pod/perldelta.pod
pod/perlebcdic.pod
pod/perlfunc.pod
pod/perlport.pod
pp_sys.c
t/io/pipe.t
t/op/magic.t
thread.h
util.c
vmesa/Makefile [deleted file]
vmesa/vmesa.c [deleted file]
vmesa/vmesaish.h [deleted file]
win32/Makefile
win32/makefile.mk
x2p/a2p.h

index 1f9a226..65d7801 100644 (file)
@@ -1333,9 +1333,6 @@ os390|posix-bc)
         cd ..
     fi
     ;;
-vmesa)
-    # Do nothing in VM/ESA.
-    ;;
 *)
     echo "'$osname' is an EBCDIC system I don't know that well." >&4
     ;;
index 274c325..dde4011 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -3702,7 +3702,6 @@ ext/DynaLoader/dl_next.xs NeXT implementation
 ext/DynaLoader/dl_none.xs      Stub implementation
 ext/DynaLoader/dl_symbian.xs   Symbian implementation
 ext/DynaLoader/dlutils.c       Dynamic loader utilities for dl_*.xs files
-ext/DynaLoader/dl_vmesa.xs     VM/ESA implementation
 ext/DynaLoader/dl_vms.xs       VMS implementation
 ext/DynaLoader/dl_win32.xs     Win32 implementation
 ext/DynaLoader/DynaLoader_pm.PL        Dynamic Loader perl module
@@ -4190,7 +4189,6 @@ hints/unicos.sh                   Hints for named architecture
 hints/unisysdynix.sh           Hints for named architecture
 hints/utekv.sh                 Hints for named architecture
 hints/uwin.sh                  Hints for named architecture
-hints/vmesa.sh                 Hints for named architecture
 hints/vos.sh                   Hints for named architecture
 hv.c                           Hash value code
 hv.h                           Hash value header
@@ -4889,7 +4887,6 @@ README.solaris                    Perl notes for Solaris
 README.symbian                 Perl notes for Symbian
 README.tru64                   Perl notes for Tru64
 README.tw                      Perl for Traditional Chinese (in Big5)
-README.vmesa                   Perl notes for VM/ESA
 README.vms                     Notes about installing the VMS port
 README.vos                     Perl notes for Stratus VOS
 README.win32                   Perl notes for Windows
@@ -5590,9 +5587,6 @@ utils/shasum.PL                   filter for computing SHA digests (analogous to md5sum)
 utils/splain.PL                        Stand-alone version of diagnostics.pm
 utils/xsubpp.PL                        External subroutine preprocessor
 utils/zipdetails.PL                    display the internal structure of zip files
-vmesa/Makefile                 VM/ESA Makefile
-vmesa/vmesa.c                  VM/ESA-specific C code for Perl core
-vmesa/vmesaish.h               VM/ESA-specific C header for Perl core
 vms/descrip_mms.template       Template MM[SK] description file for build
 vms/ext/Filespec.pm            VMS-Unix file syntax interconversion
 vms/ext/filespec.t             See if VMS::Filespec functions work
index 44ab155..5194ecf 100755 (executable)
@@ -1647,9 +1647,6 @@ os390|posix-bc)
         cd ..
     fi
     ;;
-vmesa)
-    # Do nothing in VM/ESA.
-    ;;
 *)
     echo "'$osname' is an EBCDIC system I don't know that well." >&4
     ;;
index 2bb3104..55a4ce3 100755 (executable)
@@ -141,7 +141,7 @@ sub calc_longtable {
 
        say "Configure: $configure_size 1";
 
-       foreach my $dir (qw(Cross djgpp emacs epoc h2pl hints mad mint mpeix NetWare os2 plan9 Porting qnx symbian utils vmesa vms vos win32 x2p)) {
+       foreach my $dir (qw(Cross djgpp emacs epoc h2pl hints mad mint mpeix NetWare os2 plan9 Porting qnx symbian utils vms vos win32 x2p)) {
                calc_dir($dir);
        }
 }
index 6868557..a1ea777 100644 (file)
@@ -218,7 +218,7 @@ L<INSTALL>, L<perlport>.
 
 =head2 Mailing list
 
-If you are interested in the VM/ESA, z/OS (formerly known as OS/390)
+If you are interested in the z/OS (formerly known as OS/390)
 and POSIX-BC (BS2000) ports of Perl then see the perl-mvs mailing list.
 To subscribe, send an empty message to perl-mvs-subscribe@perl.org.
 
index 6e2d49e..645d10e 100644 (file)
@@ -410,7 +410,7 @@ L<INSTALL>, L<perlport>, L<perlebcdic>, L<ExtUtils::MakeMaker>.
 
 =head2 Mailing list for Perl on OS/390
 
-If you are interested in the VM/ESA, z/OS (formerly known as OS/390)
+If you are interested in the z/OS (formerly known as OS/390)
 and POSIX-BC (BS2000) ports of Perl then see the perl-mvs mailing list.
 To subscribe, send an empty message to perl-mvs-subscribe@perl.org.
 
diff --git a/README.vmesa b/README.vmesa
deleted file mode 100644 (file)
index ae8e386..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-
-This document is written in pod format hence there are punctuation
-characters in odd places.  Do not worry, you've apparently got
-the ASCII->EBCDIC translation worked out correctly.  You can read
-more about pod in pod/perlpod.pod or the short summary in the
-INSTALL file.
-
-=head1 NAME
-
-perlvmesa - building and installing Perl for VM/ESA.
-
-=head1 SYNOPSIS
-
-This document will help you Configure, build, test and install Perl
-on VM/ESA.
-
-=head1 DESCRIPTION
-
-This is a fully ported perl for VM/ESA 2.3.0.  It may work on
-other versions, but that's the one we've tested it on.
-
-If you've downloaded the binary distribution, it needs to be
-installed below /usr/local.  Source code distributions have an
-automated "make install" step that means you do not need to extract
-the source code below /usr/local (though that is where it will be
-installed by default).  You may need to worry about the networking
-configuration files discussed in the last bullet below.
-
-=head2 Unpacking Perl Distribution on VM/ESA
-
-To extract an ASCII tar archive on VM/ESA, try this:
-
-   pax -o to=IBM-1047,from=ISO8859-1 -r < latest.tar
-
-=head2 Setup Perl and utilities on VM/ESA
-
-GNU make for VM/ESA, which may be required for the build of perl,
-is available from:
-
-L<http://vm.marist.edu/~neale/vmoe.html>
-
-=head2 Configure Perl on VM/ESA
-
-Once you've unpacked the distribution, run Configure (see INSTALL for
-full discussion of the Configure options), and then run make, then
-"make test" then "make install" (this last step may require UID=0
-privileges).
-
-There is a "hints" file for vmesa that specifies the correct values
-for most things.  Some things to watch out for are:
-
-=over 4
-
-=item *
-
-this port does support dynamic loading but it's not had much testing
-
-=item *
-
-Don't turn on the compiler optimization flag "-O".  There's
-a bug in the compiler (APAR PQ18812) that generates some bad code
-the optimizer is on.
-
-=item *
-
-As VM/ESA doesn't fully support the fork() API programs relying on
-this call will not work. I've replaced fork()/exec() with spawn()
-and the standalone exec() with spawn(). This has a side effect when
-opening unnamed pipes in a shell script: there is no child process
-generated under.
-
-=item *
-
-At the moment the hints file for VM/ESA basically bypasses all of the
-automatic configuration process.  This is because Configure relies on:
-1. The header files living in the Byte File System (you could put the
-there if you want); 2. The C preprocessor including the #include 
-statements in the preprocessor output (.i) file.
-
-=back
-
-=head2 Testing Anomalies of Perl on VM/ESA
-
-The "make test" step runs a Perl Verification Procedure, usually before
-installation.  As the 5.6.1 kit was being assembled
-the following "failures" were known to appear on some machines
-during "make test" (mostly due to ASCII vs. EBCDIC conflicts),
-your results may differ:
-
-[the list of failures being compiled]
-
-=head2 Usage Hints for Perl on VM/ESA
-
-When using perl on VM/ESA please keep in mind that the EBCDIC and ASCII
-character sets are different.  Perl builtin functions that may behave
-differently under EBCDIC are mentioned in the perlport.pod document.
-
-OpenEdition (UNIX System Services) does not (yet) support the #! means
-of script invocation.
-See:
-
-    head `whence perldoc`
-
-for an example of how to use the "eval exec" trick to ask the shell to
-have perl run your scripts for you.
-
-=head1 AUTHORS
-
-Neale Ferguson.
-
-=head1 SEE ALSO
-
-L<INSTALL>, L<perlport>, L<perlebcdic>.
-
-=head2 Mailing list for Perl on VM/ESA
-
-If you are interested in the VM/ESA, z/OS (formerly known as OS/390)
-and POSIX-BC (BS2000) ports of Perl then see the perl-mvs mailing list.
-To subscribe, send an empty message to perl-mvs-subscribe@perl.org.
-
-See also:
-
-L<http://lists.perl.org/list/perl-mvs.html>
-
-There are web archives of the mailing list at:
-
-=over 4
-
-=item *
-
-L<http://www.xray.mpe.mpg.de/mailing-lists/perl-mvs/>
-
-=item *
-
-L<http://archive.develooper.com/perl-mvs@perl.org/>
-
-=back
-
-=cut
-
diff --git a/ext/DynaLoader/dl_vmesa.xs b/ext/DynaLoader/dl_vmesa.xs
deleted file mode 100644 (file)
index 5124722..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-/* dl_vmesa.xs
- *
- * Platform:   VM/ESA, possibly others which use dllload etc.
- * Author:     Neale Ferguson (neale@mailbox.tabnsw.com.au)
- * Created:    23rd September, 1998
- *
- *
- */
-/* Porting notes:
-   Definition of VM/ESA dynamic Linking functions
-   ==============================================
-   In order to make this implementation easier to understand here is a
-   quick definition of the VM/ESA Dynamic Linking functions which are
-   used here.
-   dlopen
-   ------
-     void *
-     dlopen(const char *path)
-     This function takes the name of a dynamic object file and returns
-     a descriptor which can be used by dlsym later. It returns NULL on
-     error.
-   dllsym
-   ------
-     void *
-     dlsym(void *handle, char *symbol)
-     Takes the handle returned from dlopen and the name of a symbol to
-     get the address of. If the symbol was found a pointer is
-     returned.  It returns NULL on error.
-   dlerror
-   -------
-     char * dlerror()
-     Returns a null-terminated string which describes the last error
-     that occurred with the other dll functions. After each call to
-     dlerror the error message will be reset to a null pointer. The
-     SaveError function is used to save the error as soo as it happens.
-   Return Types
-   ============
-   In this implementation the two functions, dl_load_file &
-   dl_find_symbol, return void *. This is because the underlying SunOS
-   dynamic linker calls also return void *.  This is not necessarily
-   the case for all architectures. For example, some implementation
-   will want to return a char * for dl_load_file.
-   If void * is not appropriate for your architecture, you will have to
-   change the void * to whatever you require. If you are not certain of
-   how Perl handles C data types, I suggest you start by consulting    
-   Dean Roerich's Perl 5 API document. Also, have a look in the typemap
-   file (in the ext directory) for a fairly comprehensive list of types
-   that are already supported. If you are completely stuck, I suggest you
-   post a message to perl5-porters, comp.lang.perl.misc or if you are really
-   desperate to me.
-   Remember when you are making any changes that the return value from
-   dl_load_file is used as a parameter in the dl_find_symbol
-   function. Also the return value from find_symbol is used as a parameter
-   to install_xsub.
-   Dealing with Error Messages
-   ============================
-   In order to make the handling of dynamic linking errors as generic as
-   possible you should store any error messages associated with your
-   implementation with the StoreError function.
-   In the case of VM/ESA the function dlerror returns the error message
-   associated with the last dynamic link error. As the VM/ESA dynamic
-   linker functions return NULL on error every call to a VM/ESA dynamic
-   dynamic link routine is coded like this
-       RETVAL = dlopen(filename) ;
-       if (RETVAL == NULL)
-           SaveError(aTHX_ "%s",dlerror()) ;
-   Note that SaveError() takes a printf format string. Use a "%s" as
-   the first parameter if the error may contain and % characters.
-*/
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-#include <dll.h>
-#include "dlutils.c"   /* SaveError() etc      */
-static void
-dl_private_init(pTHX)
-{
-    (void)dl_generic_private_init(aTHX);
-}
-MODULE = DynaLoader    PACKAGE = DynaLoader
-BOOT:
-    (void)dl_private_init(aTHX);
-void
-dl_load_file(filename, flags=0)
-    char *     filename
-    int                flags
-    PREINIT:
-    void *retv;
-    CODE:
-    if (flags & 0x01)
-       Perl_warn(aTHX_ "Can't make loaded symbols global on this platform while loading %s",filename);
-    DLDEBUG(1,PerlIO_printf(Perl_debug_log, "dl_load_file(%s,%x):\n", filename,flags));
-    retv = dlopen(filename) ;
-    DLDEBUG(2,PerlIO_printf(Perl_debug_log, " libref=%lx\n", (unsigned long) retv));
-    ST(0) = sv_newmortal() ;
-    if (retv == NULL)
-       SaveError(aTHX_ "%s",dlerror()) ;
-    else
-       sv_setiv( ST(0), PTR2IV(retv) );
-void
-dl_find_symbol(libhandle, symbolname)
-    void *     libhandle
-    char *     symbolname
-    PREINIT:
-    void *retv;
-    CODE:
-    DLDEBUG(2, PerlIO_printf(Perl_debug_log,
-                            "dl_find_symbol(handle=%lx, symbol=%s)\n",
-                            (unsigned long) libhandle, symbolname));
-    retv = dlsym(libhandle, symbolname);
-    DLDEBUG(2, PerlIO_printf(Perl_debug_log,
-                            "  symbolref = %lx\n", (unsigned long) retv));
-    ST(0) = sv_newmortal() ;
-    if (retv == NULL)
-       SaveError(aTHX_ "%s",dlerror()) ;
-    else
-       sv_setiv( ST(0), PTR2IV(retv) );
-void
-dl_undef_symbols()
-    CODE:
-# These functions should not need changing on any platform:
-void
-dl_install_xsub(perl_name, symref, filename="$Package")
-    char *             perl_name
-    void *             symref
-    const char *       filename
-    CODE:
-    DLDEBUG(2,PerlIO_printf(Perl_debug_log, "dl_install_xsub(name=%s, symref=%lx)\n",
-               perl_name, (unsigned long) symref));
-    ST(0) = sv_2mortal(newRV((SV*)newXS_flags(perl_name,
-                                             (void(*)(pTHX_ CV *))symref,
-                                             filename, NULL,
-                                             XS_DYNAMIC_FILENAME)));
-char *
-dl_error()
-    CODE:
-    dMY_CXT;
-    RETVAL = dl_last_error ;
-    OUTPUT:
-    RETVAL
-#if defined(USE_ITHREADS)
-
-void
-CLONE(...)
-    CODE:
-    MY_CXT_CLONE;
-
-    /* MY_CXT_CLONE just does a memcpy on the whole structure, so to avoid
-     * using Perl variables that belong to another thread, we create our 
-     * own for this thread.
-     */
-    MY_CXT.x_dl_last_error = newSVpvn("", 0);
-
-#endif
-
-# end.
index 439f254..02ac226 100644 (file)
@@ -2,7 +2,7 @@ use ExtUtils::MakeMaker;
 use Config;
 use strict;
 
-our $VERSION = "1.15";
+our $VERSION = "1.16";
 
 my %err = ();
 my %wsa = ();
@@ -125,9 +125,6 @@ sub get_files {
     } elsif ($^O eq 'os390') {
        # OS/390 C compiler doesn't generate #file or #line directives
        $file{'/usr/include/errno.h'} = 1;
-    } elsif ($^O eq 'vmesa') {
-       # OS/390 C compiler doesn't generate #file or #line directives
-       $file{'../../vmesa/errno.h'} = 1;
     } elsif ($Config{archname} eq 'epoc') {
        # Watch out for cross compiling for EPOC (usually done on linux)
        $file{'/usr/local/epocemx/epocsdk/include/libc/sys/errno.h'} = 1;
diff --git a/hints/vmesa.sh b/hints/vmesa.sh
deleted file mode 100644 (file)
index 430ded9..0000000
+++ /dev/null
@@ -1,342 +0,0 @@
-# hints/vmesa.sh
-#
-# VM/ESA hints by Neale Ferguson (neale@mailbox.tabnsw.com.au)
-#
-# Currently (1999-Jan-09) Configure cannot be used in VM/ESA because
-# too many things are done differently in the C compiler environment.
-# Therefore the hints file is hand-crafted. --jhi@iki.fi
-# 
-
-case "$archname" in
-'') archname="$osname" ;;
-esac
-bin='/usr/local/bin'
-binexp='/usr/local/bin'
-byacc='byacc'
-c='\c'
-cc='c89'
-ccflags="-D_OE_SOCKETS -DOLD_PTHREADS_API -DYYDYNAMIC -DDEBUGGING -I.." \
-       "-I/usr/local/include -W c,hwopts\\\(string\\\),langlvl\\\(ansi\\\)"
-clocktype='clock_t'
-cryptlib="n"
-d_Gconvert='gcvt((x),(n),(b))'
-d_access='define'
-d_alarm='define'
-d_archlib='define'
-# randbits='15'
-archobjs="vmesa.o"
-d_attribute_format='undef'
-d_attribute_malloc='undef'
-d_attribute_nonnull='undef'
-d_attribute_noreturn='undef'
-d_attribute_pure='undef'
-d_attribute_unused='undef'
-d_attribute_warn_unused_result='undef'
-d_bcmp='define'
-d_bcopy='define'
-d_bsd='undef'
-d_bsdgetpgrp='undef'
-d_bsdsetpgrp='undef'
-d_bzero='define'
-d_casti32='define'
-d_castneg='define'
-d_charvspr='undef'
-d_chown='define'
-d_chroot='undef'
-d_chsize='undef'
-d_closedir='define'
-d_const='define'
-d_crypt='undef'
-d_csh='undef'
-d_cuserid='define'
-d_dbl_dig='define'
-d_difftime='define'
-d_dirnamlen='undef'
-d_dlerror='define'
-d_dlopen='define'
-d_dlsymun='define'
-d_dosuid='undef'
-d_dup2='define'
-d_endgrent='undef'
-d_endpwent='undef'
-d_eofnblk='define'
-d_eunice='undef'
-d_fchmod='define'
-d_fchown='define'
-d_fcntl='define'
-d_fd_macros='define'
-d_fd_set='define'
-d_fds_bits='define'
-d_fgetpos='define'
-d_flexfnam='define'
-d_flock='undef'
-d_fork='undef'
-d_fpathconf='define'
-d_fsetpos='define'
-d_ftime='undef'
-d_getgrent='undef'
-d_gethent='define'
-d_gethname='undef'
-d_getlogin='define'
-d_getpgid='undef'
-d_getpgrp='define'
-d_getpgrp2='undef'
-d_getppid='define'
-d_getprior='undef'
-d_getpwent='undef'
-d_gettimeod='define'
-d_gnulibc='undef'
-d_htonl='define'
-d_index='define'
-d_inetaton='undef'
-d_isascii='define'
-d_killpg='define'
-d_link='define'
-d_locconv='define'
-d_lockf='define'
-d_longdbl='undef'
-d_longllong='undef'
-d_lstat='define'
-d_mblen='define'
-d_mbstowcs='define'
-d_mbtowc='define'
-d_memcmp='define'
-d_memcpy='define'
-d_memmove='define'
-d_memset='define'
-d_mkdir='define'
-d_mkfifo='define'
-d_mktime='define'
-d_msg='define'
-d_msgctl='define'
-d_msgget='define'
-d_msgrcv='define'
-d_msgsnd='define'
-d_mymalloc='undef'
-d_nice='undef'
-d_oldsock='undef'
-d_open3='define'
-d_pathconf='define'
-d_pause='define'
-d_phostname='undef'
-d_pipe='define'
-d_poll='undef'
-d_portable='define'
-d_pwage='undef'
-d_pwchange='undef'
-d_pwclass='undef'
-d_pwcomment='undef'
-d_pwexpire='undef'
-d_pwquota='undef'
-d_readdir='define'
-d_readlink='define'
-d_rename='define'
-d_rewinddir='define'
-d_rmdir='define'
-d_safebcpy='define'
-d_safemcpy='undef'
-d_sanemcmp='define'
-d_sched_yield='undef'
-d_seekdir='undef'
-d_select='define'
-d_sem='define'
-d_semctl='define'
-d_semctl_semid_ds='define'
-d_semget='define'
-d_semop='define'
-d_setegid='define'
-d_seteuid='define'
-d_setgrent='undef'
-d_setgrps='undef'
-d_setlinebuf='undef'
-d_setlocale='define'
-d_setpgid='define'
-d_setpgrp='define'
-d_setpgrp2='undef'
-d_setprior='undef'
-d_setpwent='undef'
-d_setregid='undef'
-d_setresgid='undef'
-d_setresuid='undef'
-d_setreuid='undef'
-d_setrgid='undef'
-d_setruid='undef'
-d_setsid='define'
-d_sfio='undef'
-d_shm='define'
-d_shmat='define'
-d_shmatprototype='define'
-d_shmctl='define'
-d_shmdt='define'
-d_shmget='define'
-d_sigaction='define'
-d_sigsetjmp='define'
-d_socket='define'
-d_sockpair='undef'
-d_statblks='undef'
-d_stdio_cnt_lval='undef'
-d_stdio_ptr_lval='undef'
-d_stdiobase='undef'
-d_stdstdio='undef'
-d_strchr='define'
-d_strcoll='define'
-d_strctcpy='undef'
-d_strerrm='strerror(e)'
-d_strerror='define'
-d_strtod='define'
-d_strtol='define'
-d_strtoul='define'
-d_strxfrm='define'
-d_suidsafe='undef'
-d_symlink='define'
-d_syscall='undef'
-d_sysconf='define'
-d_sysernlst="n"
-d_syserrlst='undef'
-d_system='define'
-d_tcgetpgrp='define'
-d_tcsetpgrp='define'
-d_telldir='undef'
-d_time='define'
-d_times='define'
-d_truncate='define'
-d_tzname='define'
-d_umask='define'
-d_uname='define'
-d_union_semun='undef'
-d_vfork='define'
-d_void_closedir='undef'
-d_voidsig='define'
-d_voidtty="n"
-d_volatile='define'
-d_vprintf='define'
-d_waitpid='define'
-d_wait4='undef'
-d_wcstombs='define'
-d_wctomb='define'
-d_xenix='undef'
-db_hashtype='u_int32_t'
-db_prefixtype='size_t'
-direntrytype='struct dirent'
-dlext='none'
-dlsrc='dl_vmesa.xs'
-dynamic_ext=''
-eagain='EAGAIN'
-ebcdic='define'
-exe_ext=''
-fpostype='fpos_t'
-freetype='void'
-groupstype='gid_t'
-h_fcntl='false'
-h_sysfile='true'
-hint='recommended'
-i_arpainet="define"
-i_bsdioctl="n"
-i_db='undef'
-i_dbm='define'
-i_dirent='define'
-i_dld='define'
-i_dlfcn='define'
-i_fcntl='undef'
-i_float='define'
-i_gdbm='define'
-i_grp='define'
-i_limits='define'
-i_locale='define'
-i_malloc='undef'
-i_math='define'
-i_memory='define'
-i_ndbm='define'
-i_neterrno='undef'
-i_niin='define'
-i_pwd='define'
-i_rpcsvcdbm='undef'
-i_sfio='undef'
-i_sgtty='undef'
-i_stdarg='define'
-i_stddef='define'
-i_stdlib='define'
-i_string='define'
-i_sysdir='define'
-i_sysfile='define'
-i_sysfilio='undef'
-i_sysin='undef'
-i_sysioctl='define'
-i_sysndir='undef'
-i_sysparam='undef'
-i_sysresrc='define'
-i_sysselct='undef'
-i_syssockio="n"
-i_sysstat='define'
-i_systime='define'
-i_systimek='undef'
-i_systimes='define'
-i_systypes='define'
-i_sysun='define'
-i_syswait='define'
-i_termio='undef'
-i_termios='define'
-i_time='undef'
-i_unistd='define'
-i_utime='define'
-i_values='undef'
-i_varargs='undef'
-i_varhdr='stdarg.h'
-i_vfork='undef'
-ld='c89'
-ldflags='-L/usr/local/lib -L.'
-lib_ext='.a'
-libc=''
-libperl='libperl.a'
-libpth='/usr/local/lib /lib /usr/lib'
-libs='-l//posxsock -l//vmmtlib -lgdbm -lxpg4'
-libswanted='gdbm'
-lint="n"
-locincpth='/usr/local/include /opt/local/include /usr/gnu/include /opt/gnu/include /usr/GNU/include /opt/GNU/include'
-loclibpth='/usr/local/lib /opt/local/lib /usr/gnu/lib /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib'
-make_set_make='#'
-make='gnumake'
-mallocobj=''
-mallocsrc=''
-malloctype='void *'
-netdb_hlen_type='size_t'
-netdb_host_type='char *'
-netdb_name_type='const char *'
-netdb_net_type='in_addr_t'
-o_nonblock='O_NONBLOCK'
-obj_ext='.o'
-optimize='undef'
-prefix='/usr/local'
-prefixexp='/usr/local'
-prototype='define'
-ranlib=':'
-rd_nodata='-1'
-scriptdir='/usr/local/bin'
-scriptdirexp='/usr/local/bin'
-selecttype='fd_set *'
-shmattype='void *'
-shrpenv=''
-signal_t='void'
-sig_name_init='"ZERO","HUP","INT","ABRT","ILL","POLL","URG","STOP","FPE","KILL","BUS","SEGV","SYS","PIPE","ALRM","TERM","USR1","USR2","NUM18","CONT","CHLD","TTIN","TTOU","IO","QUIT","TSTP","TRAP","NUM27","WINCH","XCPU","XFSZ","VTALRM","PROF","NUM33","NUM34","NUM35","NUM36","NUM3","NUM38","NUM39","NUM40","NUM41","NUM42","NUM43","NUM44","NUM45","NUM46","NUM47","NUM48","NUM49","CLD"'
-sig_num_init='0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,20 '
-sizetype='size_t'
-so='.a'
-ssizetype='ssize_t'
-static_ext='Data/Dumper Digest/MD5 Fcntl Filter/Util/Call GDBM_File IO IPC/SysV List/Util MIME/Base64 NDBM_File Opcode PerlIO/scalar POSIX Socket Storable Time/HiRes Time/Piece attributes re'
-stdchar='char'
-stdio_cnt='(fp)->__countIn'
-stdio_ptr='(fp)->__bufPtr'
-timeincl='sys/time.h '
-timetype='time_t'
-uidtype='uid_t'
-usedl='define'
-usemymalloc='n'
-usenm='false'
-useopcode='true'
-useperlio='undef'
-useposix='true'
-usesfio='false'
-useshrplib='false'
-usethreads='y'
-usevfork='true'
-vi='x'
index f07467f..0751738 100644 (file)
@@ -523,7 +523,7 @@ BEGIN {
 # Debugger for Perl 5.00x; perl5db.pl patch level:
 use vars qw($VERSION $header);
 
-$VERSION = '1.39_02';
+$VERSION = '1.39_03';
 
 $header = "perl5db.pl version $VERSION";
 
@@ -8310,7 +8310,6 @@ my @pods = qw(
     util
     uts
     var
-    vmesa
     vms
     vos
     win32
diff --git a/perl.c b/perl.c
index 9d2831c..8444218 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -3451,10 +3451,6 @@ S_minus_v(pTHX)
        PerlIO_printf(PerlIO_stdout(),
                      "Stratus VOS port by Paul.Green@stratus.com, 1997-2002\n");
 #endif
-#ifdef __OPEN_VM
-       PerlIO_printf(PerlIO_stdout(),
-                     "VM/ESA port by Neale Ferguson, 1998-1999\n");
-#endif
 #ifdef POSIX_BC
        PerlIO_printf(PerlIO_stdout(),
                      "BS2000 (POSIX) port by Start Amadeus GmbH, 1998-1999\n");
diff --git a/perl.h b/perl.h
index f42849c..2cc4e91 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -2555,11 +2555,6 @@ typedef SV PADNAME;
 #  include "iperlsys.h"
 #endif
 
-#if defined(__OPEN_VM)
-#   include "vmesa/vmesaish.h"
-#   define ISHISH "vmesa"
-#endif
-
 #ifdef DOSISH
 #   if defined(OS2)
 #       include "os2ish.h"
@@ -3904,7 +3899,7 @@ double atof (const char*);
 /* All of these are in stdlib.h or time.h for ANSI C */
 Time_t time();
 struct tm *gmtime(), *localtime();
-#if defined(OEMVS) || defined(__OPEN_VM)
+#if defined(OEMVS)
 char *(strchr)(), *(strrchr)();
 char *(strcpy)(), *(strcat)();
 #else
index 0c59a99..51c682d 100644 (file)
@@ -23,7 +23,7 @@ installman3dir = /sys/man/2
 podnames = perl perlbook perldata perldebtut perldiag perldsc perlform perlfunc perlipc perllexwarn perllol perlmod perlmodlib perlmodinstall perlnewmod perlop perlootut perlopentut perlpacktut perlpod perlport perlrequick perlretut perlref perlreftut perlrequick perlrun perlsec perlstyle perlsub perlsyn perltie perltrap perlutil perlunifaq perluniintro perlvar
 faqpodnames = perlfaq perlfaq1 perlfaq2 perlfaq3 perlfaq4 perlfaq5 perlfaq6 perlfaq7 perlfaq8 perlfaq9
 advpodnames = perlapi perlapio perlcall perlclib perlcompile perldebguts perldbmfilter perldebug perldelta perldiag perlebcdic perlembed perlfilter perlfork perlguts perlhack perlintern perliol perllocale perlnumber perlobj perlpodspec perlre perlthrtut perltodo perlunicode perlxs perlxs perlxstut
-archpodnames = perlaix perlamiga perlbeos perlbs2000 perlce perlcygwin perldgux perldos perlepoc perlfreebsd perlhpux perlhurd perlirix perlmacos perlmpeix perlnetware perlos2 perlos390 perlos400 perlplan9 perlqnx perlsolaris perltru64 perlvmesa perlvms perlvos perlwin32
+archpodnames = perlaix perlamiga perlbeos perlbs2000 perlce perlcygwin perldgux perldos perlepoc perlfreebsd perlhpux perlhurd perlirix perlmacos perlmpeix perlnetware perlos2 perlos390 perlos400 perlplan9 perlqnx perlsolaris perltru64 perlvms perlvos perlwin32
 histpods = perl5004delta perl5005delta perl561delta perl56delta perl570delta perl571delta perl572delta perl573delta perl58delta perlhist
 
 libpods = ${podnames:%=pod/%.pod}
index 4233b5b..adda1db 100644 (file)
@@ -253,7 +253,6 @@ aux a2p c2ph h2ph h2xs perlbug pl2pm pod2html pod2man s2p splain xsubpp
     perlsolaris        Perl notes for Solaris
     perlsymbian        Perl notes for Symbian
     perltru64          Perl notes for Tru64
-    perlvmesa          Perl notes for VM/ESA
     perlvms            Perl notes for VMS
     perlvos            Perl notes for Stratus VOS
     perlwin32          Perl notes for Windows
index 9777b55..1a4abe9 100644 (file)
@@ -2018,7 +2018,9 @@ EBCDIC platforms (z/OS (also known as OS/390), POSIX-BC, and VM/ESA)
 have been regained.  Many test suite tests still fail and the
 co-existence of Unicode and EBCDIC isn't quite settled, but the
 situation is much better than with Perl 5.6.  See L<perlos390>,
-L<perlbs2000> (for POSIX-BC), and L<perlvmesa> for more information.
+L<perlbs2000> (for POSIX-BC), and perlvmesa for more information.
+(B<Note:> support for VM/ESA was removed in Perl v5.18.0. The relevant
+information was in F<README.vmesa>)
 
 =item *
 
index 7fa0d4e..a5c6024 100644 (file)
@@ -286,13 +286,14 @@ XXX
 
 =head2 Discontinued Platforms
 
-XXX List any platforms that this version of perl no longer compiles on.
-
 =over 4
 
-=item XXX-some-platform
+=item VM/ESA
 
-XXX
+Support for VM/ESA has been removed. The port was tested on 2.3.0, which
+IBM ended service on in March 2002. 2.4.0 ended service in June 2003, and
+was superseded by Z/VM. The current version of Z/VM is V6.2.0, and scheduled
+for end of service on 2015/04/30.
 
 =back
 
index 2519bc0..ecf94d1 100644 (file)
@@ -1374,10 +1374,6 @@ or z/OS.
 
 =back
 
-=head2 VM/ESA?
-
-XXX.
-
 =head2 POSIX-BC?
 
 XXX.
index 9358c80..08743ed 100644 (file)
@@ -7776,7 +7776,7 @@ X<O_RDONLY> X<O_RDWR> X<O_WRONLY>
 For historical reasons, some values work on almost every system
 supported by Perl: 0 means read-only, 1 means write-only, and 2
 means read/write.  We know that these values do I<not> work under
-OS/390 & VM/ESA Unix and on the Macintosh; you probably don't want to
+OS/390 and on the Macintosh; you probably don't want to
 use them in new code.
 
 If the file named by FILENAME does not exist and the C<open> call creates
index 3e50873..a37bc7c 100644 (file)
@@ -1279,7 +1279,7 @@ and C<|>, not to mention dealing with socket interfaces to ASCII computers
 
 Fortunately, most web servers for the mainframe will correctly
 translate the C<\n> in the following statement to its ASCII equivalent
-(C<\r> is the same under both Unix and OS/390 & VM/ESA):
+(C<\r> is the same under both Unix and OS/390):
 
     print "Content-type: text/html\r\n\r\n";
 
@@ -1290,7 +1290,6 @@ The values of C<$^O> on some of these platforms includes:
     OS/390        os390      os390
     OS400         os400      os400
     POSIX-BC      posix-bc   BS2000-posix-bc
-    VM/ESA        vmesa      vmesa
 
 Some simple tricks for determining if you are running on an EBCDIC
 platform could include any of the following (perhaps all):
@@ -1312,8 +1311,7 @@ Also see:
 
 =item *
 
-L<perlos390>, F<README.os390>, F<perlbs2000>, F<README.vmesa>,
-L<perlebcdic>.
+L<perlos390>, F<README.os390>, F<perlbs2000>, L<perlebcdic>.
 
 =item *
 
@@ -1585,7 +1583,7 @@ A little funky, because VOS's notion of ownership is a little funky (VOS).
 
 =item chroot
 
-Not implemented. (Win32, VMS, S<Plan 9>, S<RISC OS>, VOS, VM/ESA)
+Not implemented. (Win32, VMS, S<Plan 9>, S<RISC OS>, VOS)
 
 =item crypt
 
@@ -1610,8 +1608,6 @@ Invokes VMS debugger. (VMS)
 
 =item exec
 
-Implemented via Spawn. (VM/ESA)
-
 Does not automatically flush output handles on some platforms.
 (SunOS, Solaris, HP-UX)
 
@@ -1650,7 +1646,7 @@ Not implemented (VMS, S<RISC OS>, VOS).
 
 =item fork
 
-Not implemented. (AmigaOS, S<RISC OS>, VM/ESA, VMS)
+Not implemented. (AmigaOS, S<RISC OS>, VMS)
 
 Emulated using multiple interpreters.  See L<perlfork>.  (Win32)
 
@@ -1671,7 +1667,7 @@ Not implemented. (Win32, S<RISC OS>)
 
 =item getpriority
 
-Not implemented. (Win32, VMS, S<RISC OS>, VOS, VM/ESA)
+Not implemented. (Win32, VMS, S<RISC OS>, VOS)
 
 =item getpwnam
 
@@ -1707,11 +1703,11 @@ Not implemented. (Win32, S<Plan 9>)
 
 =item getpwent
 
-Not implemented. (Win32, VM/ESA)
+Not implemented. (Win32)
 
 =item getgrent
 
-Not implemented. (Win32, VMS, VM/ESA)
+Not implemented. (Win32, VMS)
 
 =item gethostbyname
 
@@ -1752,11 +1748,11 @@ Not implemented. (S<Plan 9>, Win32, S<RISC OS>)
 
 =item endpwent
 
-Not implemented. (MPE/iX, VM/ESA, Win32)
+Not implemented. (MPE/iX, Win32)
 
 =item endgrent
 
-Not implemented. (MPE/iX, S<RISC OS>, VM/ESA, VMS, Win32)
+Not implemented. (MPE/iX, S<RISC OS>, VMS, Win32)
 
 =item endhostent
 
@@ -1932,7 +1928,7 @@ be implemented even in Unix platforms.
 
 =item socketpair
 
-Not implemented. (S<RISC OS>, VM/ESA)
+Not implemented. (S<RISC OS>)
 
 Available on OpenVOS Release 17.0 or later. (VOS)
 
@@ -1975,14 +1971,14 @@ syntax if it is intended to resolve to a valid path.
 
 =item syscall
 
-Not implemented. (Win32, VMS, S<RISC OS>, VOS, VM/ESA)
+Not implemented. (Win32, VMS, S<RISC OS>, VOS)
 
 =item sysopen
 
 The traditional "0", "1", and "2" MODEs are implemented with different
 numeric values on some systems.  The flags exported by C<Fcntl>
 (O_RDONLY, O_WRONLY, O_RDWR) should work everywhere though.  (S<Mac
-OS>, OS/390, VM/ESA)
+OS>, OS/390)
 
 =item system
 
@@ -2317,8 +2313,7 @@ L<perlebcdic>, L<perlfreebsd>, L<perlhurd>, L<perlhpux>, L<perlirix>,
 L<perlmacos>, L<perlmacosx>, L<perlmpeix>,
 L<perlnetware>, L<perlos2>, L<perlos390>, L<perlos400>,
 L<perlplan9>, L<perlqnx>, L<perlsolaris>, L<perltru64>,
-L<perlunicode>, L<perlvmesa>, L<perlvms>, L<perlvos>,
-L<perlwin32>, and L<Win32>.
+L<perlunicode>, L<perlvms>, L<perlvos>, L<perlwin32>, and L<Win32>.
 
 =head1 AUTHORS / CONTRIBUTORS
 
index b233942..65d0bb5 100644 (file)
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -4308,25 +4308,13 @@ PP(pp_exec)
 #ifdef VMS
        value = (I32)vms_do_aexec(NULL, MARK, SP);
 #else
-#  ifdef __OPEN_VM
-       {
-          (void ) do_aspawn(NULL, MARK, SP);
-          value = 0;
-       }
-#  else
        value = (I32)do_aexec(NULL, MARK, SP);
-#  endif
 #endif
     else {
 #ifdef VMS
        value = (I32)vms_do_exec(SvPVx_nolen(sv_mortalcopy(*SP)));
 #else
-#  ifdef __OPEN_VM
-       (void) do_spawn(SvPVx_nolen(sv_mortalcopy(*SP)));
-       value = 0;
-#  else
        value = (I32)do_exec(SvPVx_nolen(sv_mortalcopy(*SP)));
-#  endif
 #endif
     }
 
index 9c165a3..e41eb18 100644 (file)
@@ -27,11 +27,7 @@ printf PIPE "oY %d -    again\n", curr_test();
 next_test();
 close PIPE;
 
-SKIP: {
-    # Technically this should be TODO.  Someone try it if you happen to
-    # have a vmesa machine.
-    skip "Doesn't work here yet", 6 if $^O eq 'vmesa';
-
+{
     if (open(PIPE, "-|")) {
        while(<PIPE>) {
            s/^not //;
@@ -171,9 +167,7 @@ SKIP: {
         }
     }
 
-    SKIP: {
-        skip "Don't work yet", 9 if $^O eq 'vmesa';
-
+    {
         # check that errno gets forced to 0 if the piped program exited 
         # non-zero
         open NIL, qq{|$Perl -e "exit 23";} or die "fork failed: $!";
index 38e4fd0..5ddba3c 100644 (file)
@@ -316,7 +316,7 @@ $^X = Cygwin::win_to_posix_path(Cygwin::posix_to_win_path($^X, 1));
 $0 = Cygwin::win_to_posix_path(Cygwin::posix_to_win_path($0, 1));
 EOX
     }
-    if ($^O eq 'os390' or $^O eq 'posix-bc' or $^O eq 'vmesa') {  # no shebang
+    if ($^O eq 'os390' or $^O eq 'posix-bc') {  # no shebang
        $headmaybe = <<EOH ;
     eval 'exec ./perl -S \$0 \${1+"\$\@"}'
         if 0;
index 8c8e23e..03965c8 100644 (file)
--- a/thread.h
+++ b/thread.h
@@ -40,9 +40,6 @@
 #      define NEED_PTHREAD_INIT
 #      define PTHREAD_CREATE_JOINABLE (1)
 #    endif
-#    ifdef __OPEN_VM
-#      define pthread_addr_t void *
-#    endif
 #    ifdef OEMVS
 #      define pthread_addr_t void *
 #      define pthread_create(t,a,s,d)        pthread_create(t,&(a),s,d)
@@ -65,7 +62,7 @@
 #      define pthread_mutexattr_init(a) pthread_mutexattr_create(a)
 #      define pthread_mutexattr_settype(a,t) pthread_mutexattr_setkind_np(a,t)
 #    endif
-#    if defined(DJGPP) || defined(__OPEN_VM) || defined(OEMVS)
+#    if defined(DJGPP) || defined(OEMVS)
 #      define PTHREAD_ATTR_SETDETACHSTATE(a,s) pthread_attr_setdetachstate(a,&(s))
 #      define YIELD pthread_yield(NULL)
 #    endif
diff --git a/util.c b/util.c
index 60ec24f..64c871c 100644 (file)
--- a/util.c
+++ b/util.c
@@ -2474,7 +2474,7 @@ Perl_my_swabn(void *ptr, int n)
 PerlIO *
 Perl_my_popen_list(pTHX_ const char *mode, int n, SV **args)
 {
-#if (!defined(DOSISH) || defined(HAS_FORK) || defined(AMIGAOS)) && !defined(OS2) && !defined(VMS) && !defined(__OPEN_VM) && !defined(EPOC) && !defined(NETWARE) && !defined(__LIBCATAMOUNT__)
+#if (!defined(DOSISH) || defined(HAS_FORK) || defined(AMIGAOS)) && !defined(OS2) && !defined(VMS) && !defined(EPOC) && !defined(NETWARE) && !defined(__LIBCATAMOUNT__)
     dVAR;
     int p[2];
     I32 This, that;
@@ -2611,7 +2611,7 @@ Perl_my_popen_list(pTHX_ const char *mode, int n, SV **args)
 }
 
     /* VMS' my_popen() is in VMS.c, same with OS/2. */
-#if (!defined(DOSISH) || defined(HAS_FORK) || defined(AMIGAOS)) && !defined(VMS) && !defined(__OPEN_VM) && !defined(EPOC) && !defined(__LIBCATAMOUNT__)
+#if (!defined(DOSISH) || defined(HAS_FORK) || defined(AMIGAOS)) && !defined(VMS) && !defined(EPOC) && !defined(__LIBCATAMOUNT__)
 PerlIO *
 Perl_my_popen(pTHX_ const char *cmd, const char *mode)
 {
@@ -3053,7 +3053,7 @@ Perl_rsignal_restore(pTHX_ int signo, Sigsave_t *save)
 #endif /* !PERL_MICRO */
 
     /* VMS' my_pclose() is in VMS.c; same with OS/2 */
-#if (!defined(DOSISH) || defined(HAS_FORK) || defined(AMIGAOS)) && !defined(VMS) && !defined(__OPEN_VM) && !defined(EPOC) && !defined(__LIBCATAMOUNT__)
+#if (!defined(DOSISH) || defined(HAS_FORK) || defined(AMIGAOS)) && !defined(VMS) && !defined(EPOC) && !defined(__LIBCATAMOUNT__)
 I32
 Perl_my_pclose(pTHX_ PerlIO *ptr)
 {
diff --git a/vmesa/Makefile b/vmesa/Makefile
deleted file mode 100644 (file)
index d06a2da..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-CCCMD=`sh $(shellflags) ../cflags $@`
-
-all : vm perl
-
-depend :
-       cd .. && $(MAKE) depend
-
-vm  : vmesa.o
-       cp vmesa.o ../vmesa.o
-
-perl :
-       cd .. && $(MAKE)
-
-vmesa.o : vmesa.c
-       $(CCCMD) vmesa.c
diff --git a/vmesa/vmesa.c b/vmesa/vmesa.c
deleted file mode 100644 (file)
index 59dd19b..0000000
+++ /dev/null
@@ -1,592 +0,0 @@
-/************************************************************/
-/*                                                          */
-/* Module ID  - vmesa.c                                     */
-/*                                                          */
-/* Function   - Provide operating system dependent process- */
-/*              ing for perl under VM/ESA.                  */
-/*                                                          */
-/* Parameters - See individual entry points.                */
-/*                                                          */
-/* Called By  - N/A - see individual entry points.          */
-/*                                                          */
-/* Calling To - N/A - see individual entry points.          */
-/*                                                          */
-/* Notes      - (1) ....................................... */
-/*                                                          */
-/*              (2) ....................................... */
-/*                                                          */
-/* Name       - Neale Ferguson.                             */
-/*                                                          */
-/* Date       - August, 1998.                               */
-/*                                                          */
-/*                                                          */
-/* Associated    - (1) Refer To ........................... */
-/* Documentation                                            */
-/*                 (2) Refer To ........................... */
-/*                                                          */
-/************************************************************/
-/************************************************************/
-/*                                                          */
-/*                MODULE MAINTENANCE HISTORY                */
-/*                --------------------------                */
-/*                                                          */
-static char REQ_REL_WHO [13] =
-/*--------------       -------------------------------------*/
-    "9999_99 NAF "; /* Original module                      */
-/*                                                          */
-/*============ End of Module Maintenance History ===========*/
-
-/************************************************************/
-/*                                                          */
-/*                       DEFINES                            */
-/*                       -------                            */
-/*                                                          */
-/************************************************************/
-
-#define FAIL  65280
-
-/*=============== END OF DEFINES ===========================*/
-
-/************************************************************/
-/*                                                          */
-/*                INCLUDE STATEMENTS                        */
-/*                ------------------                        */
-/*                                                          */
-/************************************************************/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <spawn.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <pthread.h>
-#include <dll.h>
-#include "EXTERN.h"
-#include "perl.h"
-#pragma map(truncate, "@@TRUNC")
-
-/*================== End of Include Statements =============*/
-
-/************************************************************/
-/*                                                          */
-/*               Global Variables                           */
-/*               ----------------                           */
-/*                                                          */
-/************************************************************/
-
-static int Perl_stdin_fd  = STDIN_FILENO,
-           Perl_stdout_fd = STDOUT_FILENO;
-
-static long dl_retcode = 0;
-
-/*================== End of Global Variables ===============*/
-
-/************************************************************/
-/*                                                          */
-/*               FUNCTION PROTOTYPES                        */
-/*               -------------------                        */
-/*                                                          */
-/************************************************************/
-
-int    do_aspawn(SV *, SV **, SV **);
-int    do_spawn(char *, int);
-static int spawnit(char *);
-static pid_t spawn_cmd(char *, int, int);
-struct perl_thread * getTHR(void);
-
-/*================== End of Prototypes =====================*/
-
-/************************************************************/
-/*                                                          */
-/*                     D O _ A S P A W N                    */
-/*                     -----------------                    */
-/*                                                          */
-/************************************************************/
-
-int
-do_aspawn(SV* really, SV **mark, SV **sp)
-{
- char   **a,
-        *tmps;
- struct inheritance inherit;
- pid_t  pid;
- int    status,
-        fd,
-        nFd,
-        fdMap[3];
- SV     *sv,
-        **p_sv;
- STRLEN        n_a;
-
-    status = FAIL;
-    if (sp > mark)
-    {
-       Newx(PL_Argv, sp - mark + 1, char*);
-       a = PL_Argv;
-       while (++mark <= sp)
-       {
-           if (*mark)
-              *a++ = SvPVx(*mark, n_a);
-           else
-              *a++ = "";
-       }
-       inherit.flags        = SPAWN_SETGROUP;
-       inherit.pgroup       = SPAWN_NEWPGROUP;
-       fdMap[STDIN_FILENO]  = Perl_stdin_fd;
-       fdMap[STDOUT_FILENO] = Perl_stdout_fd;
-       fdMap[STDERR_FILENO] = STDERR_FILENO;
-       nFd                  = 3;
-       *a = NULL;
-       /*-----------------------------------------------------*/
-       /* Will execvp() use PATH?                             */
-       /*-----------------------------------------------------*/
-       if (*PL_Argv[0] != '/')
-           TAINT_ENV();
-       if (really && *(tmps = SvPV(really, n_a)))
-           pid = spawnp(tmps, nFd, fdMap, &inherit,
-                        (const char **) PL_Argv,
-                        (const char **) environ);
-       else
-           pid = spawnp(PL_Argv[0], nFd, fdMap, &inherit,
-                        (const char **) PL_Argv,
-                        (const char **) environ);
-       if (pid < 0)
-       {
-          status = FAIL;
-          if (ckWARN(WARN_EXEC))
-             warner(WARN_EXEC,"Can't exec \"%s\": %s",
-                    PL_Argv[0],
-                    Strerror(errno));
-       }
-       else
-       {
-          /*------------------------------------------------*/
-          /* If the file descriptors have been remapped then*/
-          /* we've been called following a my_popen request */
-          /* therefore we don't want to wait for spawnned   */
-          /* program to complete. We need to set the fdpid  */
-          /* value to the value of the spawnned process' pid*/
-          /*------------------------------------------------*/
-          fd = 0;
-          if (Perl_stdin_fd != STDIN_FILENO)
-             fd = Perl_stdin_fd;
-          else
-             if (Perl_stdout_fd != STDOUT_FILENO)
-                fd = Perl_stdout_fd;
-          if (fd != 0)
-          {
-             /*---------------------------------------------*/
-             /* Get the fd of the other end of the pipe,    */
-             /* use this to reference the fdpid which will  */
-             /* be used by my_pclose                        */
-             /*---------------------------------------------*/
-             close(fd);
-             MUTEX_LOCK(&PL_fdpid_mutex);
-             p_sv  = av_fetch(PL_fdpid,fd,TRUE);
-             fd    = (int) SvIVX(*p_sv);
-             SvREFCNT_dec(*p_sv);
-             *p_sv = &PL_sv_undef;
-             sv    = *av_fetch(PL_fdpid,fd,TRUE);
-             MUTEX_UNLOCK(&PL_fdpid_mutex);
-             (void) SvUPGRADE(sv, SVt_IV);
-             SvIVX(sv) = pid;
-             status    = 0;
-          }
-          else
-             wait4pid(pid, &status, 0);
-       }
-       do_execfree();
-    }
-    return (status);
-}
-
-/*===================== End of do_aspawn ===================*/
-
-/************************************************************/
-/*                                                          */
-/*                     D O _ S P A W N                      */
-/*                     ---------------                      */
-/*                                                          */
-/************************************************************/
-
-int
-do_spawn(char *cmd, int execf)
-{
- char   **a,
-        *s,
-        flags[10];
- int    status,
-        nFd,
-        fdMap[3];
- struct inheritance inherit;
- pid_t  pid;
-
-    while (*cmd && isSPACE(*cmd))
-       cmd++;
-
-    /*------------------------------------------------------*/
-    /* See if there are shell metacharacters in it          */
-    /*------------------------------------------------------*/
-
-    if (*cmd == '.' && isSPACE(cmd[1]))
-       return (spawnit(cmd));
-    else
-    {
-       if (strnEQ(cmd,"exec",4) && isSPACE(cmd[4]))
-          return (spawnit(cmd));
-       else
-       {
-          /*------------------------------------------------*/
-          /* Catch VAR=val gizmo                            */
-          /*------------------------------------------------*/
-          for (s = cmd; *s && isALPHA(*s); s++);
-          if (*s != '=')
-          {
-             for (s = cmd; *s; s++)
-             {
-                if (*s != ' ' &&
-                    !isALPHA(*s) &&
-                    strchr("$&*(){}[]'\";\\|?<>~`\n",*s))
-                {
-                   if (*s == '\n' && !s[1])
-                   {
-                      *s = '\0';
-                      break;
-                   }
-                   return(spawnit(cmd));
-                }
-             }
-          }
-       }
-    }
-
-    Newx(PL_Argv, (s - cmd) / 2 + 2, char*);
-    PL_Cmd = savepvn(cmd, s-cmd);
-    a = PL_Argv;
-    for (s = PL_Cmd; *s;)
-    {
-       while (*s && isSPACE(*s)) s++;
-       if (*s)
-           *(a++) = s;
-       while (*s && !isSPACE(*s)) s++;
-       if (*s)
-           *s++ = '\0';
-    }
-    *a                   = NULL;
-    fdMap[STDIN_FILENO]  = Perl_stdin_fd;
-    fdMap[STDOUT_FILENO] = Perl_stdout_fd;
-    fdMap[STDERR_FILENO] = STDERR_FILENO;
-    nFd                  = 3;
-    inherit.flags        = 0;
-    if (PL_Argv[0])
-    {
-       pid = spawnp(PL_Argv[0], nFd, fdMap, &inherit,
-                    (const char **) PL_Argv,
-                    (const char **) environ);
-       if (pid < 0)
-       {
-          status = FAIL;
-          if (ckWARN(WARN_EXEC))
-             warner(WARN_EXEC,"Can't exec \"%s\": %s",
-                    PL_Argv[0],
-                    Strerror(errno));
-       }
-       else
-          wait4pid(pid, &status, 0);
-    }
-    do_execfree();
-    return (status);
-}
-
-/*===================== End of do_spawn ====================*/
-
-/************************************************************/
-/*                                                          */
-/* Name      - spawnit.                                     */
-/*                                                          */
-/* Function  - Spawn command and return status.             */
-/*                                                          */
-/* On Entry  - cmd - command to be spawned.                 */
-/*                                                          */
-/* On Exit   - status returned.                             */
-/*                                                          */
-/************************************************************/
-
-int
-spawnit(char *cmd)
-{
- pid_t  pid;
- int    status;
-
-    pid = spawn_cmd(cmd, STDIN_FILENO, STDOUT_FILENO);
-    if (pid < 0)
-       status = FAIL;
-    else
-       wait4pid(pid, &status, 0);
-
-    return (status);
-}
-
-/*===================== End of spawnit =====================*/
-
-/************************************************************/
-/*                                                          */
-/* Name      - spawn_cmd.                                   */
-/*                                                          */
-/* Function  - Spawn command and return pid.                */
-/*                                                          */
-/* On Entry  - cmd - command to be spawned.                 */
-/*                                                          */
-/* On Exit   - pid returned.                                */
-/*                                                          */
-/************************************************************/
-
-pid_t
-spawn_cmd(char *cmd, int inFd, int outFd)
-{
- struct inheritance inherit;
- pid_t  pid;
- const  char *argV[4] = {"/bin/sh","-c",NULL,NULL};
- int    nFd,
-        fdMap[3];
-
-    argV[2]              = cmd;
-    fdMap[STDIN_FILENO]  = inFd;
-    fdMap[STDOUT_FILENO] = outFd;
-    fdMap[STDERR_FILENO] = STDERR_FILENO;
-    nFd                  = 3;
-    inherit.flags        = SPAWN_SETGROUP;
-    inherit.pgroup       = SPAWN_NEWPGROUP;
-    pid = spawn(argV[0], nFd, fdMap, &inherit,
-                argV, (const char **) environ);
-    return (pid);
-}
-
-/*===================== End of spawnit =====================*/
-
-/************************************************************/
-/*                                                          */
-/* Name      - my_popen.                                    */
-/*                                                          */
-/* Function  - Use popen to execute a command return a      */
-/*             file descriptor.                             */
-/*                                                          */
-/* On Entry  - cmd - command to be executed.                */
-/*                                                          */
-/* On Exit   - FILE * returned.                             */
-/*                                                          */
-/************************************************************/
-
-#include <ctest.h>
-PerlIO *
-my_popen(char *cmd, char *mode)
-{
- FILE *fd;
- int  pFd[2],
-      this,
-      that,
-      pid;
- SV   *sv;
-
-   if (PerlProc_pipe(pFd) >= 0)
-   {
-      this = (*mode == 'w');
-      that = !this;
-      /*-------------------------------------------------*/
-      /* If this is a read mode pipe                     */
-      /* - map the write end of the pipe to STDOUT       */
-      /* - return the *FILE for the read end of the pipe */
-      /*-------------------------------------------------*/
-      if (!this)
-         Perl_stdout_fd = pFd[that];
-      /*-------------------------------------------------*/
-      /* Else                                            */
-      /* - map the read end of the pipe to STDIN         */
-      /* - return the *FILE for the write end of the pipe*/
-      /*-------------------------------------------------*/
-      else
-         Perl_stdin_fd = pFd[that];
-      if (strNE(cmd,"-"))
-      {
-         PERL_FLUSHALL_FOR_CHILD;
-         pid = spawn_cmd(cmd, Perl_stdin_fd, Perl_stdout_fd);
-         if (pid >= 0)
-         {
-            MUTEX_LOCK(&PL_fdpid_mutex);
-            sv = *av_fetch(PL_fdpid,pFd[this],TRUE);
-            MUTEX_UNLOCK(&PL_fdpid_mutex);
-            (void) SvUPGRADE(sv, SVt_IV);
-            SvIVX(sv) = pid;
-            fd = PerlIO_fdopen(pFd[this], mode);
-            close(pFd[that]);
-         }
-         else
-            fd = NULL;
-      }
-      else
-      {
-         MUTEX_LOCK(&PL_fdpid_mutex);
-         sv = *av_fetch(PL_fdpid,pFd[that],TRUE);
-         MUTEX_UNLOCK(&PL_fdpid_mutex);
-         (void) SvUPGRADE(sv, SVt_IV);
-         SvIVX(sv) = pFd[this];
-         fd = PerlIO_fdopen(pFd[this], mode);
-      }
-   }
-   else
-      fd = NULL;
-   return (fd);
-}
-
-/*===================== End of my_popen ====================*/
-
-/************************************************************/
-/*                                                          */
-/* Name      - my_pclose.                                   */
-/*                                                          */
-/* Function  - Use pclose to terminate a piped command      */
-/*             file stream.                                 */
-/*                                                          */
-/* On Entry  - fd  - FILE pointer.                          */
-/*                                                          */
-/* On Exit   - Status returned.                             */
-/*                                                          */
-/************************************************************/
-
-long
-my_pclose(FILE *fp)
-{
- int  pid,
-      saveErrno,
-      status;
- long rc,
-      wRc;
- SV   **sv;
- FILE *other;
-
-   MUTEX_LOCK(&PL_fdpid_mutex);
-   sv        = av_fetch(PL_fdpid,PerlIO_fileno(fp),TRUE);
-   MUTEX_UNLOCK(&PL_fdpid_mutex);
-   pid       = (int) SvIVX(*sv);
-   SvREFCNT_dec(*sv);
-   *sv       = &PL_sv_undef;
-   rc        = PerlIO_close(fp);
-   saveErrno = errno;
-   do
-   {
-      wRc = waitpid(pid, &status, 0);
-   } while ((wRc == -1) && (errno == EINTR));
-   Perl_stdin_fd  = STDIN_FILENO;
-   Perl_stdout_fd = STDOUT_FILENO;
-   errno          = saveErrno;
-   if (rc != 0)
-      SETERRNO(errno, garbage);
-   return (rc);
-
-}
-
-/************************************************************/
-/*                                                          */
-/* Name      - dlopen.                                      */
-/*                                                          */
-/* Function  - Load a DLL.                                  */
-/*                                                          */
-/* On Exit   -                                              */
-/*                                                          */
-/************************************************************/
-
-void *
-dlopen(const char *path)
-{
- dllhandle *handle;
-
-fprintf(stderr,"Loading %s\n",path);
-   handle     = dllload(path);
-   dl_retcode = errno;
-fprintf(stderr,"Handle %08X %s\n",handle,strerror(errno));
-   return ((void *) handle);
-}
-
-/*===================== End of dlopen ======================*/
-
-/************************************************************/
-/*                                                          */
-/* Name      - dlsym.                                       */
-/*                                                          */
-/* Function  - Locate a DLL symbol.                         */
-/*                                                          */
-/* On Exit   -                                              */
-/*                                                          */
-/************************************************************/
-
-void *
-dlsym(void *handle, const char *symbol)
-{
- void *symLoc;
-
-fprintf(stderr,"Finding %s\n",symbol);
-   symLoc  = dllqueryvar((dllhandle *) handle, (char *) symbol);
-   if (symLoc == NULL)
-      symLoc = (void *) dllqueryfn((dllhandle *) handle,
-                                   (char *) symbol);
-   dl_retcode = errno;
-   return(symLoc);
-}
-
-/*===================== End of dlsym =======================*/
-
-/************************************************************/
-/*                                                          */
-/* Name      - dlerror.                                     */
-/*                                                          */
-/* Function  - Return the last errno pertaining to a DLL    */
-/*             operation.                                   */
-/*                                                          */
-/* On Exit   -                                              */
-/*                                                          */
-/************************************************************/
-
-void *
-dlerror(void)
-{
- char * dlEmsg;
-
- dlEmsg     = strerror(dl_retcode);
- dl_retcode = 0;
- return(dlEmsg);
-}
-
-/*===================== End of dlerror =====================*/
-
-/************************************************************/
-/*                                                          */
-/* Name      - TRUNCATE.                                    */
-/*                                                          */
-/* Function  - Truncate a file identified by 'path' to      */
-/*             a given length.                              */
-/*                                                          */
-/* On Entry  - path - Path of file to be truncated.         */
-/*             length - length of truncated file.           */
-/*                                                          */
-/* On Exit   - retC - return code.                          */
-/*                                                          */
-/************************************************************/
-
-int
-truncate(const unsigned char *path, off_t length)
-{
- int fd,
-     retC;
-
-   fd = open((const char *) path, O_RDWR);
-   if (fd > 0)
-   {
-      retC = ftruncate(fd, length);
-      close(fd);
-   }
-   else
-      retC = fd;
-   return(retC);
-}
-
-/*===================== End of trunc =======================*/
diff --git a/vmesa/vmesaish.h b/vmesa/vmesaish.h
deleted file mode 100644 (file)
index a6bd901..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef _VMESA_INCLUDED
-# define _VMESA_INCLUDED 1
-# include <string.h>
-# include <ctype.h>
-# include <vmsock.h>
- void * dlopen(const char *);
- void * dlsym(void *, const char *);
- void * dlerror(void);
-# define OLD_PTHREADS_API
-#endif
index d9457ce..0edfd15 100644 (file)
@@ -1155,7 +1155,6 @@ utils: $(PERLEXE) $(X2P)
        copy ..\README.symbian  ..\pod\perlsymbian.pod
        copy ..\README.tru64    ..\pod\perltru64.pod
        copy ..\README.tw       ..\pod\perltw.pod
-       copy ..\README.vmesa    ..\pod\perlvmesa.pod
        copy ..\README.vos      ..\pod\perlvos.pod
        copy ..\README.win32    ..\pod\perlwin32.pod
        copy ..\pod\perldelta.pod ..\pod\perl5174delta.pod
@@ -1260,8 +1259,7 @@ distclean: realclean
            perlnetware.pod perlopenbsd.pod perlos2.pod perlos390.pod \
            perlos400.pod perlplan9.pod perlqnx.pod perlriscos.pod \
            perlsolaris.pod perlsymbian.pod perltoc.pod perltru64.pod \
-           perltw.pod perluniprops.pod perlvmesa.pod perlvos.pod \
-           perlwin32.pod
+           perltw.pod perluniprops.pod perlvos.pod perlwin32.pod
        -cd ..\utils && del /f h2ph splain perlbug pl2pm c2ph pstruct h2xs \
            perldoc perlivp libnetcfg enc2xs piconv cpan *.bat \
            xsubpp pod2html instmodsh json_pp prove ptar ptardiff ptargrep cpanp-run-perl cpanp cpan2dist shasum corelist config_data zipdetails
index 2710333..da484ca 100644 (file)
@@ -1335,7 +1335,6 @@ utils: $(PERLEXE) $(X2P)
        copy ..\README.symbian  ..\pod\perlsymbian.pod
        copy ..\README.tru64    ..\pod\perltru64.pod
        copy ..\README.tw       ..\pod\perltw.pod
-       copy ..\README.vmesa    ..\pod\perlvmesa.pod
        copy ..\README.vos      ..\pod\perlvos.pod
        copy ..\README.win32    ..\pod\perlwin32.pod
        copy ..\pod\perldelta.pod ..\pod\perl5174delta.pod
@@ -1439,8 +1438,7 @@ distclean: realclean
            perlnetware.pod perlopenbsd.pod perlos2.pod perlos390.pod \
            perlos400.pod perlplan9.pod perlqnx.pod perlriscos.pod \
            perlsolaris.pod perlsymbian.pod perltoc.pod perltru64.pod \
-           perltw.pod perluniprops.pod perlvmesa.pod perlvos.pod \
-           perlwin32.pod
+           perltw.pod perluniprops.pod perlvos.pod perlwin32.pod
        -cd ..\utils && del /f h2ph splain perlbug pl2pm c2ph pstruct h2xs \
            perldoc perlivp libnetcfg enc2xs piconv cpan *.bat \
            xsubpp pod2html instmodsh json_pp prove ptar ptardiff ptargrep cpanp-run-perl cpanp cpan2dist shasum corelist config_data zipdetails
index a69b94a..ee1717d 100644 (file)
--- a/x2p/a2p.h
+++ b/x2p/a2p.h
 /* All of these are in stdlib.h or time.h for ANSI C */
 Time_t time();
 struct tm *gmtime(), *localtime();
-#if defined(OEMVS) || defined(__OPEN_VM)
+#if defined(OEMVS)
 char *(strchr)(), *(strrchr)();
 char *(strcpy)(), *(strcat)();
 #else