From 043fec90e88a2e23823af40a5c0b59539fc58069 Mon Sep 17 00:00:00 2001 From: Nicholas Clark Date: Thu, 30 Aug 2012 18:25:53 +0200 Subject: [PATCH] Remove the VM/ESA port. VM/ESA was a mainframe OS. IBM ended service on it in June 2003. It was superseded by Z/VM. --- Cross/Makefile-cross-SH | 3 - MANIFEST | 6 - Makefile.SH | 3 - Porting/perlhist_calculate.pl | 2 +- README.bs2000 | 2 +- README.os390 | 2 +- README.vmesa | 140 ---------- ext/DynaLoader/dl_vmesa.xs | 196 -------------- ext/Errno/Errno_pm.PL | 5 +- hints/vmesa.sh | 342 ------------------------ lib/perl5db.pl | 3 +- perl.c | 4 - perl.h | 7 +- plan9/mkfile | 2 +- pod/perl.pod | 1 - pod/perl58delta.pod | 4 +- pod/perldelta.pod | 9 +- pod/perlebcdic.pod | 4 - pod/perlfunc.pod | 2 +- pod/perlport.pod | 31 +-- pp_sys.c | 12 - t/io/pipe.t | 10 +- t/op/magic.t | 2 +- thread.h | 5 +- util.c | 6 +- vmesa/Makefile | 15 -- vmesa/vmesa.c | 592 ------------------------------------------ vmesa/vmesaish.h | 10 - win32/Makefile | 4 +- win32/makefile.mk | 4 +- x2p/a2p.h | 2 +- 31 files changed, 39 insertions(+), 1391 deletions(-) delete mode 100644 README.vmesa delete mode 100644 ext/DynaLoader/dl_vmesa.xs delete mode 100644 hints/vmesa.sh delete mode 100644 vmesa/Makefile delete mode 100644 vmesa/vmesa.c delete mode 100644 vmesa/vmesaish.h diff --git a/Cross/Makefile-cross-SH b/Cross/Makefile-cross-SH index 1f9a226..65d7801 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 274c325..dde4011 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 44ab155..5194ecf 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 2bb3104..55a4ce3 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 6868557..a1ea777 100644 --- a/README.bs2000 +++ b/README.bs2000 @@ -218,7 +218,7 @@ L, L. =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 6e2d49e..645d10e 100644 --- a/README.os390 +++ b/README.os390 @@ -410,7 +410,7 @@ L, L, L, L. =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 ae8e386..0000000 --- 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 - -=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, L, L. - -=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 - -There are web archives of the mailing list at: - -=over 4 - -=item * - -L - -=item * - -L - -=back - -=cut - diff --git a/ext/DynaLoader/dl_vmesa.xs b/ext/DynaLoader/dl_vmesa.xs deleted file mode 100644 index 5124722..0000000 --- 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 - - -#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 439f254..02ac226 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 430ded9..0000000 --- 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 f07467f..0751738 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 9d2831c..8444218 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 f42849c..2cc4e91 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 0c59a99..51c682d 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 4233b5b..adda1db 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 9777b55..1a4abe9 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, -L (for POSIX-BC), and L for more information. +L (for POSIX-BC), and perlvmesa for more information. +(B support for VM/ESA was removed in Perl v5.18.0. The relevant +information was in F) =item * diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 7fa0d4e..a5c6024 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 2519bc0..ecf94d1 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 9358c80..08743ed 100644 --- a/pod/perlfunc.pod +++ b/pod/perlfunc.pod @@ -7776,7 +7776,7 @@ X X X 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 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 call creates diff --git a/pod/perlport.pod b/pod/perlport.pod index 3e50873..a37bc7c 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, F, F, F, -L. +L, F, F, L. =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, S, VOS, VM/ESA) +Not implemented. (Win32, VMS, S, S, 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, VOS). =item fork -Not implemented. (AmigaOS, S, VM/ESA, VMS) +Not implemented. (AmigaOS, S, VMS) Emulated using multiple interpreters. See L. (Win32) @@ -1671,7 +1667,7 @@ Not implemented. (Win32, S) =item getpriority -Not implemented. (Win32, VMS, S, VOS, VM/ESA) +Not implemented. (Win32, VMS, S, VOS) =item getpwnam @@ -1707,11 +1703,11 @@ Not implemented. (Win32, S) =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, Win32, S) =item endpwent -Not implemented. (MPE/iX, VM/ESA, Win32) +Not implemented. (MPE/iX, Win32) =item endgrent -Not implemented. (MPE/iX, S, VM/ESA, VMS, Win32) +Not implemented. (MPE/iX, S, VMS, Win32) =item endhostent @@ -1932,7 +1928,7 @@ be implemented even in Unix platforms. =item socketpair -Not implemented. (S, VM/ESA) +Not implemented. (S) 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, VOS, VM/ESA) +Not implemented. (Win32, VMS, S, VOS) =item sysopen The traditional "0", "1", and "2" MODEs are implemented with different numeric values on some systems. The flags exported by C (O_RDONLY, O_WRONLY, O_RDWR) should work everywhere though. (S, OS/390, VM/ESA) +OS>, OS/390) =item system @@ -2317,8 +2313,7 @@ L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, -L, L, L, L, -L, and L. +L, L, L, L, and L. =head1 AUTHORS / CONTRIBUTORS diff --git a/pp_sys.c b/pp_sys.c index b233942..65d0bb5 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 9c165a3..e41eb18 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() { 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 38e4fd0..5ddba3c 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 = < -#include -#include -#include -#include -#include -#include -#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 -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 a6bd901..0000000 --- a/vmesa/vmesaish.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef _VMESA_INCLUDED -# define _VMESA_INCLUDED 1 -# include -# include -# include - 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 d9457ce..0edfd15 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 2710333..da484ca 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 a69b94a..ee1717d 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 -- 1.8.3.1