🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.g++.lib.bug
Article #354

UPDATED PATCHES for libg++ 2.2 with HP-UX 8.0 (gcc 2.3.1)

#354
From: Bart Muyzer
Date: Wed, 18 Nov 1992 04:48
1819 lines
52705 bytes
Hi,

Thanks to Dave Anglin, I can now post an updated set of patches which should
make libg++ 2.2 make compile under HP-UX 8.0. Please refer to the README.hp
file for details. I have to admit I didn't test them (yet), so please drop me
a line in case of difficulties.

The file "Changes" describes the changes Dave made to the patches I posted
earlier.

Have fun,
							>] Bartm [<
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# This is a shell archive.  Remove anything before this line,
# then unpack it by saving it in a file and typing "sh file".
#
# Wrapped by Bart Muyzer <bartm@mind> on Tue Nov 17 16:45:38 1992
#
# This archive contains:
#	README.hp	Changes		hp9k700-patches	
#

LANG=""; export LANG
PATH=/bin:/usr/bin:$PATH; export PATH

echo x - README.hp
cat >README.hp <<'@EOF'
	=== Compiling libg++ 2.2 on HP9000 s700 using gcc 2.3.1.u2 ===

Original:
    Author	   : Bart Muijzer
    E-mail	   : bartm@cv.ruu.nl

Update 1:
    Author         : Dave Anglin
    E-mail         : dave@hiauly1.hia.nrc.ca

Last update: Fri Nov 13 10:11:48 EST 1992

THE COMPILER
============

I used gcc 2.3.1.u2 from jaguar.cs.utah.edu, installed "out-of-the-box" for
hppa 1.1 architectures. This is a version of gcc 2.3.1 which fixes some major
HPPA bugs in it.

I would advise getting the Utah version when you get time.  There seem to
have been enough problems fixed to make this worthwhile.

COMPILING AND TESTING
=====================

Here's how I got to compile and install libg++ 2.2 on the HP 9000 series 700 
using gcc 2.3.1.u2.

1. Apply the patches contained in the file hp9k700-patches from libg++-2.2/..
   directory:
	patch -p -N < hp9k700-patches
2. Run configure in both libg++-2.2 and libg++-2.2/libg++ directories:
	./configure hp9k700 --prefix=/usr/local
	../configure hp9k700 --prefix=/usr/local
   Ignore wrong "in" directory.  The Makefile's are in the right place.
   (Use whatever prefix you prefer)
3. Run make in libg++-2.2 directory:
	make
   Ignore warning messages (I did, too ;-) )
4. Run the tests like:
	make check

NOTES
=====

The majority of problems with the optimizer are fixed in gcc 2.3.1.u2
and "-O" is now the default for building libg++.  The only optimizer
problem which seems to remain relates to taking the address of arguments
passed to inline procedures (see patches to BitString.h and String.h).

I have attempted to fix the problems with the high level Makefile passing
both CC=cc and CC=gcc to the make for libg++.  A new make variable, GCFLAGS,
is introduced to pass a special CFLAGS for building the libg++ subdirectory.

Some patches needed to work around bugs in gcc 2.2.2 have been removed.

PATCHES
=======

The of the patches fix the following:

  1. Automatic generation of a working libg++/_G_config.h. The symbol
     "_G_NEED_STDARG_H" needs to be defined and it won't be when compiling
     the standard distribution. Somebody fixed this for the NeXT with m68k 
     processor too, but I forgot his name :-(.
  2. Passing of the value of CFLAGS to all subdirectories. The standard
     distribution had "hardcoded" CFLAGS in virtually every Makefile.
  3. Numerous (HP specific) fixes. I didn't come up with these myself, and
     credits should go to:

	Jwahar R. Bammi	<bammi@cadence.com>
        Per Bothner	<bothner@cygnus.com>
        Dave Anglin	<dave@hiauly1.hia.nrc.ca>
	Martin Junius	<mj@dfv.rwth-aachen.de>
        Anton Koning	<anton@cv.ruu.nl>

     One of the things I did fix myself was to replace the calls to alloca()
     in libg++/etc/trie-gen/compact.cc with calls to malloc(). Don't know if
     this is a correct fix, but it seems to work...

MORE INFORMATION
================

If you have any questions, please contact me as "bartm@cv.ruu.nl". If you have
a solution for the internal compiler error and/or the core dumps, or if you 
have any additions/contributions, please contact me too. I'll summarize on the 
net.
@EOF

chmod 644 README.hp

echo x - Changes
cat >Changes <<'@EOF'
	=== Changes to the patches for libg++ 2.2 on HP-UX ===

Author     : Bart Muijzer
E-mail     : bartm@cv.ruu.nl
Last update: Tue Nov 17 16:36:04 MET 1992

The following description, provided by Dave Anglin <dave@hiauly1.hia.nrc.ca>
points out what's new in this set of patches to libg++ 2.2.

The most significant change in the patches which I sent you is the patch to
BitString.h.  This works around a problem in the optimizer.  The older patch
to String.h and String.cc also works around the same problem.  Some patches
(e.g. to Regex.h) which I introduced in version 2.2.2 to work around the
"const" problem are no longer needed and I removed these.  I also attempted
to fix the high level Makefile so that it builds libiberty with cc and libg++
with gcc and passes an appropriate CFLAGS to each.  I also fixed up the
patch path in the patch file and checked that it works correctly.
@EOF

chmod 644 Changes

echo x - hp9k700-patches
cat >hp9k700-patches <<'@EOF'
*** libg++-2.2/Makefile.in	Tue Jun 23 12:53:35 1992
--- Makefile.in	Fri Nov 13 09:59:35 1992
***************
*** 43,55 ****
  
  SHELL = /bin/sh
  
! INSTALL = install -c
  INSTALL_PROGRAM = $(INSTALL)
  INSTALL_DATA = $(INSTALL)
  
  AR = ar
  AR_FLAGS = qc
! CFLAGS = -g
  RANLIB = ranlib
  
  BISON = `if [ -d $${rootme}/byacc ] ; \
--- 43,56 ----
  
  SHELL = /bin/sh
  
! INSTALL = cp
  INSTALL_PROGRAM = $(INSTALL)
  INSTALL_DATA = $(INSTALL)
  
  AR = ar
  AR_FLAGS = qc
! CFLAGS =
! GCFLAGS = -O
  RANLIB = ranlib
  
  BISON = `if [ -d $${rootme}/byacc ] ; \
***************
*** 102,107 ****
--- 103,125 ----
  	"INSTALL_DATA=$(INSTALL_DATA)" \
  	"INSTALL_PROGRAM=$(INSTALL_PROGRAM)"
  
+ GXX_FLAGS_TO_PASS = \
+ 	"prefix=$(prefix)" \
+ 	"exec_prefix=$(exec_prefix)" \
+ 	"tooldir=$(tooldir)" \
+ 	"AR=$(AR)" \
+ 	"AR_FLAGS=$(AR_FLAGS)" \
+ 	"CFLAGS=$(GCFLAGS)" \
+ 	"RANLIB=$(RANLIB)" \
+ 	"LOADLIBES=$(LOADLIBES)" \
+ 	"LDFLAGS=$(LDFLAGS)" \
+ 	"BISON=$(BISON)" \
+ 	"LEX=$(LEX)" \
+ 	"MAKEINFO=$(MAKEINFO)" \
+ 	"INSTALL=$(INSTALL)" \
+ 	"INSTALL_DATA=$(INSTALL_DATA)" \
+ 	"INSTALL_PROGRAM=$(INSTALL_PROGRAM)"
+ 
  .PHONY: all info install-info clean-info
  .NOEXPORT:
  
***************
*** 115,121 ****
  	@rootme=`pwd` ; export rootme ; $(MAKE) subdir_do DO=check \
  	  "DODIRS=`echo $(SUBDIRS) | sed -e \"s/libg\+\+//\"" $(FLAGS_TO_PASS)
  	@rootme=`pwd` ; export rootme ; $(MAKE) subdir_do DO=check \
! 	  "DODIRS=libg++" $(FLAGS_TO_PASS) "CC=${GXX}" "XTRAFLAGS=${XTRAFLAGS}"
  
  clean-info:
  	@$(MAKE) subdir_do DO=clean-info "DODIRS=$(SUBDIRS)"
--- 133,139 ----
  	@rootme=`pwd` ; export rootme ; $(MAKE) subdir_do DO=check \
  	  "DODIRS=`echo $(SUBDIRS) | sed -e \"s/libg\+\+//\"" $(FLAGS_TO_PASS)
  	@rootme=`pwd` ; export rootme ; $(MAKE) subdir_do DO=check \
! 	  "DODIRS=libg++" $(GXX_FLAGS_TO_PASS) "CC=${GXX}" "XTRAFLAGS=${XTRAFLAGS}"
  
  clean-info:
  	@$(MAKE) subdir_do DO=clean-info "DODIRS=$(SUBDIRS)"
***************
*** 136,142 ****
  	$(INSTALL_DATA) cfg-paper.info $(infodir)/cfg-paper.info
  	$(INSTALL_DATA) configure.info $(infodir)/configure.info
  	$(INSTALL_DATA) standards.info $(infodir)/standards.info
! 	@$(MAKE) dir.info install-dir.info
  
  install-dir.info:
  	$(INSTALL_DATA) dir.info $(infodir)/dir.info
--- 154,160 ----
  	$(INSTALL_DATA) cfg-paper.info $(infodir)/cfg-paper.info
  	$(INSTALL_DATA) configure.info $(infodir)/configure.info
  	$(INSTALL_DATA) standards.info $(infodir)/standards.info
! #	@$(MAKE) dir.info install-dir.info
  
  install-dir.info:
  	$(INSTALL_DATA) dir.info $(infodir)/dir.info
***************
*** 968,974 ****
  	@if [ -d ./libg++ ] ; then \
  		rootme=`pwd` ; export rootme ; \
  		(cd ./libg++; \
! 		$(MAKE) $(FLAGS_TO_PASS) "CC=${GXX}" all) ; \
  	else \
  		true ; \
  	fi
--- 986,992 ----
  	@if [ -d ./libg++ ] ; then \
  		rootme=`pwd` ; export rootme ; \
  		(cd ./libg++; \
! 		$(MAKE) $(GXX_FLAGS_TO_PASS) "CC=${GXX}" all) ; \
  	else \
  		true ; \
  	fi
***************
*** 977,983 ****
  	@if [ -d ./libg++ ] ; then \
  		rootme=`pwd` ; export rootme ; \
  		(cd ./libg++; \
! 		$(MAKE) $(FLAGS_TO_PASS) "CC=${GXX}" clean) ; \
  	else \
  		true ; \
  	fi
--- 995,1001 ----
  	@if [ -d ./libg++ ] ; then \
  		rootme=`pwd` ; export rootme ; \
  		(cd ./libg++; \
! 		$(MAKE) $(GXX_FLAGS_TO_PASS) "CC=${GXX}" clean) ; \
  	else \
  		true ; \
  	fi
***************
*** 986,992 ****
  	@if [ -d ./libg++ ] ; then \
  		rootme=`pwd` ; export rootme ; \
  		(cd ./libg++; \
! 		$(MAKE) $(FLAGS_TO_PASS) "CC=${GXX}" install) ; \
  	else \
  		true ; \
  	fi
--- 1004,1010 ----
  	@if [ -d ./libg++ ] ; then \
  		rootme=`pwd` ; export rootme ; \
  		(cd ./libg++; \
! 		$(MAKE) $(GXX_FLAGS_TO_PASS) "CC=${GXX}" install) ; \
  	else \
  		true ; \
  	fi

*** libg++-2.2/libg++/config/hpux.mh	Fri Jun 26 21:32:19 1992
--- libg++/config/hpux.mh	Thu Nov  5 12:21:23 1992
***************
*** 1,5 ****
  # Use -nostdinc++ flag if your version of gcc understands it.
! NOSTDINC = -nostdinc++
  
  # If the C include files are C++-ready (with extern "C"),
  # define: HAVE_CPLUS_EXTERN = 1 and: WRAP_C_INCLUDES =
--- 1,5 ----
  # Use -nostdinc++ flag if your version of gcc understands it.
! # NOSTDINC = -nostdinc++
  
  # If the C include files are C++-ready (with extern "C"),
  # define: HAVE_CPLUS_EXTERN = 1 and: WRAP_C_INCLUDES =

*** libg++-2.2/libg++/Makefile.in	Fri Jun 26 15:35:09 1992
--- libg++/Makefile.in	Thu Nov 12 18:03:48 1992
***************
*** 45,51 ****
  
  SHELL = /bin/sh
  
! INSTALL = install -c
  INSTALL_PROGRAM = $(INSTALL)
  INSTALL_DATA = $(INSTALL)
  
--- 45,51 ----
  
  SHELL = /bin/sh
  
! INSTALL = cp
  INSTALL_PROGRAM = $(INSTALL)
  INSTALL_DATA = $(INSTALL)
  
***************
*** 122,128 ****
  	then echo $${rootme}/../gcc/gcc\\ -B$${rootme}/../gcc/ ; \
  	else echo ${GXX} ; fi`
  
! CFLAGS = -g
  XTRAFLAGS = `if [ -f $${rootme}/../gcc/gcc ] ; \
  	then echo -I$${rootme}/../gcc/include ; \
  	else echo ; fi`
--- 122,128 ----
  	then echo $${rootme}/../gcc/gcc\\ -B$${rootme}/../gcc/ ; \
  	else echo ${GXX} ; fi`
  
! CFLAGS = -O
  XTRAFLAGS = `if [ -f $${rootme}/../gcc/gcc ] ; \
  	then echo -I$${rootme}/../gcc/include ; \
  	else echo ; fi`
***************
*** 149,154 ****
--- 149,155 ----
  	"RANLIB=$(RANLIB)" \
  	"LOADLIBES=$(LOADLIBES)" \
  	"LDFLAGS=$(LDFLAGS)" \
+ 	"INSTALL=$(INSTALL)" \
  	"MAKEINFO=$(MAKEINFO)" \
  	"XTRAFLAGS=$(XTRAFLAGS)"
  
***************
*** 289,298 ****
  		$(INSTALL_DATA) $$FILE $(gxx_includedir)/$$FILE || exit 1; \
  	    done; \
  	fi
! 	cd $(IO_DIR) ; $(MAKE) install-include-files
  	@for D in genclass $(UTILS) ; do \
  		if [ -d $$D ] ; then \
! 			(cd $$D; $(MAKE) "CC=$(CC)" install) ; \
  		fi ; \
  	done
  	cd test-install; $(MAKE) $(TEST_INSTALL) \
--- 290,299 ----
  		$(INSTALL_DATA) $$FILE $(gxx_includedir)/$$FILE || exit 1; \
  	    done; \
  	fi
! 	cd $(IO_DIR) ; $(MAKE) install-include-files "INSTALL=$(INSTALL)"
  	@for D in genclass $(UTILS) ; do \
  		if [ -d $$D ] ; then \
! 			(cd $$D; $(MAKE) "CC=$(CC)" install "INSTALL=$(INSTALL)") ; \
  		fi ; \
  	done
  	cd test-install; $(MAKE) $(TEST_INSTALL) \

*** libg++-2.2/libg++/configure.in	Fri Jun 26 21:32:57 1992
--- libg++/configure.in	Thu Nov  5 12:21:14 1992
***************
*** 3,9 ****
  # script appropriate for this directory.  For more information, check
  # any existing configure script.
  
! subdirs="genclass src iostream iostream/stdio iostream/test no-stream old-stream tests etc etc/graph etc/ADT-examples etc/benchmarks etc/lf etc/PlotFile3D etc/trie-gen gperf gperf/src gperf/tests utils test-install"
  srctrigger=libg++.texinfo
  srcname="GNU C++ Class Library"
  
--- 3,9 ----
  # script appropriate for this directory.  For more information, check
  # any existing configure script.
  
! subdirs="genclass src iostream iostream/stdio iostream/test no-stream old-stream tests etc etc/graph etc/ADT-examples etc/benchmarks etc/lf etc/PlotFile3D etc/trie-gen etc/fib gperf gperf/src gperf/tests utils test-install"
  srctrigger=libg++.texinfo
  srcname="GNU C++ Class Library"
  

*** libg++-2.2/libg++/etc/PlotFile3D/Makefile.in	Thu Jun 18 01:38:22 1992
--- libg++/etc/PlotFile3D/Makefile.in	Tue Nov 10 09:49:55 1992
***************
*** 48,54 ****
  	then echo ../../../gcc/gcc -B../../../gcc/ ; \
  	else echo gcc ; fi`
  
! CFLAGS = -g
  XTRAFLAGS = `if [ -f ../../../gcc/gcc ] ; \
  	then echo -I../../../gcc/include ; \
  	else echo ; fi`
--- 48,54 ----
  	then echo ../../../gcc/gcc -B../../../gcc/ ; \
  	else echo gcc ; fi`
  
! CFLAGS = 
  XTRAFLAGS = `if [ -f ../../../gcc/gcc ] ; \
  	then echo -I../../../gcc/include ; \
  	else echo ; fi`
***************
*** 77,82 ****
--- 77,83 ----
  		"XTRAFLAGS=$(XTRAFLAGS)" "AR=$(AR)" "RANLIB=$(RANLIB)" check
  
  .PHONY: check
+ 
  check: tPlotFile3D
  	./tPlotFile3D
  	@echo use plot to look at the plot file test.pl

*** libg++-2.2/libg++/etc/Makefile.in	Thu Jun 18 01:49:33 1992
--- libg++/etc/Makefile.in	Thu Nov  5 12:21:35 1992
***************
*** 83,89 ****
  	then echo -I$${rootprefix}../../gcc/include ; \
  	else echo ; fi`
  
! SUBDIRS= graph ADT-examples benchmarks PlotFile3D lf # trie-gen
  
  #### host and target dependent Makefile fragments come in here.
  ##
--- 83,89 ----
  	then echo -I$${rootprefix}../../gcc/include ; \
  	else echo ; fi`
  
! SUBDIRS= graph ADT-examples benchmarks PlotFile3D lf trie-gen fib
  
  #### host and target dependent Makefile fragments come in here.
  ##

*** libg++-2.2/libg++/etc/ADT-examples/Makefile.in	Thu Jun 18 01:43:34 1992
--- libg++/etc/ADT-examples/Makefile.in	Mon Nov  9 09:43:50 1992
***************
*** 48,54 ****
  	then echo ../../../gcc/gcc -B../../../gcc/ ; \
  	else echo gcc ; fi`
  
! CFLAGS = -g
  XTRAFLAGS = `if [ -f ../../../gcc/gcc ] ; \
  	then echo -I../../../gcc/include ; \
  	else echo ; fi`
--- 48,54 ----
  	then echo ../../../gcc/gcc -B../../../gcc/ ; \
  	else echo gcc ; fi`
  
! CFLAGS =
  XTRAFLAGS = `if [ -f ../../../gcc/gcc ] ; \
  	then echo -I../../../gcc/include ; \
  	else echo ; fi`
***************
*** 86,116 ****
  run_tests: check
  
  generic-q: generic-q.o
! 	$(CC)  generic-q.o -o $@ $(LIBS)
  
  tsort: tsortinp tsort.o
! 	$(CC)  tsort.o -o $@ $(LIBS)
  
  tsortinp: tsortinp.o
! 	$(CC)  tsortinp.o -o $@ $(LIBS)
  
  keyhash: keyhash.o
! 	$(CC)  keyhash.o -o $@ $(LIBS)
  
  search: search.o
! 	$(CC)  search.o -o $@ $(LIBS)
  
  genkey: genPatkey.o
! 	$(CC)  genPatkey.o -o $@ $(LIBS)
     
  Patricia.o: $(srcdir)/Patricia.h
  Patmain.o: $(srcdir)/Patricia.h 
  
  patricia: Patmain.o Patricia.o
! 	$(CC)  Patmain.o Patricia.o -o $@ $(LIBS)
  
  kmp: kmp.o
! 	$(CC)  kmp.o -o $@ $(LIBS)
  
  
  .PHONY: mostlyclean clean distclean realclean
--- 86,116 ----
  run_tests: check
  
  generic-q: generic-q.o
! 	$(CC) $(CFLAGS) generic-q.o -o $@ $(LIBS)
  
  tsort: tsortinp tsort.o
! 	$(CC) $(CFLAGS) tsort.o -o $@ $(LIBS)
  
  tsortinp: tsortinp.o
! 	$(CC) $(CFLAGS) tsortinp.o -o $@ $(LIBS)
  
  keyhash: keyhash.o
! 	$(CC) $(CFLAGS) keyhash.o -o $@ $(LIBS)
  
  search: search.o
! 	$(CC) $(CFLAGS) search.o -o $@ $(LIBS)
  
  genkey: genPatkey.o
! 	$(CC) $(CFLAGS) genPatkey.o -o $@ $(LIBS)
     
  Patricia.o: $(srcdir)/Patricia.h
  Patmain.o: $(srcdir)/Patricia.h 
  
  patricia: Patmain.o Patricia.o
! 	$(CC) $(CFLAGS) Patmain.o Patricia.o -o $@ $(LIBS)
  
  kmp: kmp.o
! 	$(CC) $(CFLAGS) kmp.o -o $@ $(LIBS)
  
  
  .PHONY: mostlyclean clean distclean realclean

*** libg++-2.2/libg++/etc/fib/Makefile.in	Thu Jun 18 01:46:55 1992
--- libg++/etc/fib/Makefile.in	Mon Nov  9 13:07:20 1992
***************
*** 62,84 ****
  	then echo ../../texinfo/C/makeinfo ; \
  	else echo makeinfo ; fi`
  
- IO_DIR = iostream
- 
  CC = `if [ -d ../../../gcc ] ; \
  	then echo ../../../gcc/gcc -B../../../gcc/ ; \
  	else echo gcc -O ; fi`
  
! CFLAGS = -g
  XTRAFLAGS = `if [ -d ../../../gcc ] ; \
  	then echo -I../../../gcc/include ; \
  	else echo ; fi`
  
  LIBS = ../../libg++.a
  
  .SUFFIXES: .o .cc
  
  .cc.o:
! 	$(CC) $(CFLAGS) -I$(srcdir)/../../g++-include -I$(srcdir)/../../$(IO_DIR) $(XTRAFLAGS) -c $<
  
  #### host and target dependent Makefile fragments come in here.
  ##
--- 62,83 ----
  	then echo ../../texinfo/C/makeinfo ; \
  	else echo makeinfo ; fi`
  
  CC = `if [ -d ../../../gcc ] ; \
  	then echo ../../../gcc/gcc -B../../../gcc/ ; \
  	else echo gcc -O ; fi`
  
! CFLAGS = 
  XTRAFLAGS = `if [ -d ../../../gcc ] ; \
  	then echo -I../../../gcc/include ; \
  	else echo ; fi`
  
  LIBS = ../../libg++.a
+ INCLUDES = -I$(srcdir)/../../g++-include -I$(srcdir)/../../iostream -I$(srcdir)/../../src -I$(srcdir)/../..
  
  .SUFFIXES: .o .cc
  
  .cc.o:
! 	$(CC) $(CFLAGS) $(INCLUDES) $(XTRAFLAGS) -c $<
  
  #### host and target dependent Makefile fragments come in here.
  ##
***************
*** 90,96 ****
  	-./fib 1000
  
  fib: $(srcdir)/fib.cc
! 	$(CC) $(CFLAGS) -o fib $(srcdir)/fib.cc $(LIBS)
  
  .PHONY: clean
  clean: force
--- 89,95 ----
  	-./fib 1000
  
  fib: $(srcdir)/fib.cc
! 	$(CC) $(CFLAGS) $(INCLUDES) -o fib $(srcdir)/fib.cc $(LIBS)
  
  .PHONY: clean
  clean: force

*** libg++-2.2/libg++/etc/graph/Makefile.in	Thu Jun 18 01:35:54 1992
--- libg++/etc/graph/Makefile.in	Mon Nov  9 08:58:48 1992
***************
*** 49,55 ****
  	then echo ../../../gcc/gcc -B../../../gcc/ ; \
  	else echo gcc ; fi`
  
! CFLAGS = -g
  XTRAFLAGS = `if [ -f ../../../gcc/gcc ] ; \
  	then echo -I../../../gcc/include ; \
  	else echo ; fi`
--- 49,55 ----
  	then echo ../../../gcc/gcc -B../../../gcc/ ; \
  	else echo gcc ; fi`
  
! CFLAGS =
  XTRAFLAGS = `if [ -f ../../../gcc/gcc ] ; \
  	then echo -I../../../gcc/include ; \
  	else echo ; fi`
***************
*** 87,93 ****
  	$(RANLIB) libgraph.a
  
  graph : graph.o libgraph.a
! 	$(CC) graph.o libgraph.a $(LIBS) -lm -o $@
  
  graph.o: pXPlex.h pPlex.h
  
--- 87,93 ----
  	$(RANLIB) libgraph.a
  
  graph : graph.o libgraph.a
! 	$(CC) $(CFLAGS) graph.o libgraph.a $(LIBS) -lm -o $@
  
  graph.o: pXPlex.h pPlex.h
  

*** libg++-2.2/libg++/etc/graph/graph.cc	Thu May 14 21:41:47 1992
--- libg++/etc/graph/graph.cc	Thu Nov  5 12:21:50 1992
***************
*** 289,296 ****
        case 'z': no_standard_input++; break;
        case '?': error_occurred++;
        }
!   if (error_occurred)
      cerr << "usage" sp argv[0] sp usage_message;
  				// Complain if the plot does not fits on page
    if (up < 0.) cerr <<
      "Warning: the plot may extend below the bottom of the page.\n";
--- 289,298 ----
        case 'z': no_standard_input++; break;
        case '?': error_occurred++;
        }
!   if (error_occurred) {
      cerr << "usage" sp argv[0] sp usage_message;
+     exit(-1);
+   }
  				// Complain if the plot does not fits on page
    if (up < 0.) cerr <<
      "Warning: the plot may extend below the bottom of the page.\n";
***************
*** 573,579 ****
    
    				// draw all the points
    if (point.length () <= 0)
!       return 0;			// exit if there is no data.
    i = point.low ();
    int move = 1;		// 1 means move to first point
    double prev_x = point[i].x;
--- 575,581 ----
    
    				// draw all the points
    if (point.length () <= 0)
!       exit(0);			// exit if there is no data.
    i = point.low ();
    int move = 1;		// 1 means move to first point
    double prev_x = point[i].x;
***************
*** 684,688 ****
  	    }
  	}
      }
!   return 0;
  }
--- 686,690 ----
  	    }
  	}
      }
!   exit(0);
  }

*** libg++-2.2/libg++/etc/lf/Makefile.in	Thu Jun 18 01:35:37 1992
--- libg++/etc/lf/Makefile.in	Fri Nov  6 11:12:42 1992
***************
*** 54,60 ****
  	then echo ../../../gcc/gcc -B../../../gcc/ ; \
  	else echo gcc ; fi`
  
! CFLAGS = -g
  XTRAFLAGS = `if [ -f ../../../gcc/gcc ] ; \
  	then echo -I../../../gcc/include ; \
  	else echo ; fi`
--- 54,60 ----
  	then echo ../../../gcc/gcc -B../../../gcc/ ; \
  	else echo gcc ; fi`
  
! CFLAGS =
  XTRAFLAGS = `if [ -f ../../../gcc/gcc ] ; \
  	then echo -I../../../gcc/include ; \
  	else echo ; fi`

*** libg++-2.2/libg++/etc/lf/screen.cc	Fri Jun 26 20:45:56 1992
--- libg++/etc/lf/screen.cc	Thu Nov  5 12:21:59 1992
***************
*** 1,12 ****
  /* Handles screen manipulations for screen width and inverse mode. */
  #include "screen.h"
  
- extern "C" int tgetent(void *, const char *);
- extern "C" int tgetnum(const char*);
- extern "C" char *tgetstr(const char *, char**);
- typedef int (*int_func)(int);
- extern "C" void tputs(char *, int, int_func);
- 
  /* Initializes the current screen width via
     the terminal independent operation routines. */
  
--- 1,6 ----

*** libg++-2.2/libg++/etc/trie-gen/Makefile.in	Thu Jun 18 01:35:20 1992
--- libg++/etc/trie-gen/Makefile.in	Mon Nov  9 11:00:31 1992
***************
*** 65,71 ****
  	then echo ../../../gcc/gcc -B../../../gcc/ ; \
  	else echo gcc ; fi`
  
! CFLAGS = -g
  XTRAFLAGS = `if [ -f ../../../gcc/gcc ] ; \
  	then echo -I../../../gcc/include ; \
  	else echo ; fi`
--- 65,71 ----
  	then echo ../../../gcc/gcc -B../../../gcc/ ; \
  	else echo gcc ; fi`
  
! CFLAGS =
  XTRAFLAGS = `if [ -f ../../../gcc/gcc ] ; \
  	then echo -I../../../gcc/include ; \
  	else echo ; fi`
***************
*** 93,105 ****
  install-info:
  
  trie-gen: $(OBJS) 
! 	$(CC) -o $@ $(OBJS) $(LIBS)
  
  check: trie-gen
  	@echo "Generating a compacted minimal-prefix trie for files in /bin"
  	/bin/ls -1 /bin | ./trie-gen -c > out.cc
! 	$(CC) -c out.cc $(srcdir)/test.cc
! 	$(CC) out.o test.o $(LIBS)
  	/bin/ls -1 /bin | ./a.out -v
  
  run_tests: check
--- 93,105 ----
  install-info:
  
  trie-gen: $(OBJS) 
! 	$(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS)
  
  check: trie-gen
  	@echo "Generating a compacted minimal-prefix trie for files in /bin"
  	/bin/ls -1 /bin | ./trie-gen -c > out.cc
! 	$(CC) $(CFLAGS) -c out.cc $(srcdir)/test.cc
! 	$(CC) $(CFLAGS) out.o test.o $(LIBS)
  	/bin/ls -1 /bin | ./a.out -v
  
  run_tests: check

*** libg++-2.2/libg++/etc/trie-gen/compact.cc	Fri Jun 28 22:57:33 1991
--- libg++/etc/trie-gen/compact.cc	Mon Nov  9 12:46:03 1992
***************
*** 172,178 ****
  {
    /* Bit-vector and counter that records if a row/col location is already set. */
    int    current_max = current_rows + (total_cols >? MAX_ASCII_RANGE);
!   char *already_assigned = (char *) alloca (current_max);
    
    bzero (already_assigned, current_max);
    row_offsets = new {current_rows} int;
--- 172,178 ----
  {
    /* Bit-vector and counter that records if a row/col location is already set. */
    int    current_max = current_rows + (total_cols >? MAX_ASCII_RANGE);
!   char *already_assigned = (char *) malloc ((size_t) current_max);
    
    bzero (already_assigned, current_max);
    row_offsets = new {current_rows} int;
***************
*** 200,206 ****
                if (row_offset + col >= current_max)
                  {
                    int   new_size = (current_max >? row_offset + col) * 2;
!                   char *temp     = (char *) alloca (new_size);
  
                    bcopy (already_assigned, temp, current_max);
                    bzero (temp + current_max, new_size - current_max);
--- 200,206 ----
                if (row_offset + col >= current_max)
                  {
                    int   new_size = (current_max >? row_offset + col) * 2;
!                   char *temp     = (char *) malloc ((size_t) new_size);
  
                    bcopy (already_assigned, temp, current_max);
                    bzero (temp + current_max, new_size - current_max);

*** libg++-2.2/libg++/g++-include/sys/socket.h	Thu Jun 18 03:41:56 1992
--- libg++/g++-include/sys/socket.h	Thu Nov  5 12:22:17 1992
***************
*** 28,34 ****
--- 28,36 ----
  int       getpeername _G_ARGS((int, struct sockaddr*, int*));
  int       getsockopt(int, int, int, void*, int*);
  int       listen(int, int);
+ #ifndef hpux
  int       rcmd _G_ARGS((char**, int, const char*, const char*, const char*, int*));
+ #endif
  int       recv(int, void*, int, int);
  int       recvfrom _G_ARGS((int, void*, int, int, void*, int *));
  int       recvmsg(int, struct msghdr*, int);

*** libg++-2.2/libg++/g++-include/curses.h	Fri Jun 26 20:35:06 1992
--- libg++/g++-include/curses.h	Thu Nov  5 12:22:09 1992
***************
*** 25,36 ****
--- 25,44 ----
  #ifdef _VR3_COMPAT_CODE
        typedef unsigned long _G_chtype;	/* SVR4 default is "unsigned long" */
  #else
+ #ifdef hpux
+       typedef unsigned int _G_chtype;	/* HP-UX default is "unsigned int" */
+ #else
        typedef char _G_chtype;		/* Traditional default is "char" */
  #endif
  #endif
+ #endif
  
  /* Some args are conceptually const, but SVR4 (and others?) get it wrong. */
+ #ifdef hpux
+ #define _C_const const
+ #else
  #define _C_const /* const */
+ #endif
  
  WINDOW * (newwin)(int lines, int cols, int sy, int sx);
  WINDOW * (subwin)(WINDOW *w, int lines, int cols, int sy, int sx);

*** libg++-2.2/libg++/gperf/src/Makefile.in	Thu Jun 18 01:32:31 1992
--- libg++/gperf/src/Makefile.in	Fri Nov  6 11:13:03 1992
***************
*** 78,84 ****
  WRAP_C_INCLUDES = -I$(srcdir)/../../g++-include
  
  PROGRAM = gperf
! CFLAGS = -g
  
  #### host and target dependent Makefile fragments come in here.
  ##
--- 78,84 ----
  WRAP_C_INCLUDES = -I$(srcdir)/../../g++-include
  
  PROGRAM = gperf
! CFLAGS =
  
  #### host and target dependent Makefile fragments come in here.
  ##

*** libg++-2.2/libg++/gperf/Makefile.in	Thu Jun 18 01:32:07 1992
--- libg++/gperf/Makefile.in	Fri Nov  6 11:13:10 1992
***************
*** 63,69 ****
  	then echo $${rootme}/../../gcc/gcc -B$${rootme}/../../gcc/ ; \
  	else echo gcc ; fi`
  
! CFLAGS = -g
  XTRAFLAGS = `if [ -f $${rootme}/../../gcc/gcc ] ; \
  	then echo -I$${rootme}/../../gcc/include ; \
  	else echo ; fi`
--- 63,69 ----
  	then echo $${rootme}/../../gcc/gcc -B$${rootme}/../../gcc/ ; \
  	else echo gcc ; fi`
  
! CFLAGS =
  XTRAFLAGS = `if [ -f $${rootme}/../../gcc/gcc ] ; \
  	then echo -I$${rootme}/../../gcc/include ; \
  	else echo ; fi`

*** libg++-2.2/libg++/iostream/stdio/Makefile.in	Thu Jun 18 02:04:09 1992
--- libg++/iostream/stdio/Makefile.in	Fri Nov  6 11:13:25 1992
***************
*** 72,78 ****
  	then echo ../../../gcc/gcc -B../../../gcc/ ; \
  	else echo gcc ; fi`
  
! CFLAGS = -g
  XTRAFLAGS = `if [ -f ../../../gcc/gcc ] ; \
  	then echo -I../../../gcc/include ; \
  	else echo ; fi`
--- 72,78 ----
  	then echo ../../../gcc/gcc -B../../../gcc/ ; \
  	else echo gcc ; fi`
  
! CFLAGS =
  XTRAFLAGS = `if [ -f ../../../gcc/gcc ] ; \
  	then echo -I../../../gcc/include ; \
  	else echo ; fi`

*** libg++-2.2/libg++/iostream/Makefile.in	Fri Jun 26 21:24:01 1992
--- libg++/iostream/Makefile.in	Fri Nov  6 11:13:36 1992
***************
*** 102,108 ****
  DEPEND_SOURCES = $(srcdir)/*.C
  
  #NOSTDINC = -nostdinc++
! CFLAGS = -g
  
  .PHONY: all
  all: $(TARGETLIB)
--- 102,108 ----
  DEPEND_SOURCES = $(srcdir)/*.C
  
  #NOSTDINC = -nostdinc++
! CFLAGS =
  
  .PHONY: all
  all: $(TARGETLIB)

*** libg++-2.2/libg++/iostream/igetline.C	Fri Jun  5 02:41:47 1992
--- libg++/iostream/igetline.C	Tue Nov 10 11:26:46 1992
***************
*** 23,30 ****
      if (ipfx1()) {
  	long count = rdbuf()->sgetline(buf, len, delim, 0);
  	_gcount = count;
! 	if (count <= 0 || count == len-1)
! 	    set(ios::failbit);
      }
      return *this;
  }
--- 23,32 ----
      if (ipfx1()) {
  	long count = rdbuf()->sgetline(buf, len, delim, 0);
  	_gcount = count;
! //	if (count <= 0 || count == len-1)
! //	    set(ios::failbit);
! 	if (count < 0)
! 	    set(ios::failbit|ios::eofbit);
      }
      return *this;
  }
***************
*** 34,41 ****
      _gcount = 0;
      if (ipfx1()) {
  	long count = rdbuf()->sgetline(buf, len, delim, -1);
! 	if (count <= 0)
! 	    set(ios::failbit);
  	else
  	    _gcount = count;
      }
--- 36,45 ----
      _gcount = 0;
      if (ipfx1()) {
  	long count = rdbuf()->sgetline(buf, len, delim, -1);
! //	if (count <= 0)
! //	    set(ios::failbit);
!         if (count < 0)
! 	    set(ios::failbit|ios::eofbit);
  	else
  	    _gcount = count;
      }
***************
*** 80,88 ****
      long old_total = total;
      total += count;
      if (ch != EOF && ch != terminator) {
  	ptr = _sb_readline(sb, total, terminator);
! 	if (ptr)
  	    memcpy(ptr + old_total, buf, count);
  	return ptr;
      }
      
--- 84,95 ----
      long old_total = total;
      total += count;
      if (ch != EOF && ch != terminator) {
+ 	total++; // Include ch in total.
  	ptr = _sb_readline(sb, total, terminator);
! 	if (ptr) {
  	    memcpy(ptr + old_total, buf, count);
+ 	    ptr[old_total+count] = ch;
+ 	}
  	return ptr;
      }
      

*** libg++-2.2/libg++/iostream/outfloat.C	Fri Jun 26 21:24:11 1992
--- libg++/iostream/outfloat.C	Thu Nov  5 12:18:43 1992
***************
*** 31,37 ****
  #define PADN(fill, n) do {if (sb->padn(fill, n) < 0) goto error;} while (0)
      ios::fmtflags pad_kind = flags & (ios::left|ios::right|ios::internal);
      int skip_zeroes = 0;
!     int show_dot = flags & ios::showpoint;
      int decpt;
      int sign;
      int mode;
--- 31,37 ----
  #define PADN(fill, n) do {if (sb->padn(fill, n) < 0) goto error;} while (0)
      ios::fmtflags pad_kind = flags & (ios::left|ios::right|ios::internal);
      int skip_zeroes = 0;
!     int show_dot = (flags & ios::showpoint) != 0;
      int decpt;
      int sign;
      int mode;
***************
*** 47,61 ****
--- 47,64 ----
        case 'F':
  	exp = 'e';
  	mode = 0;
+ 	skip_zeroes = 1;
  	type = 'g';
  	break;
        case 'e':
  	exp = 'e';
  	mode = 2;
+ 	precision++;  // Add one to include digit before decimal point.
  	break;
        case 'E':
  	exp = 'E';
  	mode = 2;
+ 	precision++;  // Add one to include digit before decimal point.
  	break;
        case 'g':
        case 'G':
***************
*** 75,81 ****
      // Check if we need to emit an exponent.
      if (mode != 3 && decpt != 9999) {
  	i = decpt - 1;
! 	if ((type != 'g' && type != 'F') || i <= -4 || i >= precision) {
  	    // Print the exponent into ebuf.
  	    // We write ebuf in reverse order (right-to-left).
  	    char sign;
--- 78,84 ----
      // Check if we need to emit an exponent.
      if (mode != 3 && decpt != 9999) {
  	i = decpt - 1;
! 	if ((type != 'g' && type != 'F') || i < -4 || i >= precision) {
  	    // Print the exponent into ebuf.
  	    // We write ebuf in reverse order (right-to-left).
  	    char sign;
***************
*** 104,114 ****
  	precision = 0;
  	show_dot = 0;
      }
!     int trailing_zeroes = skip_zeroes ? 0 : precision-(useful_digits-decpt);
      if (trailing_zeroes < 0) trailing_zeroes = 0;
      if (trailing_zeroes != 0 || useful_digits > decpt)
  	show_dot = 1;
-     int print_dot = 1;
      int print_sign;
      if (sign_mode == 0)
  	print_sign = sign ? '-' : 0;
--- 107,130 ----
  	precision = 0;
  	show_dot = 0;
      }
! 
!    // dtoa truncates trailing zeroes.  Set the variable trailing_zeroes to
!    // the number of 0's we have to add (after the decimal point).
!    int trailing_zeroes = 0;
!    if (skip_zeroes)
!        trailing_zeroes = 0;
!    else if (type == 'f')
!        trailing_zeroes = useful_digits <= decpt ? precision
! 	   : precision-(useful_digits-decpt);
!    else if (exponent_size) // 'e' 'E' or 'g' format using exponential notation.
!        trailing_zeroes = precision - useful_digits;
!    else // 'g' format not using exponential notation.
!        trailing_zeroes = useful_digits <= decpt ? precision - decpt
! 	   : precision-useful_digits;
      if (trailing_zeroes < 0) trailing_zeroes = 0;
+ 
      if (trailing_zeroes != 0 || useful_digits > decpt)
  	show_dot = 1;
      int print_sign;
      if (sign_mode == 0)
  	print_sign = sign ? '-' : 0;
***************
*** 147,156 ****
      }
      else {
  	PUT('0');
! 	PUT('.');
! 	PADN('0', -decpt);
! 	// Print digits after the decimal point.
! 	PUTN(p, useful_digits);
      }
      PADN('0', trailing_zeroes);
      if (exponent_size)
--- 163,174 ----
      }
      else {
  	PUT('0');
! 	if (show_dot) {
! 	    PUT('.');
! 	    PADN('0', -decpt);
! 	    // Print digits after the decimal point.
! 	    PUTN(p, useful_digits);
! 	}
      }
      PADN('0', trailing_zeroes);
      if (exponent_size)

*** libg++-2.2/libg++/iostream/sgetline.C	Thu Jun  4 02:12:41 1992
--- libg++/iostream/sgetline.C	Tue Nov 10 11:26:47 1992
***************
*** 34,40 ****
  	int len = egptr() - gptr();
  	if (len <= 0)
  	    if (underflow() == EOF)
! 		break;
  	    else
  		len = egptr() - gptr();
  	if (len >= (int)n)
--- 34,43 ----
  	int len = egptr() - gptr();
  	if (len <= 0)
  	    if (underflow() == EOF)
! 	    {
! 	    	*ptr = 0;
! 	    	return EOF;
! 	    }
  	    else
  		len = egptr() - gptr();
  	if (len >= (int)n)

*** libg++-2.2/libg++/iostream/test/Makefile.in	Thu Jun 18 02:04:49 1992
--- libg++/iostream/test/Makefile.in	Fri Nov  6 11:54:29 1992
***************
*** 48,54 ****
  	then echo ../../../gcc/gcc -B../../../gcc/ ; \
  	else echo gcc ; fi`
  
! CFLAGS = -g
  XTRAFLAGS = `if [ -f ../../../gcc/gcc ] ; \
  	then echo -I../../../gcc/include ; \
  	else echo ; fi` -I/usr/latest/lib/gcc-lib/sun4/cygnus-2.0.1/include -I/usr/include
--- 48,54 ----
  	then echo ../../../gcc/gcc -B../../../gcc/ ; \
  	else echo gcc ; fi`
  
! CFLAGS =
  XTRAFLAGS = `if [ -f ../../../gcc/gcc ] ; \
  	then echo -I../../../gcc/include ; \
  	else echo ; fi` -I/usr/latest/lib/gcc-lib/sun4/cygnus-2.0.1/include -I/usr/include
***************
*** 114,123 ****
  	$(GXX) -o tgetl tgetl.o $(LIBS)
  
  tFile: tFile.o
! 	$(CC) -o tFile tFile.o $(LIBS)
  
  hounddog: hounddog.o
! 	$(CC) -o hounddog hounddog.o $(IOLIBS)
  
  check-hounddog: hounddog
  	./hounddog <$(srcdir)/hounddog.in > hounddog.out 2>&1
--- 114,123 ----
  	$(GXX) -o tgetl tgetl.o $(LIBS)
  
  tFile: tFile.o
! 	$(CC) $(CFLAGS) -o tFile tFile.o $(LIBS)
  
  hounddog: hounddog.o
! 	$(CC) $(CFLAGS) -o hounddog hounddog.o $(IOLIBS)
  
  check-hounddog: hounddog
  	./hounddog <$(srcdir)/hounddog.in > hounddog.out 2>&1
***************
*** 128,134 ****
  	diff -c hounddog-buf2.out $(srcdir)/hounddog.exp
  
  putbackdog: putbackdog.o
! 	$(CC) -o putbackdog putbackdog.o $(IOLIBS)
  
  check-putbackdog-regular: putbackdog
  	./putbackdog <$(srcdir)/hounddog.in > putbackdog.out 2>&1
--- 128,134 ----
  	diff -c hounddog-buf2.out $(srcdir)/hounddog.exp
  
  putbackdog: putbackdog.o
! 	$(CC) $(CFLAGS) -o putbackdog putbackdog.o $(IOLIBS)
  
  check-putbackdog-regular: putbackdog
  	./putbackdog <$(srcdir)/hounddog.in > putbackdog.out 2>&1
***************
*** 143,149 ****
    check-putbackdog-regular check-putbackdog-nobuf check-putbackdog-buf2
  
  tfseek: tfseek.o
! 	$(CC) -o tfseek tfseek.o $(STDIOLIBS)
  
  check-tfseek: tfseek
  	./tfseek SEEK_SET fopen > tfseek-set-fopen.out 2>&1
--- 143,149 ----
    check-putbackdog-regular check-putbackdog-nobuf check-putbackdog-buf2
  
  tfseek: tfseek.o
! 	$(CC) $(CFLAGS) -o tfseek tfseek.o $(STDIOLIBS)
  
  check-tfseek: tfseek
  	./tfseek SEEK_SET fopen > tfseek-set-fopen.out 2>&1
***************
*** 156,169 ****
  	diff -c tfseek-cur-freopen.out $(srcdir)/tfseek-cur.exp
  
  twrseek: twrseek.o
! 	$(CC) -o twrseek twrseek.o $(STDIOLIBS)
  
  check-twrseek: twrseek
  	./twrseek > twrseek.out 2>&1
  	diff -c twrseek.out $(srcdir)/twrseek.exp
  
  trdseek: trdseek.o
! 	$(CC) -o trdseek -v trdseek.o $(STDIOLIBS)
  
  check-trdseek: trdseek
  	./trdseek
--- 156,169 ----
  	diff -c tfseek-cur-freopen.out $(srcdir)/tfseek-cur.exp
  
  twrseek: twrseek.o
! 	$(CC) $(CFLAGS) -o twrseek twrseek.o $(STDIOLIBS)
  
  check-twrseek: twrseek
  	./twrseek > twrseek.out 2>&1
  	diff -c twrseek.out $(srcdir)/twrseek.exp
  
  trdseek: trdseek.o
! 	$(CC) $(CFLAGS) -o trdseek -v trdseek.o $(STDIOLIBS)
  
  check-trdseek: trdseek
  	./trdseek
***************
*** 182,195 ****
  check-tFile: check-tFile-regular check-tFile-nobuf check-tFile-buf3
  
  tpopen: tpopen.o
! 	$(CC) -o tpopen tpopen.o $(STDIOLIBS)
  
  check-tpopen: tpopen
  	./tpopen > tpopen.out 2>&1
  	diff -c tpopen.out $(srcdir)/tpopen.exp
  
  trwseek: trwseek.o
! 	$(CC) -o trwseek trwseek.o $(STDIOLIBS)
  
  check-trwseek: trwseek
  	./trwsseek  TMP r+ k w o
--- 182,195 ----
  check-tFile: check-tFile-regular check-tFile-nobuf check-tFile-buf3
  
  tpopen: tpopen.o
! 	$(CC) $(CFLAGS) -o tpopen tpopen.o $(STDIOLIBS)
  
  check-tpopen: tpopen
  	./tpopen > tpopen.out 2>&1
  	diff -c tpopen.out $(srcdir)/tpopen.exp
  
  trwseek: trwseek.o
! 	$(CC) $(CFLAGS) -o trwseek trwseek.o $(STDIOLIBS)
  
  check-trwseek: trwseek
  	./trwsseek  TMP r+ k w o

*** libg++-2.2/libg++/old-stream/Makefile.in	Fri Jun 19 00:56:40 1992
--- libg++/old-stream/Makefile.in	Fri Nov  6 11:13:54 1992
***************
*** 47,53 ****
  	then echo ../../../gcc/gcc -B../../../gcc/ ; \
  	else echo gcc ; fi`
  
! CFLAGS = -g
  XTRAFLAGS = `if [ -f ../../../gcc/gcc ] ; \
  	then echo -I../../../gcc/include ; \
  	else echo ; fi`
--- 47,53 ----
  	then echo ../../../gcc/gcc -B../../../gcc/ ; \
  	else echo gcc ; fi`
  
! CFLAGS =
  XTRAFLAGS = `if [ -f ../../../gcc/gcc ] ; \
  	then echo -I../../../gcc/include ; \
  	else echo ; fi`

*** libg++-2.2/libg++/src/BitString.h	Wed Jun 17 21:39:31 1992
--- libg++/src/BitString.h	Thu Nov 12 15:48:11 1992
***************
*** 331,337 ****
  
  inline BitString shorttoBitString(unsigned short w) return r
  { 
!   r.rep = BStr_alloc(0, &w, 0, BITSTRBITS, BITSTRBITS);
  }
  
  inline BitString longtoBitString(unsigned long w) return r
--- 331,338 ----
  
  inline BitString shorttoBitString(unsigned short w) return r
  { 
!   unsigned short u = w;
!   r.rep = BStr_alloc(0, &u, 0, BITSTRBITS, BITSTRBITS);
  }
  
  inline BitString longtoBitString(unsigned long w) return r

*** libg++-2.2/libg++/src/Fix24.h	Sat Apr 18 01:50:07 1992
--- libg++/src/Fix24.h	Thu Nov  5 12:22:33 1992
***************
*** 329,334 ****
--- 329,336 ----
    return sum;
  }
  
+ extern Fix48 operator*(Fix24& a, Fix24& b);
+ 
  inline Fix24 operator*(Fix24& a, int b) 	
  { 
    return a.m * b; 

*** libg++-2.2/libg++/src/Makefile.in	Thu Jun 18 03:39:45 1992
--- libg++/src/Makefile.in	Fri Nov  6 11:14:00 1992
***************
*** 109,115 ****
  #### host, target, and site dependent Makefile fragments come in here.
  ##
  
! CFLAGS = -g
  
  .SUFFIXES: .cc .o
  
--- 109,115 ----
  #### host, target, and site dependent Makefile fragments come in here.
  ##
  
! CFLAGS =
  
  .SUFFIXES: .cc .o
  

*** libg++-2.2/libg++/src/String.cc	Thu Jun 18 03:39:48 1992
--- libg++/src/String.cc	Fri Nov  6 16:09:18 1992
***************
*** 167,172 ****
--- 167,178 ----
    return rep;
  }
  
+ // allocate, char
+ StrRep* Schar(char c)
+ {
+   return Salloc(0, &c, 1, 1);
+ }
+ 
  // reallocate: Given the initial allocation scheme, it will
  // generally be faster in the long run to get new space & copy
  // than to call realloc

*** libg++-2.2/libg++/src/String.h	Sat Apr 18 01:50:54 1992
--- libg++/src/String.h	Fri Nov  6 16:10:55 1992
***************
*** 38,43 ****
--- 38,44 ----
  // primitive ops on StrReps -- nearly all String fns go through these.
  
  StrRep*     Salloc(StrRep*, const char*, int, int);
+ StrRep*     Schar(char);
  StrRep*     Scopy(StrRep*, StrRep*);
  StrRep*     Sresize(StrRep*, int);
  StrRep*     Scat(StrRep*, const char*, int, const char*, int);
***************
*** 472,478 ****
  inline String::String(const SubString& y)
    : rep(Salloc(0, y.chars(), y.length(), y.length())) {}
  inline String::String(char c) 
!   : rep(Salloc(0, &c, 1, 1)) {}
  
  inline String::~String() { if (rep != &_nilStrRep) delete rep; }
  
--- 473,479 ----
  inline String::String(const SubString& y)
    : rep(Salloc(0, y.chars(), y.length(), y.length())) {}
  inline String::String(char c) 
!   : rep(Schar(c)) {}
  
  inline String::~String() { if (rep != &_nilStrRep) delete rep; }
  
***************
*** 1074,1080 ****
  
  inline int SubString::contains(char c) const
  {
!   return S.search(pos, pos+len, 0, c) >= 0;
  }
  
  inline int SubString::contains(const Regex& r) const
--- 1075,1081 ----
  
  inline int SubString::contains(char c) const
  {
!   return S.search(pos, pos+len, c) >= 0;
  }
  
  inline int SubString::contains(const Regex& r) const

*** libg++-2.2/libg++/src/builtin.h	Fri Jun 26 14:32:59 1992
--- libg++/src/builtin.h	Thu Nov 12 14:10:35 1992
***************
*** 84,95 ****
  
  #if !defined(IV)
  
- #ifndef hpux /* hpux defines this in math.h */
  inline double abs(double arg) 
  {
    return (arg < 0.0)? -arg : arg;
  }
- #endif
  
  inline float abs(float arg) 
  {
--- 84,93 ----
***************
*** 121,132 ****
    return arg * arg;
  }
  
- #ifndef hpux /* hpux defines this in math.h */
  inline double sqr(double arg)
  {
    return arg * arg;
  }
- #endif
  
  inline int even(long arg)
  {
--- 119,128 ----

*** libg++-2.2/libg++/tests/Makefile.in	Thu Jun 18 01:56:21 1992
--- libg++/tests/Makefile.in	Fri Nov  6 12:05:04 1992
***************
*** 68,74 ****
  	then echo ../../gcc/gcc -B../../gcc/ ; \
  	else echo gcc ; fi`
  
! CFLAGS = -g
  XTRAFLAGS = `if [ -f ../../gcc/gcc ] ; \
  	then echo -I../../gcc/include ; \
  	else echo ; fi`
--- 68,74 ----
  	then echo ../../gcc/gcc -B../../gcc/ ; \
  	else echo gcc ; fi`
  
! CFLAGS =
  XTRAFLAGS = `if [ -f ../../gcc/gcc ] ; \
  	then echo -I../../gcc/include ; \
  	else echo ; fi`
***************
*** 148,154 ****
  
  .PHONY: boltcc
  boltcc:
! 	$(MAKE) "CC=$(CC)" "XTRAFLAGS=$(XTRAFLAGS)" "AR=$(AR)" "RANLIB=$(RANLIB)" check
  
  .PHONY: info
  info:
--- 148,154 ----
  
  .PHONY: boltcc
  boltcc:
! 	$(MAKE) "CC=$(CC)" "CFLAGS=$(CFLAGS)" "XTRAFLAGS=$(XTRAFLAGS)" "AR=$(AR)" "RANLIB=$(RANLIB)" check
  
  .PHONY: info
  info:
***************
*** 258,264 ****
  	echo "(Must run tCurses manually from tty)"
  
  test_h: test_h.o
! 	$(CC) $(LDFLAGS) test_h.o -o $@ $(LIBS) -lm
  	
  
  	
--- 258,264 ----
  	echo "(Must run tCurses manually from tty)"
  
  test_h: test_h.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) test_h.o -o $@ $(LIBS) -lm
  	
  
  	
***************
*** 272,375 ****
  #
  
  test0: test0.h  test.hello.o test.bye test.bye2 test.shell
! 	$(CC) $(LDFLAGS) test.hello.o $(LIBS) -o $@
  
  test.hello.o: test0.h test.hello.cc
! 	$(CC) $(LDFLAGS) $(TFLAGS) test.hello.cc -o $@
  
  test.bye: test0.h test.bye.cc
! 	$(CC) $(LDFLAGS) $(TFLAGS) test.bye.cc  -o $@
  
  test.bye2: test0.h test.bye2.cc
! 	$(CC) $(LDFLAGS) $(TFLAGS) test.bye2.cc  -o $@
  
  test.shell: test0.h test.shell.cc
! 	$(CC) $(LDFLAGS) $(TFLAGS) test.shell.cc  -o $@
  
  #
  # other tests
  #
  
  tFile:  tFile.o
! 	$(CC) $(LDFLAGS) tFile.o -o $@ $(LIBS)
  
  tObstack:  tObstack.o
! 	$(CC) $(LDFLAGS) tObstack.o -o $@ $(LIBS)
  
  tString:  tString.o
! 	$(CC) $(LDFLAGS) tString.o -o $@ $(LIBS)
  
  tInteger:  tInteger.o
! 	$(CC) $(LDFLAGS) tInteger.o -o $@ $(LIBS)
  
  twrapper:  twrapper.o
! 	$(CC) $(LDFLAGS) twrapper.o -o $@ $(LIBS)
  
  tgwrapper:   tgwrapper.o
! 	$(CC) $(LDFLAGS) tgwrapper.o -o $@ $(LIBS)
  
  tRational:  tRational.o
! 	$(CC) $(LDFLAGS) tRational.o -o $@ $(LIBS) -lm
  
  tComplex:  tComplex.o
! 	$(CC) $(LDFLAGS) tComplex.o -o $@ $(LIBS) -lm
  
  tBitSet:  tBitSet.o
! 	$(CC) $(LDFLAGS) tBitSet.o -o $@ $(LIBS)
  
  tBitString:  tBitString.o
! 	$(CC) $(LDFLAGS) tBitString.o -o $@ $(LIBS)
  
  tRandom:  tRandom.o
! 	$(CC) $(LDFLAGS) tRandom.o -o $@ $(LIBS) -lm
  
  tFix:  tFix.o
! 	$(CC) $(LDFLAGS) tFix.o -o $@ $(LIBS) -lm
  
  tFix16:  tFix16.o
! 	$(CC) $(LDFLAGS) tFix16.o -o $@ $(LIBS) -lm
  
  tFix24:  tFix24.o
! 	$(CC) $(LDFLAGS) tFix24.o -o $@ $(LIBS) -lm
  
  tCurses:  tCurses.o
! 	$(CC) $(LDFLAGS) tCurses.o  -o $@ $(LIBS) -lcurses -ltermcap 
  
  tGetOpt:  tGetOpt.o
! 	$(CC) $(LDFLAGS) tGetOpt.o -o $@ $(LIBS)
  
  tList:  $(LIBTEST)  tList.o
! 	$(CC) $(LDFLAGS) tList.o -o $@ $(LIBTEST) $(LIBS)
  
  tPlex:  $(LIBTEST)  tPlex.o
! 	$(CC) $(LDFLAGS) tPlex.o -o $@ $(LIBTEST) $(LIBS)
  
  tLList:  $(LIBTEST) tLList.o
! 	$(CC) $(LDFLAGS) tLList.o -o $@ $(LIBTEST) $(LIBS)
  
  tVec: $(LIBTEST) tVec.o
! 	$(CC) $(LDFLAGS) tVec.o -o $@ $(LIBTEST) $(LIBS)
  
  tStack: $(LIBTEST) tStack.o
! 	$(CC) $(LDFLAGS) tStack.o -o $@ $(LIBTEST) $(LIBS)
  
  tQueue: $(LIBTEST) tQueue.o
! 	$(CC) $(LDFLAGS) tQueue.o -o $@ $(LIBTEST) $(LIBS)
  
  tDeque: $(LIBTEST) tDeque.o
! 	$(CC) $(LDFLAGS) tDeque.o -o $@ $(LIBTEST) $(LIBS)
  
  tPQ: $(LIBTEST) tPQ.o
! 	$(CC) $(LDFLAGS) tPQ.o -o $@ $(LIBTEST) $(LIBS)
  
  tSet: $(LIBTEST) tSet.o
! 	$(CC) $(LDFLAGS) tSet.o -o $@ $(LIBTEST) $(LIBS)
  
  tBag:  $(LIBTEST) tBag.o
! 	$(CC) $(LDFLAGS) tBag.o -o $@ $(LIBTEST) $(LIBS)
  
  tMap:  $(LIBTEST) tMap.o
! 	$(CC) $(LDFLAGS) tMap.o -o $@ $(LIBTEST) $(LIBS)
  
  idefs.h:
  	PROTODIR=$(PROTODIR); export PROTODIR; $(GENCLASS) int val defs i
--- 272,375 ----
  #
  
  test0: test0.h  test.hello.o test.bye test.bye2 test.shell
! 	$(CC) $(CFLAGS) $(LDFLAGS) test.hello.o $(LIBS) -o $@
  
  test.hello.o: test0.h test.hello.cc
! 	$(CC) $(CFLAGS) $(LDFLAGS) $(TFLAGS) test.hello.cc -o $@
  
  test.bye: test0.h test.bye.cc
! 	$(CC) $(CFLAGS) $(LDFLAGS) $(TFLAGS) test.bye.cc  -o $@
  
  test.bye2: test0.h test.bye2.cc
! 	$(CC) $(CFLAGS) $(LDFLAGS) $(TFLAGS) test.bye2.cc  -o $@
  
  test.shell: test0.h test.shell.cc
! 	$(CC) $(CFLAGS) $(LDFLAGS) $(TFLAGS) test.shell.cc  -o $@
  
  #
  # other tests
  #
  
  tFile:  tFile.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) tFile.o -o $@ $(LIBS)
  
  tObstack:  tObstack.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) tObstack.o -o $@ $(LIBS)
  
  tString:  tString.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) tString.o -o $@ $(LIBS)
  
  tInteger:  tInteger.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) tInteger.o -o $@ $(LIBS)
  
  twrapper:  twrapper.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) twrapper.o -o $@ $(LIBS)
  
  tgwrapper:   tgwrapper.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) tgwrapper.o -o $@ $(LIBS)
  
  tRational:  tRational.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) tRational.o -o $@ $(LIBS) -lm
  
  tComplex:  tComplex.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) tComplex.o -o $@ $(LIBS) -lm
  
  tBitSet:  tBitSet.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) tBitSet.o -o $@ $(LIBS)
  
  tBitString:  tBitString.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) tBitString.o -o $@ $(LIBS)
  
  tRandom:  tRandom.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) tRandom.o -o $@ $(LIBS) -lm
  
  tFix:  tFix.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) tFix.o -o $@ $(LIBS) -lm
  
  tFix16:  tFix16.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) tFix16.o -o $@ $(LIBS) -lm
  
  tFix24:  tFix24.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) tFix24.o -o $@ $(LIBS) -lm
  
  tCurses:  tCurses.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) tCurses.o  -o $@ $(LIBS) -lcurses -ltermcap 
  
  tGetOpt:  tGetOpt.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) tGetOpt.o -o $@ $(LIBS)
  
  tList:  $(LIBTEST)  tList.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) tList.o -o $@ $(LIBTEST) $(LIBS)
  
  tPlex:  $(LIBTEST)  tPlex.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) tPlex.o -o $@ $(LIBTEST) $(LIBS)
  
  tLList:  $(LIBTEST) tLList.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) tLList.o -o $@ $(LIBTEST) $(LIBS)
  
  tVec: $(LIBTEST) tVec.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) tVec.o -o $@ $(LIBTEST) $(LIBS)
  
  tStack: $(LIBTEST) tStack.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) tStack.o -o $@ $(LIBTEST) $(LIBS)
  
  tQueue: $(LIBTEST) tQueue.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) tQueue.o -o $@ $(LIBTEST) $(LIBS)
  
  tDeque: $(LIBTEST) tDeque.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) tDeque.o -o $@ $(LIBTEST) $(LIBS)
  
  tPQ: $(LIBTEST) tPQ.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) tPQ.o -o $@ $(LIBTEST) $(LIBS)
  
  tSet: $(LIBTEST) tSet.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) tSet.o -o $@ $(LIBTEST) $(LIBS)
  
  tBag:  $(LIBTEST) tBag.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) tBag.o -o $@ $(LIBTEST) $(LIBS)
  
  tMap:  $(LIBTEST) tMap.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) tMap.o -o $@ $(LIBTEST) $(LIBS)
  
  idefs.h:
  	PROTODIR=$(PROTODIR); export PROTODIR; $(GENCLASS) int val defs i

*** libg++-2.2/libg++/tests/tString.cc	Fri Jun 28 23:32:54 1991
--- libg++/tests/tString.cc	Fri Nov  6 16:07:20 1992
***************
*** 34,40 ****
--- 34,43 ----
    assert(y == "Hello");
  
    if (y[y.length()-1] == 'o')
+   {
  	y = y + '\n';
+   }
+   y = "Hello\n";
    assert(y == "Hello\n");
    y = "Hello";
  

*** libg++-2.2/libg++/utils/Makefile.in	Sat Jun 20 08:22:17 1992
--- libg++/utils/Makefile.in	Fri Nov  6 11:14:28 1992
***************
*** 64,70 ****
  
  PROGS = etags g++dep
  ELISP = c++-mode.el
! CFLAGS = -g
  
  #### host and target dependent Makefile fragments come in here.
  ##
--- 64,70 ----
  
  PROGS = etags g++dep
  ELISP = c++-mode.el
! CFLAGS = 
  
  #### host and target dependent Makefile fragments come in here.
  ##

*** libg++-2.2/libg++/utils/gen-params	Fri Jun 26 21:29:41 1992
--- libg++/utils/gen-params	Mon Nov  9 12:32:53 1992
***************
*** 75,81 ****
    fi
  
    if test -n "${DOLLAR_IN_LABEL}" ; then
!     echo "#define ${macro_prefix} ${DOLLAR_IN_LABEL} ${DOLLAR_IN_LABEL}"
    elif test "`${CONFIG_NM} dummy.o | grep 'vt[$$]filebuf'`" != ""; then
      echo "#define ${macro_prefix}DOLLAR_IN_LABEL 1"
    elif test "`${CONFIG_NM} dummy.o | grep 'vt[.]filebuf'`" != ""; then
--- 75,81 ----
    fi
  
    if test -n "${DOLLAR_IN_LABEL}" ; then
!     echo "#define ${macro_prefix}DOLLAR_IN_LABEL ${DOLLAR_IN_LABEL}"
    elif test "`${CONFIG_NM} dummy.o | grep 'vt[$$]filebuf'`" != ""; then
      echo "#define ${macro_prefix}DOLLAR_IN_LABEL 1"
    elif test "`${CONFIG_NM} dummy.o | grep 'vt[.]filebuf'`" != ""; then
***************
*** 219,224 ****
--- 219,227 ----
  extern long foo(X_va_list); /* Check that X_va_list compiles on its own */
  #include <stdarg.h>
  long foo(X_va_list ap) { return va_arg(ap, long); }
+ #if defined(hpux) || defined(__hpux)
+ blurfl /* cause compilation to fail -- we NEED stdarg.h on HP-UX*/
+ #endif /* hpux || __hpux */
  long bar(int i, ...)
  { va_list ap; long j; va_start(ap, i); j = foo(ap); va_end(ap); return j; }
  !EOF!

*** libg++-2.2/libiberty/Makefile.in	Thu Jun 18 03:14:52 1992
--- libiberty/Makefile.in	Fri Nov  6 11:14:47 1992
***************
*** 57,63 ****
  
  AR = ar
  AR_FLAGS = qv
! CFLAGS = -g
  BISON = bison
  MAKEINFO = makeinfo
  RANLIB = ranlib
--- 57,63 ----
  
  AR = ar
  AR_FLAGS = qv
! CFLAGS =
  BISON = bison
  MAKEINFO = makeinfo
  RANLIB = ranlib
@EOF

chmod 644 hp9k700-patches

exit 0
-- 
Bart Muyzer, Systems and Network Administrator, [NIC-Whois handle: BJM9]
     3D Computer Vision, Room E02.222, University Hospital Utrecht,
     Heidelberglaan 100, 3584 CX Utrecht, Holland. E-mail: bartm@cv.ruu.nl
     Fax: +31-30-513399. Tel: +31-30-506711 (w), +31-3402-52157 (h). 
Technical Details
Message-ID: <1992Nov17.160758.17944@cv.ruu.nl>
Path: arc1-ca.pugleaf.net!sparky!uunet!snorkelwacker.mit.edu!ai-lab!prep.ai.mit.edu!gnulists

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!snorkelwacker.mit.edu!ai-lab!prep.ai.mit.edu!gnulists
From: bartm@cv.ruu.nl (Bart Muyzer)
Newsgroups: gnu.g++.lib.bug,gnu.g++.help,comp.sys.hp
Subject: UPDATED PATCHES for libg++ 2.2 with HP-UX 8.0 (gcc 2.3.1)
Followup-To: gnu.g++.lib.bug,gnu.g++.help,comp.sys.hp
Date: 17 Nov 1992 23:48:21 -0500
Organization: University of Utrecht, 3D Computer Vision Research Group
Lines: 1821
Sender: tower@ai.mit.edu
Approved: info-gnu@prep.ai.mit.edu
Distribution: world
Message-ID: <1992Nov17.160758.17944@cv.ruu.nl>
NNTP-Posting-Host: life.ai.mit.edu
Keywords: update, gcc 2.3.1.u2
Originator: bartm@mind.cv.ruu.nl
Apparently-To: gnu-g++-lib-bug@nluug.nl