[comp.lang.c++] Context diffs for g++-1.37.2 on ISC Unix

dsr@luke.mitre.org (Douglas S. Rand) (08/29/90)

First you need to get the gas changes for COFF available on 
sequent.kent.edu via anon. ftp.  You'll need to compile gcc with
ASMFLAGS as "-C" to get the COFF output.  Once you've compiled
gas and gcc and are sure that is all running correct get 
g++-1.37.2 beta and libg++-1.37.2 from labrea.stanford.edu via anon
ftp.  The following context diffs are applied to g++.  I do have one
mistake in these --  the -C flag on as should have been in ASMFLAGS 
instead of hand editing many separate files.  

I hope this works for folks.  I'm very thankful that g++ 1.37.2 actually
runs collect and ld the way it is supposed to.

diff -c g++/Makefile g++-1.37.2/Makefile
*** g++/Makefile	Fri Aug 24 13:27:55 1990
--- g++-1.37.2/Makefile	Mon Aug  6 08:56:07 1990
***************
*** 32,39 ****
  # cplus-class.c cplus-search.c
  
  # This file depends on -DCADILLAC
! # cplus-cad.c
! CADILLAC_OBJS = cplus-cad.o ../cad/code/connection/libconn.a
  
  # Defining NDEBUG will cause assertion macros to do nothing.
  
--- 32,39 ----
  # cplus-class.c cplus-search.c
  
  # This file depends on -DCADILLAC
! # cplus-cadillac.c
! CADILLAC_OBJS = cplus-cadillac.o ../cadillac/code/connection/libconn.a
  
  # Defining NDEBUG will cause assertion macros to do nothing.
  
***************
*** 41,47 ****
  # use `-dy'.
  
  # On COFF systems, use one of the definitions below. (see collect.c)
! COFFLAGS = -DUSE_COLLECT -DCOFF
  # COFFLAGS = -DUSE_COLLECT -DEXTENDED_COFF
  
  # On some BSD systems (like Vax, unlike Sun), there is no file
--- 41,47 ----
  # use `-dy'.
  
  # On COFF systems, use one of the definitions below. (see collect.c)
! # COFFLAGS = -DUSE_COLLECT -DCOFF
  # COFFLAGS = -DUSE_COLLECT -DEXTENDED_COFF
  
  # On some BSD systems (like Vax, unlike Sun), there is no file
***************
*** 53,65 ****
  CFLAGS = -g -DGATHER_STATISTICS -O $(COFFLAGS) -B../gcc-test/ -DFIELD_XREF
  CC = gcc
  BISON = bison
! BISONFLAGS = -v -d
  AR = ar
  SHELL = /bin/sh
  # on sysV, define this as cp.
! INSTALL = cp
  # on sysV, define this as ln.
! LINK = ln
  
  # Compiler to use for compiling gnulib.
  # OLDCC should not be the GNU C compiler.
--- 53,65 ----
  CFLAGS = -g -DGATHER_STATISTICS -O $(COFFLAGS) -B../gcc-test/ -DFIELD_XREF
  CC = gcc
  BISON = bison
! BISONFLAGS = -v # -d
  AR = ar
  SHELL = /bin/sh
  # on sysV, define this as cp.
! INSTALL = install -c
  # on sysV, define this as ln.
! LINK = ln -s
  
  # Compiler to use for compiling gnulib.
  # OLDCC should not be the GNU C compiler.
***************
*** 75,83 ****
  # uncomment the following line.  But turncoats who claim officially
  # to support System V, but really try to be Berkeley (and thus
  # break with USG defined), may need to define this.
! USG_STDIO = -DUSG_STDIO
  
! prefix=/usr/local
  
  # Directory where sources are, from where we are.
  srcdir = .
--- 75,83 ----
  # uncomment the following line.  But turncoats who claim officially
  # to support System V, but really try to be Berkeley (and thus
  # break with USG defined), may need to define this.
! # USG_STDIO = -DUSG_STDIO
  
! prefix=/tools2/gnu
  
  # Directory where sources are, from where we are.
  srcdir = .
***************
*** 128,134 ****
  # But don't do that if compiling using GCC.
  
  # If your system has alloca() in /lib/libPW.a, un-comment the following line:
! CLIB= -lPW
  
  # If your system's malloc() routine fails for any reason (as it does on
  # certain versions of Genix), try getting the files
--- 128,134 ----
  # But don't do that if compiling using GCC.
  
  # If your system has alloca() in /lib/libPW.a, un-comment the following line:
! # CLIB= -lPW
  
  # If your system's malloc() routine fails for any reason (as it does on
  # certain versions of Genix), try getting the files
***************
*** 209,217 ****
  
  # gnulib is not a target because a proper installation of GNU CC
  # will place it where g++ can find it.  Same with cpp
! # all: crt1+.o g++ cc1plus ld++ g++filt # collect crt0+.o
  # On COFF systems, use the target below.
! all: g++ cc1plus collect # crt0+.o crt1+.o
  
  doc: $(srcdir)/cpp.info $(srcdir)/g++.info
  
--- 209,217 ----
  
  # gnulib is not a target because a proper installation of GNU CC
  # will place it where g++ can find it.  Same with cpp
! all: crt1+.o g++ cc1plus ld++ g++filt # collect crt0+.o
  # On COFF systems, use the target below.
! # all: g++ cc1plus collect # crt0+.o crt1+.o
  
  doc: $(srcdir)/cpp.info $(srcdir)/g++.info
  
***************
*** 284,290 ****
  ld++: ld.o cplus-dem.o
  	$(CC) -o ld++ $(PROFILE) ld.o cplus-dem.o -lg -lc
  
! collect: collect.o config.h $(LIBDEPS)
  	COLLECT_LIBS="-lld"; \
  	if cmp -s tm.h config/tm-encore.h; then \
  		COLLECT_OPTIONS='-DUMAX'; \
--- 284,290 ----
  ld++: ld.o cplus-dem.o
  	$(CC) -o ld++ $(PROFILE) ld.o cplus-dem.o -lg -lc
  
! collect: collect.c config.h $(LIBDEPS)
  	COLLECT_LIBS="-lld"; \
  	if cmp -s tm.h config/tm-encore.h; then \
  		COLLECT_OPTIONS='-DUMAX'; \
***************
*** 291,297 ****
  	else \
  		COLLECT_OPTIONS=''; \
  	fi; \
! 	$(CC) -o collect collect.o $(PROFILE) $$COLLECT_OPTIONS $(CFLAGS)
$(INCLUDES) $< -lg -lc $$COLLECT_LIBS
  
  collect2: collect2.c config.h
  	$(CC) -o collect2 collect2.c $(PROFILE) $$COLLECT_OPTIONS $(CFLAGS)
$(INCLUDES) -lc
--- 291,297 ----
  	else \
  		COLLECT_OPTIONS=''; \
  	fi; \
! 	$(CC) -o collect $(PROFILE) $$COLLECT_OPTIONS $(CFLAGS) $(INCLUDES)
$< -lg -lc $$COLLECT_LIBS
  
  collect2: collect2.c config.h
  	$(CC) -o collect2 collect2.c $(PROFILE) $$COLLECT_OPTIONS $(CFLAGS)
$(INCLUDES) -lc
***************
*** 332,341 ****
  	mv crt1.o crt1+.o
  
  cc1plus: $(CPLUS_OBJS) $(OBJS) $(LIBDEPS) lastfile.o cplus-edsel.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) -s -o cc1plus lastfile.o $(CPLUS_OBJS)
cplus-edsel.o $(OBJS) $(LIBS) -lm
  
! cad-cc1plus: $(CPLUS_OBJS) $(CADILLAC_OBJS) $(OBJS) $(LIBDEPS) lastfile.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) -o cad-cc1plus lastfile.o $(CPLUS_OBJS)
$(CADILLAC_OBJS) $(OBJS) $(LIBS)
  
  cplus-decl.o : cplus-decl.c $(CONFIG_H) $(CPLUS_TREE_H) flags.h \
    cplus-parse.h cplus-decl.h stack.h rtl.h insn-flags.h
--- 332,341 ----
  	mv crt1.o crt1+.o
  
  cc1plus: $(CPLUS_OBJS) $(OBJS) $(LIBDEPS) lastfile.o cplus-edsel.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) -o cc1plus lastfile.o $(CPLUS_OBJS)
cplus-edsel.o $(OBJS) $(LIBS) -lm
  
! cadillac-cc1plus: $(CPLUS_OBJS) $(CADILLAC_OBJS) $(OBJS) $(LIBDEPS)
lastfile.o
! 	$(CC) $(CFLAGS) $(LDFLAGS) -o cadillac-cc1plus lastfile.o
$(CPLUS_OBJS) $(CADILLAC_OBJS) $(OBJS) $(LIBS)
  
  cplus-decl.o : cplus-decl.c $(CONFIG_H) $(CPLUS_TREE_H) flags.h \
    cplus-parse.h cplus-decl.h stack.h rtl.h insn-flags.h
***************
*** 354,363 ****
  cplus-ptree.o : cplus-ptree.c $(CONFIG_H) $(TREE_H)
  cplus-field.o : cplus-field.c $(CONFIG_H) $(TREE_H)
  
! cplus-cad.o : cplus-cad.c $(CONFIG_H) $(CPLUS_TREE_H) stack.h
! 	$(CC) -c -DCADILLAC $(CFLAGS) $(INCLUDES) -I../cad/code/comp-dep
-I../cad/code/connection $<
! cplus-edsel.o : cplus-cad.c $(CONFIG_H) $(CPLUS_TREE_H) stack.h
! 	$(CC) -c $(CFLAGS) $(INCLUDES) -o cplus-edsel.o cplus-cad.c
  
  cplus-tab.o : $(srcdir)/cplus-tab.c $(CONFIG_H) $(CPLUS_TREE_H) \
     cplus-parse.h flags.h input.h
--- 354,363 ----
  cplus-ptree.o : cplus-ptree.c $(CONFIG_H) $(TREE_H)
  cplus-field.o : cplus-field.c $(CONFIG_H) $(TREE_H)
  
! cplus-cadillac.o : cplus-cadillac.c $(CONFIG_H) $(CPLUS_TREE_H) stack.h
! 	$(CC) -c -DCADILLAC $(CFLAGS) $(INCLUDES) -I../cadillac/code/comp-dep
-I../cadillac/code/connection $<
! cplus-edsel.o : cplus-cadillac.c $(CONFIG_H) $(CPLUS_TREE_H) stack.h
! 	$(CC) -c $(CFLAGS) $(INCLUDES) -o cplus-edsel.o cplus-cadillac.c
  
  cplus-tab.o : $(srcdir)/cplus-tab.c $(CONFIG_H) $(CPLUS_TREE_H) \
     cplus-parse.h flags.h input.h
diff -c g++/cplus-field.c g++-1.37.2/cplus-field.c
*** g++/cplus-field.c	Fri Aug 24 13:21:12 1990
--- g++-1.37.2/cplus-field.c	Fri Jul 20 20:39:53 1990
***************
*** 16,22 ****
  
  #include <stdio.h>
  #include <ctype.h>
! #include <string.h>
  
  
  
--- 16,22 ----
  
  #include <stdio.h>
  #include <ctype.h>
! #include <strings.h>
  
  
  
***************
*** 246,252 ****
     all_files = xf;
  
     if (wd_name == NULL) {
!       getcwd(wdbuf,sizeof(wdbuf));
        wd_name = SALLOC(wdbuf);
      };
  
--- 246,252 ----
     all_files = xf;
  
     if (wd_name == NULL) {
!       getwd(wdbuf);
        wd_name = SALLOC(wdbuf);
      };
  
***************
*** 890,901 ****
  {
     String s,t;
  
!    s = strrchr(file,'/');
     if (s == NULL) sprintf(xref_name,".%s.gxref",file);
     else {
        ++s;
        strcpy(xref_name,file);
!       t = strrchr(xref_name,'/');
        ++t;
        *t++ = '.';
        strcpy(t,s);
--- 890,901 ----
  {
     String s,t;
  
!    s = rindex(file,'/');
     if (s == NULL) sprintf(xref_name,".%s.gxref",file);
     else {
        ++s;
        strcpy(xref_name,file);
!       t = rindex(xref_name,'/');
        ++t;
        *t++ = '.';
        strcpy(t,s);
diff -c g++/cplus-lex.c g++-1.37.2/cplus-lex.c
*** g++/cplus-lex.c	Fri Aug 24 13:12:33 1990
--- g++-1.37.2/cplus-lex.c	Mon Aug  6 00:31:07 1990
***************
*** 38,44 ****
  #include "flags.h"
  #include "obstack.h"
  #include "assert.h"
- #include "getpagesize.h"
  extern int errno;		/* needed for VAX.  */
  extern jmp_buf toplevel;
  
--- 38,43 ----
***************
*** 56,61 ****
--- 55,66 ----
  
  extern double atof ();
  
+ /* If you don't have strrchr, but instead have rindex,
+    add your machine to this list, and send mail to
+    tiemann@wheaties.ai.mit.edu.  */
+ #if defined(sequent) || defined(convex)
+ #define strrchr rindex
+ #endif
  extern char *strrchr ();
  
  /* This obstack is needed to hold text.  It is not safe to use
diff -c g++/gcc.c g++-1.37.2/gcc.c
*** g++/gcc.c	Fri Aug 24 14:35:52 1990
--- g++-1.37.2/gcc.c	Mon Aug  6 00:33:47 1990
***************
*** 236,242 ****
  	     %{v:-version} %{gg:-symout %g.sym} %{pg:-p} %{p} %{xref}\
  	     %{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are
incompatible}}\
  	     %{S:%{o*}%{!o*:-o %b.s}}%{!S:-o %{|!pipe:%g.s}} |\n\
! 	     %{!S:as -C %{R} %{j} %{J} %{h} %{d2} %a %{gg:-G %g.sym}\
  		%{c:%{o*}%{!o*:-o %w%b.o}}%{!c:-o %d%w%b.o}\
                     %{!pipe:%g.s}\n }}}"
  
--- 236,242 ----
  	     %{v:-version} %{gg:-symout %g.sym} %{pg:-p} %{p} %{xref}\
  	     %{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are
incompatible}}\
  	     %{S:%{o*}%{!o*:-o %b.s}}%{!S:-o %{|!pipe:%g.s}} |\n\
! 	     %{!S:as %{R} %{j} %{J} %{h} %{d2} %a %{gg:-G %g.sym}\
  		%{c:%{o*}%{!o*:-o %w%b.o}}%{!c:-o %d%w%b.o}\
                     %{!pipe:%g.s}\n }}}"
  
***************
*** 259,265 ****
  		   %{v:-version} %{gg:-symout %g.sym} %{pg:-p} %{p} %{xref}\
  		   %{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are
incompatible}}\
  		   %{S:%{o*}%{!o*:-o %b.s}}%{!S:-o %{|!pipe:%g.s}} |\n\
!               %{!S:as -C %{R} %{j} %{J} %{h} %{d2} %a %{gg:-G %g.sym}\
  		      %{c:%{o*}%{!o*:-o %w%b.o}}%{!c:-o %d%w%b.o}\
                        %{!pipe:%g.s}\n }}}"
  #else
--- 259,265 ----
  		   %{v:-version} %{gg:-symout %g.sym} %{pg:-p} %{p} %{xref}\
  		   %{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are
incompatible}}\
  		   %{S:%{o*}%{!o*:-o %b.s}}%{!S:-o %{|!pipe:%g.s}} |\n\
!               %{!S:as %{R} %{j} %{J} %{h} %{d2} %a %{gg:-G %g.sym}\
  		      %{c:%{o*}%{!o*:-o %w%b.o}}%{!c:-o %d%w%b.o}\
                        %{!pipe:%g.s}\n }}}"
  #else
***************
*** 279,288 ****
  	%{g} %{O} %{W*} %{w} %{pedantic} %{ansi} %{traditional}\
  	%{v:-version} %{gg:-symout %g.sym} %{pg:-p} %{p} %{xref}\
  	%{S:%{o*}%{!o*:-o %b.s}}%{!S:-o %{|!pipe:%g.s}} |\n\
!     %{!S:as -C %{R} %{j} %{J} %{h} %{d2} %a %{gg:-G %g.sym}\
              %{c:%{o*}%{!o*:-o %w%b.o}}%{!c:-o %d%w%b.o} %{!pipe:%g.s}\n }"},
    {".s",
!    "%{!S:as -C %{R} %{j} %{J} %{h} %{d2} %a \
              %{c:%{o*}%{!o*:-o %w%b.o}}%{!c:-o %d%w%b.o} %i\n }"},
    {".S",
     "cpp %{nostdinc} %{C} %{v} %{D*} %{U*} %{I*} %{i*} %{M*} %{trigraphs} \
--- 279,288 ----
  	%{g} %{O} %{W*} %{w} %{pedantic} %{ansi} %{traditional}\
  	%{v:-version} %{gg:-symout %g.sym} %{pg:-p} %{p} %{xref}\
  	%{S:%{o*}%{!o*:-o %b.s}}%{!S:-o %{|!pipe:%g.s}} |\n\
!     %{!S:as %{R} %{j} %{J} %{h} %{d2} %a %{gg:-G %g.sym}\
              %{c:%{o*}%{!o*:-o %w%b.o}}%{!c:-o %d%w%b.o} %{!pipe:%g.s}\n }"},
    {".s",
!    "%{!S:as %{R} %{j} %{J} %{h} %{d2} %a \
              %{c:%{o*}%{!o*:-o %w%b.o}}%{!c:-o %d%w%b.o} %i\n }"},
    {".S",
     "cpp %{nostdinc} %{C} %{v} %{D*} %{U*} %{I*} %{i*} %{M*} %{trigraphs} \
***************
*** 290,296 ****
          %c %{O:-D__OPTIMIZE__} %{traditional} %{pedantic}\
  	%{Wcomment*} %{Wtrigraphs} %{Wall} %C\
          %i %{!M*:%{!E:%{!pipe:%g.s}}}%{E:%{o*}}%{M*:%{o*}} |\n\
!     %{!M*:%{!E:%{!S:as -C %{R} %{j} %{J} %{h} %{d2} %a \
                      %{c:%{o*}%{!o*:-o %w%b.o}}%{!c:-o %d%w%b.o}\
  		    %{!pipe:%g.s}\n }}}"},
    /* Mark end of table */
--- 290,296 ----
          %c %{O:-D__OPTIMIZE__} %{traditional} %{pedantic}\
  	%{Wcomment*} %{Wtrigraphs} %{Wall} %C\
          %i %{!M*:%{!E:%{!pipe:%g.s}}}%{E:%{o*}}%{M*:%{o*}} |\n\
!     %{!M*:%{!E:%{!S:as %{R} %{j} %{J} %{h} %{d2} %a \
                      %{c:%{o*}%{!o*:-o %w%b.o}}%{!c:-o %d%w%b.o}\
  		    %{!pipe:%g.s}\n }}}"},
    /* Mark end of table */
***************
*** 302,308 ****
     requirements.  */
  char *collect_spec =
    "%{!c:%{!M*:%{!E:%{!S:collect -o %g.s %g.R\n\
! as -C %g.s -o %g.O\n\
  ld %{o*} %g.R %g.O\n\
  }}}}";
  
--- 302,308 ----
     requirements.  */
  char *collect_spec =
    "%{!c:%{!M*:%{!E:%{!S:collect -o %g.s %g.R\n\
! as %g.s -o %g.O\n\
  ld %{o*} %g.R %g.O\n\
  }}}}";
  
diff -c g++/getpagesize.h g++-1.37.2/getpagesize.h
*** g++/getpagesize.h	Fri Aug 24 11:08:16 1990
--- g++-1.37.2/getpagesize.h	Mon Oct  2 10:20:22 1989
***************
*** 1,5 ****
- #undef HAVE_GETPAGESIZE
- 
  #ifdef BSD
  #ifndef BSD4_1
  #define HAVE_GETPAGESIZE
--- 1,3 ----
diff -c g++/toplev.c g++-1.37.2/toplev.c
*** g++/toplev.c	Fri Aug 24 13:17:39 1990
--- g++-1.37.2/toplev.c	Mon Aug  6 00:37:27 1990
***************
*** 40,46 ****
  #include <unistd.h>
  #endif
  
- #include "getpagesize.h"
  #ifdef USG
  #include <sys/fcntl.h>
  #undef FLOAT
--- 40,45 ----



Douglas S. Rand 
Internet:   <dsrand@mitre.org>
Snail:	    MITRE, Burlington Road, Bedford, MA 
Disclaimer: MITRE might agree with me - then again...
Amateur Radio: KC1KJ