cd ..
fi
;;
-vmesa)
- # Do nothing in VM/ESA.
- ;;
*)
echo "'$osname' is an EBCDIC system I don't know that well." >&4
;;
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
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
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
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
cd ..
fi
;;
-vmesa)
- # Do nothing in VM/ESA.
- ;;
*)
echo "'$osname' is an EBCDIC system I don't know that well." >&4
;;
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);
}
}
=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.
=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.
+++ /dev/null
-
-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
-
+++ /dev/null
-/* 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.
use Config;
use strict;
-our $VERSION = "1.15";
+our $VERSION = "1.16";
my %err = ();
my %wsa = ();
} 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;
+++ /dev/null
-# 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'
# 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";
util
uts
var
- vmesa
vms
vos
win32
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");
# include "iperlsys.h"
#endif
-#if defined(__OPEN_VM)
-# include "vmesa/vmesaish.h"
-# define ISHISH "vmesa"
-#endif
-
#ifdef DOSISH
# if defined(OS2)
# include "os2ish.h"
/* All of these are in stdlib.h or time.h for ANSI C */
Time_t time();
struct tm *gmtime(), *localtime();
-#if defined(OEMVS) || defined(__OPEN_VM)
+#if defined(OEMVS)
char *(strchr)(), *(strrchr)();
char *(strcpy)(), *(strcat)();
#else
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}
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
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 *
=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
=back
-=head2 VM/ESA?
-
-XXX.
-
=head2 POSIX-BC?
XXX.
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
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";
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):
=item *
-L<perlos390>, F<README.os390>, F<perlbs2000>, F<README.vmesa>,
-L<perlebcdic>.
+L<perlos390>, F<README.os390>, F<perlbs2000>, L<perlebcdic>.
=item *
=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
=item exec
-Implemented via Spawn. (VM/ESA)
-
Does not automatically flush output handles on some platforms.
(SunOS, Solaris, HP-UX)
=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)
=item getpriority
-Not implemented. (Win32, VMS, S<RISC OS>, VOS, VM/ESA)
+Not implemented. (Win32, VMS, S<RISC OS>, VOS)
=item getpwnam
=item getpwent
-Not implemented. (Win32, VM/ESA)
+Not implemented. (Win32)
=item getgrent
-Not implemented. (Win32, VMS, VM/ESA)
+Not implemented. (Win32, VMS)
=item gethostbyname
=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
=item socketpair
-Not implemented. (S<RISC OS>, VM/ESA)
+Not implemented. (S<RISC OS>)
Available on OpenVOS Release 17.0 or later. (VOS)
=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
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
#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
}
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 //;
}
}
- 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: $!";
$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;
# 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)
# 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
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;
}
/* 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)
{
#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)
{
+++ /dev/null
-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
+++ /dev/null
-/************************************************************/
-/* */
-/* 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 =======================*/
+++ /dev/null
-#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
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
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
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
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
/* 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