🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Jon A. Tankersley Thu, 14 Sep 1989 04:30
Gawk-2.10 and Alliant
#423
Author: Jon A. Tankersley
Date: Thu, 14 Sep 1989 04:30
98 lines
3410 bytes
I just finished trying to get a fully compliant awk on our Alliant.  The one
distributed by Alliant doesn't handle changes to $n when printing $0.

I tried to port gawk and ran into a couple of problems:  gcc won't compile
it (awk2.c fsne [d0|d1], Invalid op-code)!  cc won't compile it! 
pcc will, but....  Even tried bison for the yacc/bison segment.

no vprintf, but the old code had to have HASDOPRNT and NOVPRINTF defined which
enabled a macro in awk.h.  Here is a patch to awk5.c to fix this problem.
*** awk5.c	Wed Sep  6 00:13:17 1989
--- awk5.c.old	Wed Sep 13 23:11:43 1989
***************
*** 134,144
  	abort();
  #endif
  	exit(1);
  }
  
! #if defined(NOVPRINTF) && !defined(HASDOPRNT)
  int
  vsprintf(str, fmt, ap)
  	char *str, *fmt;
  	va_list ap;
  {

--- 134,144 -----
  	abort();
  #endif
  	exit(1);
  }
  
! #if defined (HASDOPRNT) && defined(NOVPRINTF)
  int
  vsprintf(str, fmt, ap)
  	char *str, *fmt;
  	va_list ap;
  {

gawk builds properly, but doesn't act properly.
gawk -F: '{$3=$3*2;print}' /etc/passwd
will core dump.   It does, however, start printing properly and then die.
This does not print a doubled UID number under Alliant's awk.
Also other simple awk programs with math functions appear to self-destruct. 
Arithmetic execptions when none seems to occur with Alliant's awk.

Current defs:

OPTIMIZE=-O
DEBUG=-DDEBUG -DFUNC_TRACE -DMEMDEBUG
DEBUGGER=-g
PROFILE=#-pg
SYSV=
#BSD=-DHASDOPRNT
MEMCMP=-DNOMEMCMP
VPRINTF=-DNOVPRINTF
  
FLAGS= $(OPTIMIZE) $(SYSV) $(DEBUG) $(BSD) $(MEMCMP) $(VPRINTF)
CFLAGS= $(FLAGS) $(DEBUGGER) $(PROFILE) 
LDFLAGS= #-Bstatic

SRC =	awk1.c awk2.c awk3.c awk4.c awk5.c \
	awk6.c awk7.c awk8.c awk9.c version.c do_free.c awka.c

PCSTUFF= makefile.pc names.lnk random.c

AWKOBJS = awk1.o awk2.o awk3.o awk4.o awk5.o awk6.o awk7.o awk8.o awk9.o \
		version.o awka.o do_free.o # used for MEMDEBUG
ALLOBJS = $(AWKOBJS) awk.tab.o

# Parser to use on grammar -- if you don't have bison use the first one
#PARSER = yacc
PARSER = bison

# S5OBJS
#	Set equal to alloca.o if your system is S5 and you don't have
#	alloca. Uncomment the rule below to actually make alloca.o.
S5OBJS=

# GETOPT
#	Set equal to getopt.o if you have a generic BSD system. The
#	generic BSD getopt is reported to not work with gawk. The
#	gnu getopt is supplied in gnu.getopt.c. The Public Domain
#	getopt from AT&T is in att.getopt.c. Choose one of these,
#	and rename it getopt.c.
GETOPT=getopt.o

# LIBOBJS
#	Stuff that awk uses as library routines, but not in /lib/libc.a.
LIBOBJS= regex.o $(S5OBJS) $(GETOPT)

UPDATES = Makefile awk.h awk.y \
	$(SRC) regex.c regex.h

Anybody got any ideas?  No problems on Sun that I've seen so it appears to
be somewhat Alliant specific.
-tank-
#include <std/disclaimer.h>		/* nobody knows the trouble I .... */
tank@apctrc.trc.amoco.com    ..!uunet!apctrc!tank
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads