summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/usr.bin/perl/mpeix/mpeixish.h92
-rw-r--r--gnu/usr.bin/perl/mpeix/nm8
-rw-r--r--gnu/usr.bin/perl/mpeix/relink45
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"'