[gnu.bash.bug] patches for SCO Xenix 386

jbayer@ispi.com (Jonathan Bayer) (08/29/89)

The following are the relatively minor changes to bash necessary
to make it compile under SCO Xenix 2.3.2 using the 2.3 development system.

Please note that I reported a bug regarding a control-d in a seperate
message.  That patch is also included in this set of patches (parse.y)


JB

*** /usr/news/sources/gnu/bash/src/bash-1.02/Makefile	Sat Jul  1 22:12:29 1989
--- Makefile	Mon Aug 28 11:14:08 1989
***************
*** 18,25 ****
  
  # Here is a rule for making .o files from .c files that doesn't force
  # the type of the machine (like -sun3) into the flags.
! %.o : %.c
! 	$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
  
  # Of course, you cannot do this the first time through...
  #SHELL=/usr/gnu/bin/bash
--- 18,25 ----
  
  # Here is a rule for making .o files from .c files that doesn't force
  # the type of the machine (like -sun3) into the flags.
! #%.o : %.c
! #	$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
  
  # Of course, you cannot do this the first time through...
  #SHELL=/usr/gnu/bin/bash
***************
*** 33,39 ****
  #
  # The mailing address of you, the local maintainer.  This *must* be
  # enclosed in double quotes.  Until I make a better Makefile.
! MAINTAINER = '"bfox@ai.mit.edu"'
  
  # Destination installation directory.  The shell is copied here if
  # you do a `make install'.  The directory name does NOT end in a slash.
--- 33,39 ----
  #
  # The mailing address of you, the local maintainer.  This *must* be
  # enclosed in double quotes.  Until I make a better Makefile.
! MAINTAINER = '"jbayer@ispi.COM"'
  
  # Destination installation directory.  The shell is copied here if
  # you do a `make install'.  The directory name does NOT end in a slash.
***************
*** 44,55 ****
  # try one and see how well you do.
  # Use i386 for PC type 386 boxes. (Compaq, etc.)
  # SUN3, SUN4, SUN386i, VAX, SONY, CONVEX, HP, HP9KS300, i386, NeXT
! TARGET = SUN3
  
  # The name of the target operating system.  There isn't such a big
  # difference between SUNOS3 and Bsd.  But there might be in the future.
  # SUNOS3, SUNOS4, SYSV, Bsd, HPUX, UNIXPC
! OS = SUNOS4
  
  # You only need this if you are hacking the shell in a location
  # that doesn't do enough backups, or does a poor job.  In that
--- 44,55 ----
  # try one and see how well you do.
  # Use i386 for PC type 386 boxes. (Compaq, etc.)
  # SUN3, SUN4, SUN386i, VAX, SONY, CONVEX, HP, HP9KS300, i386, NeXT
! TARGET = i386
  
  # The name of the target operating system.  There isn't such a big
  # difference between SUNOS3 and Bsd.  But there might be in the future.
  # SUNOS3, SUNOS4, SYSV, Bsd, HPUX, UNIXPC
! OS = SYSV
  
  # You only need this if you are hacking the shell in a location
  # that doesn't do enough backups, or does a poor job.  In that
***************
*** 71,87 ****
  # HP-UX compilation requires the BSD library.
  #LOCAL_LIBS = -lBSD
  
! GCC_SUNOS4_FLAG = -Bstatic
! DEBUG_FLAGS = $(PROFILE_FLAGS) -g $(GCC_SUNOS4_FLAG)
! LDFLAGS	= $(DEBUG_FLAGS) 
! CFLAGS	= $(DEBUG_FLAGS) -D${TARGET} -DTARGET=${TARGET} -D${OS}
! CPPFLAGS= -I$(LIBSRC)
  
  # If you don't have Bison use "yacc".  Otherwise use "bison -y".
! BISON = bison -y
  
  # If you don't have Gcc use cc.
! CC = gcc -traditional
  
  ####################################################################
  
--- 71,88 ----
  # HP-UX compilation requires the BSD library.
  #LOCAL_LIBS = -lBSD
  
! #GCC_SUNOS4_FLAG = -Bstatic
! #DEBUG_FLAGS = $(PROFILE_FLAGS) -g $(GCC_SUNOS4_FLAG)
! DEBUG_FLAGS = $(PROFILE_FLAGS)
! LDFLAGS	= $(DEBUG_FLAGS) -ltcap -ltermlib -ldir
! CFLAGS	= $(DEBUG_FLAGS) -D${TARGET} -DTARGET=${TARGET} -D${OS} -I$(LIBSRC)
! #CPPFLAGS= -I$(LIBSRC)
  
  # If you don't have Bison use "yacc".  Otherwise use "bison -y".
! BISON = yacc
  
  # If you don't have Gcc use cc.
! CC = cc
  
  ####################################################################
  
***************
*** 109,115 ****
  MALLOC = $(ALLOC_SOURCE)malloc.o
  MALLOC_FLAGS = -Drcheck -Dbotch=programming_error
  #MALLOC= $(ALLOC_SOURCE)malloc.o
! #ALLOCA= $(ALLOC_SOURCE)alloca.o
  
  ALLOC_HEADERS = $(ALLOC_SOURCE)getpagesize.h
  ALLOC_FILES = $(ALLOC_SOURCE)malloc.c $(ALLOC_SOURCE)alloca.c\
--- 110,116 ----
  MALLOC = $(ALLOC_SOURCE)malloc.o
  MALLOC_FLAGS = -Drcheck -Dbotch=programming_error
  #MALLOC= $(ALLOC_SOURCE)malloc.o
! ALLOCA= $(ALLOC_SOURCE)alloca.o
  
  ALLOC_HEADERS = $(ALLOC_SOURCE)getpagesize.h
  ALLOC_FILES = $(ALLOC_SOURCE)malloc.c $(ALLOC_SOURCE)alloca.c\
***************
*** 140,146 ****
  LIBRARY_TAR	= $(LIBRARY_SOURCE) $(LIBSRC)Makefile $(LIBSRC)ChangeLog
  
  # The order is important.  Most dependent first.
! LIBRARIES = $(READLINE) $(HISTORY) $(TERMCAP)
  
  CSOURCES = shell.c parse.y general.c make_cmd.c print_cmd.c\
  	   dispose_cmd.c execute_cmd.c variables.c builtins.c\
--- 141,148 ----
  LIBRARY_TAR	= $(LIBRARY_SOURCE) $(LIBSRC)Makefile $(LIBSRC)ChangeLog
  
  # The order is important.  Most dependent first.
! #LIBRARIES = $(READLINE) $(HISTORY) $(TERMCAP)
! LIBRARIES = $(READLINE) $(HISTORY) 
  
  CSOURCES = shell.c parse.y general.c make_cmd.c print_cmd.c\
  	   dispose_cmd.c execute_cmd.c variables.c builtins.c\
*** /usr/news/sources/gnu/bash/src/bash-1.02/config.h	Mon Jun 26 21:45:35 1989
--- config.h	Mon Aug 28 10:41:44 1989
***************
*** 48,54 ****
  
  /* The default value of the PATH variable. */
  #define DEFAULT_PATH_VALUE \
! 	":/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/etc:/usr/etc"
  
  /* Define V9_ECHO if you want to give the echo builtin backslash-escape
     interpretation, in the style of the Bell Labs 9th Edition version of
--- 48,54 ----
  
  /* The default value of the PATH variable. */
  #define DEFAULT_PATH_VALUE \
! 	":/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin"
  
  /* Define V9_ECHO if you want to give the echo builtin backslash-escape
     interpretation, in the style of the Bell Labs 9th Edition version of
*** /usr/news/sources/gnu/bash/src/bash-1.02/parse.y	Sat Jul  1 21:42:28 1989
--- parse.y	Mon Aug 28 17:09:59 1989
***************
*** 430,439 ****
  	current_readline_line = readline (current_readline_prompt);
  
        current_readline_line_index = 0;
!       current_readline_line =
! 	(char *)xrealloc (current_readline_line,
! 			  2 + strlen (current_readline_line));
!       strcat (current_readline_line, "\n");
      }
  
    if (!current_readline_line[current_readline_line_index])
--- 430,447 ----
  	current_readline_line = readline (current_readline_prompt);
  
        current_readline_line_index = 0;
! 
!       if (current_readline_line == (char *)EOF) {
! 		current_readline_line = (char *)xmalloc(2);
! 		strcpy(" ",current_readline_line);
! 		current_readline_line[0] = EOF;
!       } else {
! 		
!          current_readline_line =
! 	   (char *)xrealloc (current_readline_line,
! 			     2 + strlen (current_readline_line));
!          strcat (current_readline_line, "\n");
!        }
      }
  
    if (!current_readline_line[current_readline_line_index])
*** /usr/news/sources/gnu/bash/src/bash-1.02/shell.c	Sat Jul  1 14:33:04 1989
--- shell.c	Mon Aug 28 10:47:45 1989
***************
*** 301,307 ****
    else
      {
        interactive = 0;
! #ifndef JOB_CONTROL
        job_control = 0;
  #endif
      }
--- 301,308 ----
    else
      {
        interactive = 0;
! #ifndef NOJOBS
! /* #ifndef JOB_CONTROL */
        job_control = 0;
  #endif
      }
*** /usr/news/sources/gnu/bash/src/bash-1.02/trap.c	Fri Jun 23 00:42:17 1989
--- trap.c	Mon Aug 28 11:22:04 1989
***************
*** 42,51 ****
--- 42,55 ----
     "SIGILL",		/* illegal instruction (not reset when caught) */
     "SIGTRAP",		/* trace trap (not reset when caught) */
  #ifdef SYSV
+ #ifndef	M_XENIX
     "SIGABRT",
  #else
     "SIGIOT",		/* IOT instruction */
  #endif
+ #else
+    "SIGIOT",		/* IOT instruction */
+ #endif
     "SIGEMT",		/* EMT instruction */
     "SIGFPE",		/* floating point exception */
     "SIGKILL",		/* kill (cannot be caught or ignored) */
***************
*** 60,68 ****
--- 64,74 ----
     "SIGUSR2",
     "SIGCLD",
     "SIGPWR",
+ #ifndef	M_XENIX
     "SIGJUNK1",
     "SIGJUNK2",
     "SIGPOLL"
+ #endif
  #else
     "SIGURG",		/* urgent condition on IO channel */
     "SIGSTOP",		/* sendable stop signal not from tty */
*** /usr/news/sources/gnu/bash/src/bash-1.02/variables.c	Tue Jun 27 16:40:42 1989
--- variables.c	Mon Aug 28 10:52:37 1989
***************
*** 27,33 ****
--- 27,35 ----
  #include "version.h"
  
  #ifdef SYSV
+ #ifndef	M_XENIX
  struct pwd *getpwuid (), *getpwent ();
+ #endif
  #endif
  
  /* The list of shell variables that the user has created, or that came from

-- 
Jonathan Bayer		Intelligent Software Products, Inc.
(201) 245-5922		500 Oakwood Ave.
jbayer@ispi.COM		Roselle Park, NJ   07204