summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cross/Makefile-cross-SH3
-rw-r--r--MANIFEST6
-rwxr-xr-xMakefile.SH3
-rwxr-xr-xPorting/perlhist_calculate.pl2
-rw-r--r--README.bs20002
-rw-r--r--README.os3902
-rw-r--r--README.vmesa140
-rw-r--r--ext/DynaLoader/dl_vmesa.xs196
-rw-r--r--ext/Errno/Errno_pm.PL5
-rw-r--r--hints/vmesa.sh342
-rw-r--r--lib/perl5db.pl3
-rw-r--r--perl.c4
-rw-r--r--perl.h7
-rw-r--r--plan9/mkfile2
-rw-r--r--pod/perl.pod1
-rw-r--r--pod/perl58delta.pod4
-rw-r--r--pod/perldelta.pod9
-rw-r--r--pod/perlebcdic.pod4
-rw-r--r--pod/perlfunc.pod2
-rw-r--r--pod/perlport.pod31
-rw-r--r--pp_sys.c12
-rw-r--r--t/io/pipe.t10
-rw-r--r--t/op/magic.t2
-rw-r--r--thread.h5
-rw-r--r--util.c6
-rw-r--r--vmesa/Makefile15
-rw-r--r--vmesa/vmesa.c592
-rw-r--r--vmesa/vmesaish.h10
-rw-r--r--win32/Makefile4
-rw-r--r--win32/makefile.mk4
-rw-r--r--x2p/a2p.h2
31 files changed, 39 insertions, 1391 deletions
diff --git a/Cross/Makefile-cross-SH b/Cross/Makefile-cross-SH
index 1f9a226ba1..65d7801f17 100644
--- a/Cross/Makefile-cross-SH
+++ b/Cross/Makefile-cross-SH
@@ -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
;;
diff --git a/MANIFEST b/MANIFEST
index 274c3252d1..dde4011d96 100644
--- 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
diff --git a/Makefile.SH b/Makefile.SH
index 44ab155460..5194ecf32e 100755
--- a/Makefile.SH
+++ b/Makefile.SH
@@ -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
;;
diff --git a/Porting/perlhist_calculate.pl b/Porting/perlhist_calculate.pl
index 2bb3104859..55a4ce36ee 100755
--- a/Porting/perlhist_calculate.pl
+++ b/Porting/perlhist_calculate.pl
@@ -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);
}
}
diff --git a/README.bs2000 b/README.bs2000
index 6868557d02..a1ea777a8e 100644
--- a/README.bs2000
+++ b/README.bs2000
@@ -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.
diff --git a/README.os390 b/README.os390
index 6e2d49e731..645d10e40d 100644
--- a/README.os390
+++ b/README.os390
@@ -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
index ae8e3864da..0000000000
--- a/README.vmesa
+++ /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
index 5124722f7e..0000000000
--- a/ext/DynaLoader/dl_vmesa.xs
+++ /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.
diff --git a/ext/Errno/Errno_pm.PL b/ext/Errno/Errno_pm.PL
index 439f2544ca..02ac226701 100644
--- a/ext/Errno/Errno_pm.PL
+++ b/ext/Errno/Errno_pm.PL
@@ -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
index 430ded9c48..0000000000
--- a/hints/vmesa.sh
+++ /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'
diff --git a/lib/perl5db.pl b/lib/perl5db.pl
index f07467fc9d..07517386a2 100644
--- a/lib/perl5db.pl
+++ b/lib/perl5db.pl
@@ -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 9d2831c972..8444218562 100644
--- 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 f42849cf54..2cc4e91c1a 100644
--- 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
diff --git a/plan9/mkfile b/plan9/mkfile
index 0c59a99774..51c682d2af 100644
--- a/plan9/mkfile
+++ b/plan9/mkfile
@@ -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}
diff --git a/pod/perl.pod b/pod/perl.pod
index 4233b5b928..adda1dba16 100644
--- a/pod/perl.pod
+++ b/pod/perl.pod
@@ -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
diff --git a/pod/perl58delta.pod b/pod/perl58delta.pod
index 9777b55f9f..1a4abe9cdc 100644
--- a/pod/perl58delta.pod
+++ b/pod/perl58delta.pod
@@ -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 *
diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index 7fa0d4e9ad..a5c6024635 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -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
diff --git a/pod/perlebcdic.pod b/pod/perlebcdic.pod
index 2519bc0eff..ecf94d14f3 100644
--- a/pod/perlebcdic.pod
+++ b/pod/perlebcdic.pod
@@ -1374,10 +1374,6 @@ or z/OS.
=back
-=head2 VM/ESA?
-
-XXX.
-
=head2 POSIX-BC?
XXX.
diff --git a/pod/perlfunc.pod b/pod/perlfunc.pod
index 9358c80d32..08743ed499 100644
--- a/pod/perlfunc.pod
+++ b/pod/perlfunc.pod
@@ -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
diff --git a/pod/perlport.pod b/pod/perlport.pod
index 3e50873bed..a37bc7c9ee 100644
--- a/pod/perlport.pod
+++ b/pod/perlport.pod
@@ -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
diff --git a/pp_sys.c b/pp_sys.c
index b233942287..65d0bb516f 100644
--- 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
}
diff --git a/t/io/pipe.t b/t/io/pipe.t
index 9c165a3372..e41eb18262 100644
--- a/t/io/pipe.t
+++ b/t/io/pipe.t
@@ -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: $!";
diff --git a/t/op/magic.t b/t/op/magic.t
index 38e4fd0e4d..5ddba3c5ce 100644
--- a/t/op/magic.t
+++ b/t/op/magic.t
@@ -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;
diff --git a/thread.h b/thread.h
index 8c8e23e9df..03965c8b52 100644
--- 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 60ec24f9c8..64c871ce15 100644
--- 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
index d06a2da078..0000000000
--- a/vmesa/Makefile
+++ /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
index 59dd19b6c1..0000000000
--- a/vmesa/vmesa.c
+++ /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
index a6bd901cdb..0000000000
--- a/vmesa/vmesaish.h
+++ /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
diff --git a/win32/Makefile b/win32/Makefile
index d9457cef28..0edfd1566b 100644
--- a/win32/Makefile
+++ b/win32/Makefile
@@ -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
diff --git a/win32/makefile.mk b/win32/makefile.mk
index 2710333dfe..da484cadaa 100644
--- a/win32/makefile.mk
+++ b/win32/makefile.mk
@@ -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
diff --git a/x2p/a2p.h b/x2p/a2p.h
index a69b94a099..ee1717dbee 100644
--- a/x2p/a2p.h
+++ b/x2p/a2p.h
@@ -121,7 +121,7 @@
/* 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