diff options
-rw-r--r-- | gnu/usr.bin/perl/mpeix/mpeixish.h | 92 | ||||
-rw-r--r-- | gnu/usr.bin/perl/mpeix/nm | 8 | ||||
-rw-r--r-- | gnu/usr.bin/perl/mpeix/relink | 45 |
3 files changed, 25 insertions, 120 deletions
diff --git a/gnu/usr.bin/perl/mpeix/mpeixish.h b/gnu/usr.bin/perl/mpeix/mpeixish.h index f4ce38ebb33..23111718ffe 100644 --- a/gnu/usr.bin/perl/mpeix/mpeixish.h +++ b/gnu/usr.bin/perl/mpeix/mpeixish.h @@ -9,32 +9,32 @@ * This symbol, if defined, indicates that the ioctl() routine is * available to set I/O characteristics */ -#define HAS_IOCTL /**/ +#define HAS_IOCTL / **/ /* HAS_UTIME: * This symbol, if defined, indicates that the routine utime() is * available to update the access and modification times of files. */ -#define HAS_UTIME /**/ +#define HAS_UTIME / **/ /* HAS_GROUP * This symbol, if defined, indicates that the getgrnam() and * getgrgid() routines are available to get group entries. */ -#define HAS_GROUP /**/ +#define HAS_GROUP / **/ /* HAS_PASSWD * This symbol, if defined, indicates that the getpwnam() and * getpwuid() routines are available to get password entries. */ -#define HAS_PASSWD /**/ +#define HAS_PASSWD / **/ #define HAS_KILL #define HAS_WAIT /* USEMYBINMODE * This symbol, if defined, indicates that the program should - * use the routine my_binmode(FILE *fp, char iotype, int mode) to insure + * use the routine my_binmode(FILE *fp, char iotype) to insure * that a file is in "binary" mode -- that is, that no translation * of bytes occurs on read or write operations. */ @@ -52,7 +52,7 @@ * This symbol is defined if this system has a stat structure declaring * st_rdev */ -#define USE_STAT_RDEV /**/ +#define USE_STAT_RDEV / **/ /* ACME_MESS: * This symbol, if defined, indicates that error messages should be @@ -87,7 +87,9 @@ */ /* #define ALTERNATE_SHEBANG "#!" / **/ -#include <signal.h> +#if !defined(NSIG) || defined(M_UNIX) || defined(M_XENIX) +# include <signal.h> +#endif #ifndef SIGABRT # define SIGABRT SIGILL @@ -95,7 +97,7 @@ #ifndef SIGILL # define SIGILL 6 /* blech */ #endif -#define ABORT() kill(PerlProc_getpid(),SIGABRT); +#define ABORT() kill(getpid(),SIGABRT); /* * fwrite1() should be a routine with the same calling sequence as fwrite(), @@ -110,12 +112,17 @@ #define Fflush(fp) fflush(fp) #define Mkdir(path,mode) mkdir((path),(mode)) -#ifndef PERL_SYS_INIT_BODY -# define PERL_SYS_INIT_BODY(c,v) PERL_FPU_INIT; PERLIO_INIT; MALLOC_INIT +#ifndef PERL_SYS_INIT +#ifdef PERL_SCO5 +/* this should be set in a hint file, not here */ +# define PERL_SYS_INIT(c,v) fpsetmask(0); MALLOC_INIT +#else +# define PERL_SYS_INIT(c,v) MALLOC_INIT +#endif #endif -#ifndef PERL_SYS_TERM_BODY -#define PERL_SYS_TERM_BODY() PERLIO_TERM; MALLOC_TERM +#ifndef PERL_SYS_TERM +#define PERL_SYS_TERM() MALLOC_TERM #endif #define BIT_BUCKET "/dev/null" @@ -130,64 +137,3 @@ #undef PRPASSWD #undef PWAGE #undef PWCOMMENT - -/* various missing external function declarations */ - -#include <sys/ipc.h> -extern key_t ftok (char *pathname, char id); -extern char *gcvt (double value, int ndigit, char *buf); -extern int isnan (double value); -extern void srand48(long int seedval); -extern double drand48(void); -extern double erand48(unsigned short xsubi[3]); -extern long jrand48(unsigned short xsubi[3]); -extern void lcong48(unsigned short param[7]); -extern long lrand48(void); -extern long mrand48(void); -extern long nrand48(unsigned short xsubi[3]); -extern unsigned short *seed48(unsigned short seed16v[3]); - -/* various missing constants -- define 'em */ - -#define PF_UNSPEC 0 - -/* declarations for wrappers in mpeix.c */ - -#include <time.h> -#include <sys/wait.h> -#include <sys/socket.h> -#include <netinet/in.h> - - -extern int ftruncate(int fd, long wantsize); -extern int gettimeofday( struct timeval *tp, struct timezone *tpz ); -extern int truncate(const char *pathname, off_t length); - -extern int mpe_read(int filedes, void *buffer, size_t len); -extern int mpe_write(int filedes, const void *buffer, size_t len); -extern int mpe_send(int socket, const void *buffer, size_t len, int flags); -extern int mpe_sendto(int socket, const void *buffer, size_t len, - int flags, const struct sockaddr *dest_addr, - size_t dest_len); -extern int mpe_recv(int socket, void *buffer, size_t length, int flags); -extern int mpe_recvfrom(int socket, void *buffer, size_t length, - int flags, struct sockaddr *address, - size_t *address_len) ; -extern int mpe_bind(int socket, const struct sockaddr *address, - size_t address_len); -extern int mpe_getsockname(int socket, struct sockaddr *address, - size_t *address_len); -extern int mpe_getpeername(int socket, struct sockaddr *address, - size_t *address_len); - -/* Replacements to fix various socket problems -- see mpeix.c */ -#define fcntl mpe_fcntl -#define read mpe_read -#define write mpe_write -#define send mpe_send -#define sendto mpe_sendto -#define recv mpe_recv -#define recvfrom mpe_recvfrom -#define bind mpe_bind -#define getsockname mpe_getsockname -#define getpeername mpe_getpeername diff --git a/gnu/usr.bin/perl/mpeix/nm b/gnu/usr.bin/perl/mpeix/nm index 64e58be4d82..b2eb58d9d6c 100644 --- a/gnu/usr.bin/perl/mpeix/nm +++ b/gnu/usr.bin/perl/mpeix/nm @@ -22,12 +22,12 @@ esac # I wanted to pipe this into awk, but it fell victim to a known pipe/streams # bug on my multiprocessor machine. -callci xeq linkedit.pub.sys \"$LIST\" >nm.$$ +callci xeq linkedit.pub.sys \"$LIST\" >/tmp/nm.$$ -/bin/awk '\ +awk '\ / data univ / { printf "%-20s|%10s|%-6s|%-7s|%s\n",$1,$5,"extern","data","?"} \ - / entry univ / { printf "%-20s|%10s|%-6s|%-7s|%s\n",$1,$7,"extern","entry","?"}' nm.$$ + / entry univ / { printf "%-20s|%10s|%-6s|%-7s|%s\n",$1,$7,"extern","entry","?"}' /tmp/nm.$$ -rm -f nm.$$ +rm -f /tmp/nm.$$ exit 0 diff --git a/gnu/usr.bin/perl/mpeix/relink b/gnu/usr.bin/perl/mpeix/relink index 2984bcecfe3..625e2f03a5a 100644 --- a/gnu/usr.bin/perl/mpeix/relink +++ b/gnu/usr.bin/perl/mpeix/relink @@ -1,49 +1,8 @@ #!/bin/sh -# The MPE POSIX libc archive library contains rand(), but this function has -# been omitted from the libc shared library on the mistaken assumption that -# the rand() function in the kernel library /SYS/PUB/XL could be used instead. -# However, rand() in /SYS/PUB/XL is a Fortran function with different semantics -# from the C version that we expect. - -# So in order to get the correct rand() function and to make it available to -# the dynamically loaded perl extensions, we will build our own mini rand() -# shared library and add this to the perl NMPRG's XL list. - -RAND=/$HPACCOUNT/$HPGROUP/libcrand - -echo "Creating $RAND.sl...\n" - -TEMP=./perlmpe.$$ - -rm -f $TEMP $RAND.a $RAND.sl - -/bin/cat - >$TEMP <<EOF -buildrl $RAND.a -copyrl from=/lib/libc.a;to=$RAND.a;module=rand -revealrl rl=$RAND.a;all -buildxl $RAND.sl;limit=1 -addxl from=$RAND.a;to=$RAND.sl;share -listxl xl=$RAND.sl -EOF - -callci "xeq LINKEDIT.PUB.SYS <$TEMP" - -rm -f $TEMP $RAND.a - # MPE/iX as of 5.5 does not yet properly support linking against dynamic # libraries via gcc or ld. For now, re-run gcc without the external library # list, and then run the native linker with the list of dynamic libraries. -echo "Creating the perl executable NMPRG..." - -gcc -o perl perlmain.o \ - lib/auto/DynaLoader/DynaLoader.a \ - libperl.a \ - `cat ext.libs` \ - -L/BINDFW/CURRENT/lib -lbind \ - -L/SYSLOG/PUB -lsyslog - -echo "Modifying the perl executable NMPRG XL list...\n" - -callci "xeq LINKEDIT.PUB.SYS 'altprog ./perl;xl=/usr/lib/libcurses.sl,/lib/libsvipc.sl,/usr/lib/libsocket.sl,/usr/lib/libstr.sl,/lib/libm.sl,$RAND.sl,/lib/libc.sl'" +gcc -o perl perlmain.o lib/auto/DynaLoader/DynaLoader.a libperl.a `cat ext.libs` -L/BIND/PUB/lib -lbind -L/SYSLOG/PUB -lsyslog +callci 'linkedit "altprog ./perl;xl=/usr/lib/libcurses.sl,/lib/libsvipc.sl,/usr/lib/libsocket.sl,/lib/libm.sl,/lib/libc.sl"' |