lijewski@batcomputer.tn.cornell.edu (Mike Lijewski) (12/21/89)
This is a patchfile to get AIX/370 (tested on F44) and AIX
PS/2 (tested on Version 1.1) working with bash 1.04. To use,
cd to the bash source directory and type:
patch -p0 < thisFile
*** Makefile.orig Wed Dec 20 10:55:29 1989
--- Makefile Wed Dec 20 14:11:47 1989
***************
*** 33,43 ****
#
# 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.
! DESTDIR = /usr/gnu/bin
# The name of the target hardware. It makes a difference. If your
# machine doesn't seem to be represented by one of the machines here,
--- 33,43 ----
#
# The mailing address of you, the local maintainer. This *must* be
# enclosed in double quotes. Until I make a better Makefile.
! MAINTAINER = '"mjlx@eagle"'
# Destination installation directory. The shell is copied here if
# you do a `make install'. The directory name does NOT end in a slash.
! DESTDIR = /staff/mjlx/bin
# The name of the target hardware. It makes a difference. If your
# machine doesn't seem to be represented by one of the machines here,
***************
*** 44,56 ****
# 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, AIX,
! # ATT3B, ATT386
! 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,56 ----
# 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, AIX,
! # ATT3B, ATT386, AIX370, AIXPS2
! TARGET = AIX370
# 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 = Bsd
# 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
***************
*** 75,92 ****
# Xenix requires -ldir -lx. It is also required in the readline Makefile.
#LOCAL_LIBS = -ldir -lx
! 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 = yacc
! BISON = bison -y
# If you don't have Gcc use cc.
! CC = gcc -traditional
####################################################################
--- 75,103 ----
# Xenix requires -ldir -lx. It is also required in the readline Makefile.
#LOCAL_LIBS = -ldir -lx
! # AIX/370 and AIXPS2 both require the -lbsd library.
! LOCAL_LIBS = -lbsd
!
!
! # AIX370 and AIXPS2 both also require the _BSD flag for BSD compatibility.
! #I have defined this flag here and added it to CFLAGS, so that it is in
! # one place, instead of peppering the source files with this define.
! AIX_BSD_COMP = _BSD
!
!
! GCC_SUNOS4_FLAG = #-Bstatic
DEBUG_FLAGS = $(PROFILE_FLAGS) -g $(GCC_SUNOS4_FLAG)
LDFLAGS = $(DEBUG_FLAGS)
! CFLAGS = $(DEBUG_FLAGS) -D${TARGET} -DTARGET=${TARGET} -D${OS} -D${AIX_BSD_COMP}
CPPFLAGS= -I$(LIBSRC)
# If you don't have Bison use "yacc". Otherwise use "bison -y".
! BISON = yacc
! #BISON = bison -y
# If you don't have Gcc use cc.
! #CC = gcc -traditional
! CC = cc
####################################################################
***************
*** 113,120 ****
# Our malloc.
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\
--- 124,131 ----
# Our malloc.
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\
***************
*** 128,135 ****
ALLOCA_LIB =
# If your system doesn't have a sys_siglist, then define SIGLIST
! # as siglist.o
! #SIGLIST = siglist.o
RM = rm -f
AR = ar
--- 139,147 ----
ALLOCA_LIB =
# If your system doesn't have a sys_siglist, then define SIGLIST
! # as siglist.o. AIX370 has a sys_siglist, while AIXPS2 doesn't seem
! # to have one.
! SIGLIST = #siglist.o
RM = rm -f
AR = ar
***************
*** 139,145 ****
# We would like to use GNU's termcap library. Where is it?
# If you don't have -ltermcap, you might try -lcurses.
#TERMCAP = -ltermcap
- TERMCAP=/usr/lib/libtermcap.a
READLINE= ./readline/libreadline.a
# The source code for the support libraries.
--- 151,156 ----
***************
*** 206,212 ****
$(PROGRAM): .build $(OBJECTS) $(LIBRARIES) Makefile
$(CC) $(LDFLAGS) -o $(PROGRAM) $(OBJECTS) \
! $(LIBRARIES) $(LOCAL_LIBS) $(ALLOCA_LIB) -ltermcap
$(RM) -f .make
.build: .make newversion.aux
--- 217,223 ----
$(PROGRAM): .build $(OBJECTS) $(LIBRARIES) Makefile
$(CC) $(LDFLAGS) -o $(PROGRAM) $(OBJECTS) \
! $(LIBRARIES) $(LOCAL_LIBS) $(ALLOCA_LIB) -lcurses
$(RM) -f .make
.build: .make newversion.aux
***************
*** 230,238 ****
(cd $(RLIBSRC); $(MAKE) $(MFLAGS) CC='$(CC)'\
CFLAGS='$(CFLAGS) -DSHELL')
! $(TERMCAP): $(TERMCAP_SOURCE)
! (cd $(LIBSRC); $(MAKE) $(MFLAGS) CC='$(CC)'\
! CFLAGS='$(CFLAGS) -I.')
shell.o: shell.h flags.h shell.c
$(CC) $(CFG_FLAGS) $(CFLAGS) $(CPPFLAGS) -c shell.c
--- 241,249 ----
(cd $(RLIBSRC); $(MAKE) $(MFLAGS) CC='$(CC)'\
CFLAGS='$(CFLAGS) -DSHELL')
! #$(TERMCAP): $(TERMCAP_SOURCE)
! # (cd $(LIBSRC); $(MAKE) $(MFLAGS) CC='$(CC)'\
! # CFLAGS='$(CFLAGS) -I.')
shell.o: shell.h flags.h shell.c
$(CC) $(CFG_FLAGS) $(CFLAGS) $(CPPFLAGS) -c shell.c
***************
*** 247,255 ****
$(CC) -I$(ALLOC_SOURCE) $(CFLAGS) $(MALLOC_FLAGS) -c $*.c &&\
mv `basename $*`.o $(MALLOC)
! #$(ALLOCA): $(ALLOC_FILES)
! # $(CC) -I$(ALLOC_SOURCE) $(CFLAGS) -o $(ALLOCA) -c $*.c
! # mv `basename $*`.o $(ALLOCA)
bashline.o: bashline.c config.h $(RLIBSRC)readline.h variables.h builtins.h
jobs.o: jobs.c nojobs.c jobs.h config.h
--- 258,266 ----
$(CC) -I$(ALLOC_SOURCE) $(CFLAGS) $(MALLOC_FLAGS) -c $*.c &&\
mv `basename $*`.o $(MALLOC)
! $(ALLOCA): $(ALLOC_FILES)
! $(CC) -I$(ALLOC_SOURCE) $(CFLAGS) -c $*.c
! mv `basename $*`.o $(ALLOCA)
bashline.o: bashline.c config.h $(RLIBSRC)readline.h variables.h builtins.h
jobs.o: jobs.c nojobs.c jobs.h config.h
*** siglist.c.orig Wed Dec 20 13:42:57 1989
--- siglist.c Wed Dec 20 13:56:04 1989
***************
*** 35,40 ****
--- 35,65 ----
"write on a pipe with no one to read it", /* 13 SIGPIPE */
"alarm clock", /* 14 SIGALRM */
"software termination signum", /* 15 SIGTERM */
+ #ifdef AIXPS2
+ "urgent condition on IO channel", /* 16 SIGURG */
+ "stop", /* 17 SIGSTOP */
+ "interactive stop signal from TTY", /* 18 SIGTSTP */
+ "continue if stopped", /* 19 SIGCONT */
+ "A child has stopped or exited", /* 20 SIGCHLD */
+ "Read of control TTY attempted from background", /* 21 SIGTTIN */
+ "Write to control TTY attempted from background", /* 22 SIGTTOU */
+ "input/output possible or complete", /* 23 SIGIO */
+ "exceeded CPU time limit", /* 24 SIGXCPU */
+ "exceeded file size limit", /* 25 SIGXFSZ */
+ "HFT input data pending", /* 27 SIGMSG */
+ "window size change", /* 28 SIGWINCH */
+ "power failure imminent (save your data)", /* 29 SIGPWR */
+ "user defined signal 1", /* 30 SIGUSR1 */
+ "user defined signal 2", /* 31 SIGUSR2 */
+ "profiling time alarm", /* 32 SIGPROF */
+ "system crash imminent", /* 33 SIGDANGER */
+ "virtual time alarm", /* 34 SIGVTALRM */
+ "migrate process to another CPU", /* 35 SIGMIGRATE */
+ "programming error", /* 36 SIGPRE */
+ "HFT monitor mode granted", /* 60 SIGGRANT */
+ "HFT monitor mode retracted", /* 61 SIGRETRACT */
+ "HFT sound sequence has completed", /* 62 SIGSOUND */
+ #else
"user defined signal 1", /* 16 SIGUSR1 */
"user defined signal 2", /* 17 SIGUSR2 */
"death of a child", /* 18 SIGCLD */
***************
*** 43,47 ****
--- 68,73 ----
"profiling timer alarm", /* 21 SIGPROF */
"asynchronous I/O", /* 22 SIGIO */
"window change or mouse signal", /* 23 SIGWINDOW */
+ #endif
(char *)0x0
};
*** readline/Makefile.orig Wed Dec 20 09:52:20 1989
--- readline/Makefile Wed Dec 20 13:41:00 1989
***************
*** 27,35 ****
# Xenix compilation requires -ldir -lx
#LOCAL_LIBS = -ldir -lx
# Comment this out if you don't think that anyone will ever desire
# the vi line editing mode and features.
! READLINE_DEFINES = -DVI_MODE
DEBUG_FLAGS = -g
LDFLAGS = $(DEBUG_FLAGS)
--- 27,38 ----
# Xenix compilation requires -ldir -lx
#LOCAL_LIBS = -ldir -lx
+ # AIX370 requires the -lbsd library.
+ #LOCAL_LIBS = -lbsd
+
# Comment this out if you don't think that anyone will ever desire
# the vi line editing mode and features.
! #READLINE_DEFINES = -DVI_MODE
DEBUG_FLAGS = -g
LDFLAGS = $(DEBUG_FLAGS)
***************
*** 36,43 ****
CFLAGS = $(DEBUG_FLAGS) $(TYPE) $(SYSV) -I.
# A good alternative is gcc -traditional.
! CC = gcc -traditional
! #CC = cc
RANLIB = /usr/bin/ranlib
AR = ar
RM = rm
--- 39,46 ----
CFLAGS = $(DEBUG_FLAGS) $(TYPE) $(SYSV) -I.
# A good alternative is gcc -traditional.
! #CC = gcc -traditional
! CC = cc
RANLIB = /usr/bin/ranlib
AR = ar
RM = rm
***************
*** 84,95 ****
$(LOCAL_INCLUDES) $*.c
libtest: libreadline.a libtest.c
! $(CC) -o libtest $(CFLAGS) $(CPPFLAGS) -L. libtest.c -lreadline -ltermcap
readline: readline.c history.o keymaps.o funmap.o readline.h chardefs.h
$(CC) $(CFLAGS) $(CPPFLAGS) $(READLINE_DEFINES) \
! $(LOCAL_INCLUDES) -DTEST -o readline readline.c funmap.o \
! keymaps.o history.o -L. -ltermcap
readline.tar: $(THINGS_TO_TAR)
tar -cf readline.tar $(THINGS_TO_TAR)
--- 87,98 ----
$(LOCAL_INCLUDES) $*.c
libtest: libreadline.a libtest.c
! $(CC) -o libtest $(CFLAGS) $(CPPFLAGS) -L. libtest.c -lreadline -lcurses
readline: readline.c history.o keymaps.o funmap.o readline.h chardefs.h
$(CC) $(CFLAGS) $(CPPFLAGS) $(READLINE_DEFINES) \
! $(LOCAL_INCLUDES) -DTEST -D_BSD -o readline \
! readline.c funmap.o keymaps.o history.o -L. -lbsd -lcurses
readline.tar: $(THINGS_TO_TAR)
tar -cf readline.tar $(THINGS_TO_TAR)
*** readline/readline.c.orig Wed Dec 20 09:52:36 1989
--- readline/readline.c Wed Dec 20 13:41:11 1989
***************
*** 36,41 ****
--- 36,46 ----
#include <sys/file.h>
#include <signal.h>
+ #ifdef TEST
+ char *alloca();
+ void free();
+ #endif
+
#ifdef __GNUC__
#define alloca __builtin_alloca
#else
***************
*** 199,204 ****
--- 204,212 ----
FILE *rl_instream = stdin, *rl_outstream = stdout;
/* Non-zero means echo characters as they are read. */
+ /* This is a kludge for the braindamaged AIXPS2 compiler, which
+ will not accept: extern int readline_echoing_p = 1; */
+ extern int readline_echoing_p;
int readline_echoing_p = 1;
/* Current prompt. */
***************
*** 695,701 ****
register int key;
Keymap map;
{
! extern int defining_kbd_macro;
if (defining_kbd_macro)
add_macro_char (key);
--- 703,709 ----
register int key;
Keymap map;
{
! static int defining_kbd_macro;
if (defining_kbd_macro)
add_macro_char (key);
***************
*** 990,996 ****
/* Parsing of key-bindings begins in an enabled state. */
{
! extern unsigned char parsing_conditionalized_out;
parsing_conditionalized_out = 0;
}
}
--- 998,1004 ----
/* Parsing of key-bindings begins in an enabled state. */
{
! static unsigned char parsing_conditionalized_out;
parsing_conditionalized_out = 0;
}
}
***************
*** 2592,2598 ****
#ifdef VI_MODE
{
! extern int vi_doing_insert;
if (vi_doing_insert)
{
rl_end_undo_group ();
--- 2600,2606 ----
#ifdef VI_MODE
{
! static int vi_doing_insert;
if (vi_doing_insert)
{
rl_end_undo_group ();
***************
*** 5517,5522 ****
--- 5525,5536 ----
/* **************************************************************** */
#ifdef TEST
+ #if !defined(__GNU__)
+ #if !defined(sun) || !defined(sparc)
+ #include "../alloc-files/alloca.c"
+ #endif
+ #endif
+
main ()
{
--
Mike Lijewski (H)607/277-7623 (W)607/255-0539 (desk)607/255-2960
Cornell National Supercomputer Facility
ARPA: mjlx@cornellf.tn.cornell.edu BITNET: mjlx@cornellf.bitnet
SMAIL: 1122 Ellis Hollow Rd. Ithaca, NY 14850lijewski@batcomputer.tn.cornell.edu (Mike Lijewski) (12/21/89)
In article <9451@batcomputer.tn.cornell.edu> lijewski@batcomputer.tn.cornell.edu (Mike Lijewski) writes: > >This is a patchfile to get AIX/370 (tested on F44) and AIX >PS/2 (tested on Version 1.1) working with bash 1.04. To use, Please do not apply this patch. Brian has pointed out a subtle bug this introduces in readline to me. I am in the process of fixing this and will send the patches to Brian when I'm done. -- Mike Lijewski (H)607/277-7623 (W)607/255-0539 (desk)607/255-2960 Cornell National Supercomputer Facility ARPA: mjlx@cornellf.tn.cornell.edu BITNET: mjlx@cornellf.bitnet SMAIL: 1122 Ellis Hollow Rd. Ithaca, NY 14850