diff options
Diffstat (limited to 'vms')
-rw-r--r-- | vms/config.vms | 2 | ||||
-rw-r--r-- | vms/descrip.mms | 6 | ||||
-rw-r--r-- | vms/perly_c.vms | 2 | ||||
-rw-r--r-- | vms/sockadapt.c | 61 | ||||
-rw-r--r-- | vms/sockadapt.h | 56 | ||||
-rw-r--r-- | vms/vms.c | 1 | ||||
-rw-r--r-- | vms/vms_yfix.pl | 4 | ||||
-rw-r--r-- | vms/vmsish.h | 1 |
8 files changed, 105 insertions, 28 deletions
diff --git a/vms/config.vms b/vms/config.vms index 5a24c33609..03051da43d 100644 --- a/vms/config.vms +++ b/vms/config.vms @@ -76,7 +76,7 @@ * when Perl is built. Please do not change it by hand; make * any changes to FndVers.Com instead. */ -#define ARCHLIB_EXP "/perl_root/lib/VMS_VAX/5_00391" /**/ +#define ARCHLIB_EXP "/perl_root/lib/VMS_VAX/5_00392" /**/ #define ARCHLIB ARCHLIB_EXP /*config-skip*/ /* ARCHNAME: diff --git a/vms/descrip.mms b/vms/descrip.mms index fc264ff99d..184271c14c 100644 --- a/vms/descrip.mms +++ b/vms/descrip.mms @@ -65,7 +65,7 @@ OBJVAL = $(MMS$TARGET_NAME)$(O) .endif # Updated by fndvers.com -- do not edit by hand -PERL_VERSION = 5_00391# +PERL_VERSION = 5_00392# ARCHDIR = [.lib.$(ARCH).$(PERL_VERSION)] @@ -799,8 +799,8 @@ test : all [.t.lib]vmsfspec.t archify : all @ Write Sys$Output "Moving files to architecture-specific locations for $(ARCH)" archroot = "$(ARCHAUTO)" - "]" + "...]" - Backup/Log/Verify [.lib.auto...]*.*;/Exclude=(*.al,*.ix) 'archroot' - Delete/Log/NoConfirm [.lib.auto...]*.*;*/exclude=(*.al,*.ix) + Backup/Log/Verify [.lib.auto...]*.*;/Exclude=(*.al,*.ix) 'archroot'/New_Version + Delete/Log/NoConfirm [.lib.auto...]*.*;*/exclude=(*.al,*.ix,*.dir) Delete/Log/NoConfirm [.lib]Config.pm;* Copy/Log/NoConfirm *$(E);,[.x2p]a2p$(E); $(ARCHDIR) Delete/Log/NoConfirm Perl*$(E);*,[.x2p]a2p$(E);* diff --git a/vms/perly_c.vms b/vms/perly_c.vms index d6d35bb610..0949d5bf1d 100644 --- a/vms/perly_c.vms +++ b/vms/perly_c.vms @@ -1286,7 +1286,9 @@ yyparse() int retval = 0; #if YYDEBUG register char *yys; +# ifndef getenv extern char *getenv(); +# endif #endif struct ysv *ysave = (struct ysv*)safemalloc(sizeof(struct ysv)); diff --git a/vms/sockadapt.c b/vms/sockadapt.c index cc130a5598..e4c3dad213 100644 --- a/vms/sockadapt.c +++ b/vms/sockadapt.c @@ -1,28 +1,76 @@ /* sockadapt.c * * Author: Charles Bailey bailey@genetics.upenn.edu - * Last Revised: 29-Jan-1996 + * Last Revised: 4-Mar-1997 * * This file should contain stubs for any of the TCP/IP functions perl5 * requires which are not supported by your TCP/IP stack. These stubs * can attempt to emulate the routine in question, or can just return * an error status or cause perl to die. * - * This version is set up for perl5 with socketshr 0.9D TCP/IP support. + * This version is set up for perl5 with UCX (or emulation) via + * the DECCRTL or SOCKETSHR 0.9D. */ #include "EXTERN.h" #include "perl.h" + #if defined(__DECC) && defined(__DECC_VER) && (__DECC_VER >= 50200000) +# define __sockadapt_my_hostent_t __struct_hostent_ptr32 # define __sockadapt_my_netent_t __struct_netent_ptr32 +# define __sockadapt_my_servent_t __struct_servent_ptr32 # define __sockadapt_my_addr_t __in_addr_t # define __sockadapt_my_name_t const char * #else +# define __sockadapt_my_hostent_t struct hostent * # define __sockadapt_my_netent_t struct netent * +# define __sockadapt_my_servent_t struct servent * # define __sockadapt_my_addr_t long # define __sockadapt_my_name_t char * #endif +void setnetent(int stayopen) { + croak("Function \"setnetent\" not implemented in this version of perl"); +} +void endnetent() { + croak("Function \"endnetent\" not implemented in this version of perl"); +} + +#if defined(DECCRTL_SOCKETS) + /* Use builtin socket interface in DECCRTL and + * UCX emulation in whatever TCP/IP stack is present. + */ + + void sethostent(int stayopen) { + croak("Function \"sethostent\" not implemented in this version of perl"); + } + void endhostent() { + croak("Function \"endhostent\" not implemented in this version of perl"); + } + void setprotoent(int stayopen) { + croak("Function \"setprotoent\" not implemented in this version of perl"); + } + void endprotoent() { + croak("Function \"endprotoent\" not implemented in this version of perl"); + } + void setservent(int stayopen) { + croak("Function \"setservent\" not implemented in this version of perl"); + } + void endservent() { + croak("Function \"endservent\" not implemented in this version of perl"); + } + __sockadapt_my_hostent_t gethostent() { + croak("Function \"gethostent\" not implemented in this version of perl"); + return (__sockadapt_my_hostent_t )NULL; /* Avoid MISSINGRETURN warning, not reached */ + } + __sockadapt_my_servent_t getservent() { + croak("Function \"getservent\" not implemented in this version of perl"); + return (__sockadapt_my_servent_t )NULL; /* Avoid MISSINGRETURN warning, not reached */ + } + +#else + /* Work around things missing/broken in SOCKETSHR. */ + __sockadapt_my_netent_t getnetbyaddr( __sockadapt_my_addr_t net, int type) { croak("Function \"getnetbyaddr\" not implemented in this version of perl"); return (struct netent *)NULL; /* Avoid MISSINGRETURN warning, not reached */ @@ -33,13 +81,7 @@ __sockadapt_my_netent_t getnetbyname( __sockadapt_my_name_t name) { } __sockadapt_my_netent_t getnetent() { croak("Function \"getnetent\" not implemented in this version of perl"); - return (struct netent *)NULL; /* Avoid MISSINGRETURN warning, not reached */ -} -void setnetent() { - croak("Function \"setnetent\" not implemented in this version of perl"); -} -void endnetent() { - croak("Function \"endnetent\" not implemented in this version of perl"); + return (__sockadapt_my_netent_t )NULL; /* Avoid MISSINGRETURN warning, not reached */ } /* Some TCP/IP implementations seem to return success, when getpeername() @@ -64,3 +106,4 @@ int my_getpeername(int sock, struct sockaddr *addr, int *addrlen) { } return rslt; } +#endif /* SOCKETSHR stuff */ diff --git a/vms/sockadapt.h b/vms/sockadapt.h index 041fbd7073..e104ca7f3c 100644 --- a/vms/sockadapt.h +++ b/vms/sockadapt.h @@ -2,7 +2,7 @@ * * Authors: Charles Bailey bailey@genetics.upenn.edu * David Denholm denholm@conmat.phys.soton.ac.uk - * Last Revised: 17-Mar-1995 + * Last Revised: 4-Mar-1997 * * This file should include any other header files and procide any * declarations, typedefs, and prototypes needed by perl for TCP/IP @@ -11,15 +11,33 @@ * This version is set up for perl5 with socketshr 0.9D TCP/IP support. */ -/* SocketShr doesn't support these routines, but the DECC RTL contains - * stubs with these names, designed to be used with the UCX socket - * library. We avoid linker collisions by substituting new names. - */ -#define getnetbyaddr no_getnetbyaddr -#define getnetbyname no_getnetbyname -#define getnetent no_getnetent -#define setnetent no_setnetent -#define endnetent no_endnetent +#ifndef __SOCKADAPT_INCLUDED +#define __SOCKADAPT_INCLUDED 1 + +#if defined(DECCRTL_SOCKETS) + /* Use builtin socket interface in DECCRTL and + * UCX emulation in whatever TCP/IP stack is present. + * Provide prototypes for missing routines; stubs are + * in sockadapt.c. + */ +# include <socket.h> +# include <inet.h> +# include <in.h> +# include <netdb.h> + void sethostent(int); + void endhostent(void); + void setnetent(int); + void endnetent(void); + void setprotoent(int); + void endprotoent(void); + void setservent(int); + void endservent(void); + +#else + /* Pull in SOCKETSHR's header, and set up structures for + * gcc, whose basic header file set doesn't include the + * TCP/IP stuff. + */ #ifdef __GNU_CC__ @@ -109,7 +127,7 @@ struct netent { struct netent *getnetbyaddr( long net, int type); struct netent *getnetbyname( char *name); struct netent *getnetent(); -void setnetent(); +void setnetent(int); void endnetent(); #else /* !__GNU_CC__ */ @@ -123,13 +141,22 @@ void endnetent(); #include <inet.h> #include <netdb.h> /* However, we don't have these two in the system headers. */ -void setnetent(); +void setnetent(int); void endnetent(); +/* SocketShr doesn't support these routines, but the DECC RTL contains + * stubs with these names, designed to be used with the UCX socket + * library. We avoid linker collisions by substituting new names. + */ +#define getnetbyaddr no_getnetbyaddr +#define getnetbyname no_getnetbyname +#define getnetent no_getnetent +#define setnetent no_setnetent +#define endnetent no_endnetent #endif #include <socketshr.h> -/* socketshr.h from SocketShr 0.9D doesn't alias fileno; it's comments say +/* socketshr.h from SocketShr 0.9D doesn't alias fileno; its comments say * that the CRTL version works OK. This isn't the case, at least with * VAXC, so we use the SocketShr version. * N.B. This means that sockadapt.h must be included *after* stdio.h. @@ -148,3 +175,6 @@ int si_fileno(FILE *); #endif #define getpeername my_getpeername int my_getpeername _((int, struct sockaddr *, int *)); + +#endif /* SOCKETSHR stuff */ +#endif /* include guard */ @@ -2343,7 +2343,6 @@ trim_unixpath(char *fspec, char *wildspec, int opts) /* * VMS readdir() routines. * Written by Rich $alz, <rsalz@bbn.com> in August, 1990. - * This code has no copyright. * * 21-Jul-1994 Charles Bailey bailey@genetics.upenn.edu * Minor modifications to original routines. diff --git a/vms/vms_yfix.pl b/vms/vms_yfix.pl index 9f29c80825..f57ea1d515 100644 --- a/vms/vms_yfix.pl +++ b/vms/vms_yfix.pl @@ -23,6 +23,10 @@ while (<C>) { # "y.tab.c" is illegal as a VMS filename; DECC 5.2/VAX preprocessor # doesn't like this. if ( s/^#line\s+(\d+)\s+"y.tab.c"/#line $1 "y_tab.c"/ ) { 1; } + elsif (/char \*getenv/) { + # accomodate old VAXC's macro susbstitution pecularities + $_ = "# ifndef getenv\n$_# endif\n"; + } else { # add the dEXT tag to definitions of global vars, so we'll insert # a globaldef when perly.c is compiled diff --git a/vms/vmsish.h b/vms/vmsish.h index 61543415e2..fd4434efb2 100644 --- a/vms/vmsish.h +++ b/vms/vmsish.h @@ -360,7 +360,6 @@ struct utimbuf { * opendir(), closedir(), readdir(), seekdir(), telldir(), and * vmsreaddirversions(), and preprocessor stuff on which these depend: * Written by Rich $alz, <rsalz@bbn.com> in August, 1990. - * This code has no copyright. */ /* Data structure returned by READDIR(). */ struct dirent { |