Changes for GCC version 2.2.2, from version 2.2.1. This omits changes in the files gcc.info*, c-parse.c, cp-parse.c, TAGS, gcc.aux, gcc.cps. You can rebuild those files yourself by running makeinfo, Bison, etags, and TeX. diff -rc2N gcc-2.2.1/ChangeLog gcc-2.2.2/ChangeLog *** gcc-2.2.1/ChangeLog Tue Jun 9 23:11:22 1992 --- gcc-2.2.2/ChangeLog Sun Jun 14 18:14:35 1992 *************** *** 1,2 **** --- 1,76 ---- + Sun Jun 14 16:30:07 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * Version 2.2.2 released. + + * Makefile.in (gcc.xtar.Z): Don't give up if texinfo files not updated. + Just sleep to emphasize the message. + + * i860.h (PREFERRED_RELOAD_CLASS): Avoid f regs for HI and QI if poss. + + * protoize.c: Don't include wait.h. + (gen_aux_info_file): Test wait_status as in gcc.c. + Report fatal signals explicitly. Report exit status. + * xm-next.h (wait): Definition deleted. + + * sparc.c (print_operand): In `r' case, recognize any kind of zero. + + Sat Jun 13 02:51:10 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * va-sparc.h (va_arg): Handle all 8-byte types, not just double. + + Fri Jun 12 23:40:41 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * i860v4.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT): + Use `e' format, not `g' format. + + Fri Jun 12 12:52:48 1992 Tim Moore (moore at fast.cs.utah.edu) + + * pa.md (absdf2): Fix bug in output template. + + Fri Jun 12 10:25:25 1992 Jim Wilson (wilson@sphagnum.cygnus.com) + + * ultrix.h (WCHAR_*): Set to correct values. + + Fri Jun 12 10:07:43 1992 Michael Meissner (meissner@osf.org) + + * x-mips, x-mipsv, x-decstatn, x-iris (OLDCC): Add -Olimit 3000 to + bump the number of basic blocks that the MIPS compiler handles, so + that it doesn't issue warning messages saying to bump the limit. + Move the -O1 option here from X_CFLAGS, so that it doesn't + get passed when bootstraping. + (X_CFLAGS): Delete. + + Thu Jun 11 15:08:01 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * sparc.h (RETURN_IN_MEMORY): Do nothing for structs and unions. + (EXTRA_CONSTRAINT): During reload, accept pseudo reg for Q. + + * va-sparc.h (va_arg): Handle unaligned doubles. + + * fixincludes: Fix return type of `free' in malloc.h. + Recognize #define.NULL only at start of line. + In sys/types.h, find size_t only in a typedef. + In netdnet/dnetdb.h, don't add semicolon in wrong place. + + * configure: Set use_collect2 to empty rather than unsetting. + + * gstddef.h (__need_wchar_t): Fix typo in #undef. + + Wed Jun 10 04:30:01 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * gcc.c (process_command): In gcc_exec_prefix, machine precedes vers. + + * i386sco4.h (CPP_SPEC): Don't redefine __STDC__. + fixincludes knows how to fix the conditionals in system headers. + + * collect2.c (scan_prog_file): Initialize ldptr. + + * dbxout.c (dbxout_symbol): Make tag precede typedef. + + * configure: Initialize host, host_xm_file, host_xmake_file, + host_broken_install, and broken_install. + + * Makefile.in (enquire.o): Add `./' when removing enquire.c. + Tue Jun 9 20:52:05 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) diff -rc2N gcc-2.2.1/Makefile.in gcc-2.2.2/Makefile.in *** gcc-2.2.1/Makefile.in Tue Jun 9 23:10:55 1992 --- gcc-2.2.2/Makefile.in Sun Jun 14 17:40:34 1992 *************** *** 494,498 **** $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(ENQUIRE_LDFLAGS) enquire.o -o $@ enquire.o: $(srcdir)/enquire.c $(GCC_PASSES) ! -if [ "$(srcdir)" != "." ]; then rm -f enquire.c; else true; fi -cp $(srcdir)/enquire.c . > /dev/null 2>&1 # Breaking this line caused a problem with one version of GNU make. --- 494,498 ---- $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(ENQUIRE_LDFLAGS) enquire.o -o $@ enquire.o: $(srcdir)/enquire.c $(GCC_PASSES) ! -if [ "$(srcdir)" != "." ]; then rm -f ./enquire.c; else true; fi -cp $(srcdir)/enquire.c . > /dev/null 2>&1 # Breaking this line caused a problem with one version of GNU make. *************** *** 1571,1575 **** if grep -s "for version ${version}" gcc.texi; \ then true; \ ! else echo "You must update the version number in \`gcc.texi'"; exit 1;\ fi # Update the version number in README --- 1571,1575 ---- if grep -s "for version ${version}" gcc.texi; \ then true; \ ! else echo "You must update the version number in \`gcc.texi'"; sleep 10;\ fi # Update the version number in README diff -rc2N gcc-2.2.1/README gcc-2.2.2/README *** gcc-2.2.1/README Tue Jun 9 22:40:14 1992 --- gcc-2.2.2/README Sun Jun 14 18:15:54 1992 *************** *** 1,3 **** ! This directory contains the version 2.2.1 release of the GNU C compiler. This is a beta test release and we expect it to have a number of bugs. --- 1,3 ---- ! This directory contains the version 2.2.2 release of the GNU C compiler. This is a beta test release and we expect it to have a number of bugs. diff -rc2N gcc-2.2.1/collect2.c gcc-2.2.2/collect2.c *** gcc-2.2.1/collect2.c Fri Jun 5 19:03:21 1992 --- gcc-2.2.2/collect2.c Wed Jun 10 15:25:16 1992 *************** *** 1172,1176 **** enum pass which_pass; { ! LDFILE *ldptr; int sym_index, sym_count; --- 1172,1176 ---- enum pass which_pass; { ! LDFILE *ldptr = NULL; int sym_index, sym_count; diff -rc2N gcc-2.2.1/config/dpx2.h gcc-2.2.2/config/dpx2.h *** gcc-2.2.1/config/dpx2.h Thu May 21 04:04:22 1992 --- gcc-2.2.2/config/dpx2.h Sat Jun 13 17:23:06 1992 *************** *** 2,6 **** * dpx2.h - Bull DPX/2 200 and 300 systems (m68k, SysVr3) * ! * $Id: dpx2.h,v 1.1 1992/03/11 04:21:30 sjg Exp sjg $ */ --- 2,6 ---- * dpx2.h - Bull DPX/2 200 and 300 systems (m68k, SysVr3) * ! * $Id: dpx2.h,v 1.3 1992/05/21 08:04:22 rms Exp $ */ diff -rc2N gcc-2.2.1/config/dpx2g.h gcc-2.2.2/config/dpx2g.h *** gcc-2.2.1/config/dpx2g.h Fri Mar 27 16:26:48 1992 --- gcc-2.2.2/config/dpx2g.h Sat Jun 13 17:23:26 1992 *************** *** 2,6 **** * dpx2g.h - Bull DPX/2 200 and 300 systems (m68k, SysVr3) with gas * ! * $Id: dpx2g.h,v 1.1 1992/03/11 04:21:58 sjg Exp sjg $ */ --- 2,6 ---- * dpx2g.h - Bull DPX/2 200 and 300 systems (m68k, SysVr3) with gas * ! * $Id: dpx2g.h,v 1.1 1992/03/27 21:26:48 rms Exp $ */ diff -rc2N gcc-2.2.1/config/i386sco4.h gcc-2.2.2/config/i386sco4.h *** gcc-2.2.1/config/i386sco4.h Wed May 13 13:30:21 1992 --- gcc-2.2.2/config/i386sco4.h Wed Jun 10 23:52:05 1992 *************** *** 78,80 **** -DM_SYS5 -DM_SYSV -D_M_SYSV -DM_SYS3 -DM_SYSIII \ -DM_COFF -DM_BITFIELDS -DM_WORDSWAP \ ! %{scointl:-D_M_INTERNAT -DM_INTERNAT} -D__STDC__=0}}}" --- 78,80 ---- -DM_SYS5 -DM_SYSV -D_M_SYSV -DM_SYS3 -DM_SYSIII \ -DM_COFF -DM_BITFIELDS -DM_WORDSWAP \ ! %{scointl:-D_M_INTERNAT -DM_INTERNAT}}}}" diff -rc2N gcc-2.2.1/config/i860.h gcc-2.2.2/config/i860.h *** gcc-2.2.1/config/i860.h Fri May 15 16:22:29 1992 --- gcc-2.2.2/config/i860.h Sun Jun 14 18:15:12 1992 *************** *** 351,358 **** non-zero floating-point constant into some register, use an integer register if the constant is SFmode and GENERAL_REGS is one of our options. ! Otherwise, put the constant into memory. */ #define PREFERRED_RELOAD_CLASS(X,CLASS) \ ((CLASS) == ALL_REGS && GET_CODE (X) == CONST_INT ? GENERAL_REGS \ : (GET_CODE (X) == CONST_DOUBLE \ && GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT \ --- 351,364 ---- non-zero floating-point constant into some register, use an integer register if the constant is SFmode and GENERAL_REGS is one of our options. ! Otherwise, put the constant into memory. + When reloading something smaller than a word, use a general reg + rather than an FP reg. */ + #define PREFERRED_RELOAD_CLASS(X,CLASS) \ ((CLASS) == ALL_REGS && GET_CODE (X) == CONST_INT ? GENERAL_REGS \ + : ((GET_MODE (X) == HImode || GET_MODE (X) == QImode) \ + && (CLASS) == ALL_REGS) \ + ? GENERAL_REGS \ : (GET_CODE (X) == CONST_DOUBLE \ && GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT \ diff -rc2N gcc-2.2.1/config/i860v4.h gcc-2.2.2/config/i860v4.h *** gcc-2.2.1/config/i860v4.h Sat Jun 6 17:38:49 1992 --- gcc-2.2.2/config/i860v4.h Sat Jun 13 17:50:53 1992 *************** *** 83,87 **** } \ else \ ! fprintf (FILE, "\t.double %.20g\n", VALUE); \ } --- 83,87 ---- } \ else \ ! fprintf (FILE, "\t.double %.20e\n", VALUE); \ } *************** *** 104,108 **** } \ else \ ! fprintf (FILE, "\t.float %.12g\n", VALUE); \ } --- 104,108 ---- } \ else \ ! fprintf (FILE, "\t.float %.12e\n", VALUE); \ } diff -rc2N gcc-2.2.1/config/pa.md gcc-2.2.2/config/pa.md *** gcc-2.2.1/config/pa.md Wed May 20 13:23:17 1992 --- gcc-2.2.2/config/pa.md Fri Jun 12 17:37:40 1992 *************** *** 1782,1786 **** (abs:DF (match_operand:DF 1 "register_operand" "fx")))] "" ! "fabs,dbl %0,%0" [(set_attr "type" "fpalu")]) --- 1782,1786 ---- (abs:DF (match_operand:DF 1 "register_operand" "fx")))] "" ! "fabs,dbl %1,%0" [(set_attr "type" "fpalu")]) diff -rc2N gcc-2.2.1/config/sparc.c gcc-2.2.2/config/sparc.c *** gcc-2.2.1/config/sparc.c Wed Jun 3 16:40:18 1992 --- gcc-2.2.2/config/sparc.c Sun Jun 14 17:10:58 1992 *************** *** 2751,2755 **** /* In this case we need a register. Use %g0 if the operand is const0_rtx. */ ! if (x == const0_rtx) { fputs ("%g0", file); --- 2751,2756 ---- /* In this case we need a register. Use %g0 if the operand is const0_rtx. */ ! if (x == const0_rtx ! || (GET_MODE (x) != VOIDmode && x == CONST0_RTX (GET_MODE (x)))) { fputs ("%g0", file); diff -rc2N gcc-2.2.1/config/sparc.h gcc-2.2.2/config/sparc.h *** gcc-2.2.1/config/sparc.h Wed Jun 3 16:36:43 1992 --- gcc-2.2.2/config/sparc.h Sat Jun 13 16:40:13 1992 *************** *** 384,391 **** /* Sparc ABI says that quad-precision floats and all structures are returned ! in memory. */ #define RETURN_IN_MEMORY(TYPE) \ ! (TREE_CODE (TYPE) == RECORD_TYPE || TREE_CODE (TYPE) == UNION_TYPE \ ! || TYPE_MODE (TYPE) == TFmode) /* Functions which return large structures get the address --- 384,392 ---- /* Sparc ABI says that quad-precision floats and all structures are returned ! in memory. We go along regarding floats, but for structures ! we follow GCC's normal policy. Use -fpcc-struct-value ! if you want to follow the ABI. */ #define RETURN_IN_MEMORY(TYPE) \ ! (TYPE_MODE (TYPE) == TFmode) /* Functions which return large structures get the address *************** *** 1059,1072 **** #define EXTRA_CONSTRAINT(OP, C) \ ! ((C) == 'Q' ? \ ! ((GET_CODE (OP) == MEM \ ! && memory_address_p (GET_MODE (OP), XEXP (OP, 0)) \ ! && ! symbolic_memory_operand (OP, VOIDmode))) \ ! : ((C) == 'R' ? \ ! (GET_CODE (OP) == LO_SUM \ ! && GET_CODE (XEXP (OP, 0)) == REG \ ! && REG_OK_FOR_BASE_P (XEXP (OP, 0))) \ ! : ((C) == 'S' \ ! ? CONSTANT_P (OP) || memory_address_p (Pmode, OP) : 0))) #else --- 1060,1076 ---- #define EXTRA_CONSTRAINT(OP, C) \ ! ((C) == 'Q' \ ! ? ((GET_CODE (OP) == MEM \ ! && memory_address_p (GET_MODE (OP), XEXP (OP, 0)) \ ! && ! symbolic_memory_operand (OP, VOIDmode)) \ ! || (reload_in_progress && GET_CODE (OP) == REG \ ! && REGNO (OP) >= FIRST_PSEUDO_REGISTER)) \ ! : (C) == 'R' \ ! ? (GET_CODE (OP) == LO_SUM \ ! && GET_CODE (XEXP (OP, 0)) == REG \ ! && REG_OK_FOR_BASE_P (XEXP (OP, 0))) \ ! : (C) == 'S' \ ! ? (CONSTANT_P (OP) || memory_address_p (Pmode, OP)) \ ! : 0) #else diff -rc2N gcc-2.2.1/config/ultrix.h gcc-2.2.2/config/ultrix.h *** gcc-2.2.1/config/ultrix.h Tue Jan 21 13:29:25 1992 --- gcc-2.2.2/config/ultrix.h Sat Jun 13 16:56:59 1992 *************** *** 7,13 **** #define DOLLARS_IN_IDENTIFIERS 1 ! /* These are as defined in /usr/include/sys/stdtypes.h */ #define SIZE_TYPE "unsigned int" #define PTRDIFF_TYPE "int" ! #define WCHAR_TYPE "short unsigned int" ! #define WCHAR_TYPE_SIZE 16 --- 7,14 ---- #define DOLLARS_IN_IDENTIFIERS 1 ! /* These are as defined in /usr/include/sys/stdtypes.h. ! These values are for ultrix 4.2 on the vax. */ #define SIZE_TYPE "unsigned int" #define PTRDIFF_TYPE "int" ! #define WCHAR_TYPE "unsigned int" ! #define WCHAR_TYPE_SIZE 32 diff -rc2N gcc-2.2.1/config/x-decstatn gcc-2.2.2/config/x-decstatn *** gcc-2.2.1/config/x-decstatn Mon Mar 16 17:13:38 1992 --- gcc-2.2.2/config/x-decstatn Fri Jun 12 10:34:16 1992 *************** *** 6,15 **** # the -Wf,-XNg1500 option so the compiler can compile the # G++ file cp-parse.c. Otherwise it complains about ! # too many case statements. Down with fixed size tables! CC = $(OLDCC) ! OLDCC = cc -Wf,-XNg1500 ! ! X_CFLAGS = -O1 # The bison output files are machine-indep, --- 6,15 ---- # the -Wf,-XNg1500 option so the compiler can compile the # G++ file cp-parse.c. Otherwise it complains about ! # too many case statements. -Olimit is so the user ! # can use -O2. Down with fixed size tables! CC = $(OLDCC) ! OPT = -O1 ! OLDCC = cc -Wf,-XNg1500 -Olimit 3000 $(OPT) # The bison output files are machine-indep, diff -rc2N gcc-2.2.1/config/x-iris gcc-2.2.2/config/x-iris *** gcc-2.2.1/config/x-iris Sat May 23 07:12:04 1992 --- gcc-2.2.2/config/x-iris Fri Jun 12 10:34:17 1992 *************** *** 6,16 **** # the -Wf,-XNg1500 option so the compiler can compile the # G++ file cp-parse.c. Otherwise it complains about ! # too many case statements. Down with fixed size tables! # The -cckr is to turn off strict ANSI checking. CC = $(OLDCC) ! OLDCC = cc -Wf,-XNg1500 -cckr ! ! X_CFLAGS = -O1 # The bison output files are machine-indep, --- 6,16 ---- # the -Wf,-XNg1500 option so the compiler can compile the # G++ file cp-parse.c. Otherwise it complains about ! # too many case statements. -Olimit is so the user ! # can use -O2. Down with fixed size tables! # The -cckr is to turn off strict ANSI checking. CC = $(OLDCC) ! OPT = -O1 ! OLDCC = cc -Wf,-XNg1500 -Olimit 3000 -cckr $(OPT) # The bison output files are machine-indep, diff -rc2N gcc-2.2.1/config/x-mips gcc-2.2.2/config/x-mips *** gcc-2.2.1/config/x-mips Sat Mar 14 00:41:35 1992 --- gcc-2.2.2/config/x-mips Fri Jun 12 10:34:19 1992 *************** *** 6,15 **** # the -Wf,-XNg1500 option so the compiler can compile the # G++ file cp-parse.c. Otherwise it complains about ! # too many case statements. Down with fixed size tables! CC = $(OLDCC) ! OLDCC = cc -Wf,-XNg1500 ! ! X_CFLAGS = -O1 # The bison output files are machine-indep, --- 6,15 ---- # the -Wf,-XNg1500 option so the compiler can compile the # G++ file cp-parse.c. Otherwise it complains about ! # too many case statements. The -Olimit is so the user ! # can use -O2. Down with fixed size tables! CC = $(OLDCC) ! OPT = -O1 ! OLDCC = cc -Wf,-XNg1500 -Olimit 3000 $(OPT) # The bison output files are machine-indep, diff -rc2N gcc-2.2.1/config/x-mipsv gcc-2.2.2/config/x-mipsv *** gcc-2.2.1/config/x-mipsv Thu Mar 12 17:14:16 1992 --- gcc-2.2.2/config/x-mipsv Fri Jun 12 10:34:20 1992 *************** *** 6,15 **** # the -Wf,-XNg1500 option so the compiler can compile the # G++ file cp-parse.c. Otherwise it complains about ! # too many case statements. Down with fixed size tables! CC = $(OLDCC) ! OLDCC = cc -Wf,-XNg1500 ! ! X_CFLAGS = -O1 # The bison output files are machine-indep, --- 6,15 ---- # the -Wf,-XNg1500 option so the compiler can compile the # G++ file cp-parse.c. Otherwise it complains about ! # too many case statements. -Olimit is so the user ! # can use -O2. Down with fixed size tables! CC = $(OLDCC) ! OPT = -O1 ! OLDCC = cc -Wf,-XNg1500 -Olimit 3000 $(OPT) # The bison output files are machine-indep, diff -rc2N gcc-2.2.1/config/xm-next.h gcc-2.2.2/config/xm-next.h *** gcc-2.2.1/config/xm-next.h Fri May 29 01:38:39 1992 --- gcc-2.2.2/config/xm-next.h Sun Jun 14 16:32:50 1992 *************** *** 4,8 **** #define OBSTACK_CHUNK_SIZE (getpagesize ()) - - /* Avoid warnings when `wait' is passed an `int *'. */ - #define wait(ARG) wait ((union wait *) (ARG)) --- 4,5 ---- diff -rc2N gcc-2.2.1/configure gcc-2.2.2/configure *** gcc-2.2.1/configure Tue Jun 9 14:37:15 1992 --- gcc-2.2.2/configure Thu Jun 11 15:46:42 1992 *************** *** 41,44 **** --- 41,46 ---- fi + host= + remove=rm hard_link=ln *************** *** 159,162 **** --- 161,168 ---- fi + host_xm_file= + host_xmake_file= + host_broken_install= + # Decode the host machine, then the target machine. # For the host machine, we save the xm_file variable as host_xm_file; *************** *** 177,180 **** --- 183,188 ---- # Set this to force installation and use of collect2. use_collect2= + # Set this to force use of install.sh. + broken_install= case $machine in *************** *** 823,827 **** case x$gnu_ld in xyes) ! unset use_collect2 ;; esac --- 831,835 ---- case x$gnu_ld in xyes) ! use_collect2= ;; esac diff -rc2N gcc-2.2.1/dbxout.c gcc-2.2.2/dbxout.c *** gcc-2.2.1/dbxout.c Fri May 15 17:00:21 1992 --- gcc-2.2.2/dbxout.c Wed Jun 10 16:05:23 1992 *************** *** 1372,1375 **** --- 1372,1402 ---- tag_needed = 0; + /* Handle the case of a C++ structure or union + where the TYPE_NAME is a TYPE_DECL + which gives both a typedef name and a tag. */ + /* dbx requires the tag first and the typedef second. + ??? there is a bug here. It generates spurious tags + for C code. */ + if ((TREE_CODE (type) == RECORD_TYPE + || TREE_CODE (type) == UNION_TYPE) + && TYPE_NAME (type) == decl + && !(use_gdb_dbx_extensions && have_used_extensions) + && !TREE_ASM_WRITTEN (TYPE_NAME (type))) + { + tree name = TYPE_NAME (type); + if (TREE_CODE (name) == TYPE_DECL) + name = DECL_NAME (name); + + current_sym_code = DBX_TYPE_DECL_STABS_CODE; + current_sym_value = 0; + current_sym_addr = 0; + current_sym_nchars = 2 + IDENTIFIER_LENGTH (name); + + fprintf (asmfile, "%s \"%s:T", ASM_STABS_OP, + IDENTIFIER_POINTER (name)); + dbxout_type (type, 1, 0); + dbxout_finish_symbol (0); + } + /* Output typedef name. */ fprintf (asmfile, "%s \"%s:", ASM_STABS_OP, *************** *** 1396,1401 **** --- 1423,1430 ---- TREE_ASM_WRITTEN (TYPE_NAME (type)) = 1; } + #if 0 /* Now we generate the tag for this case up above. */ else tag_needed = 1; + #endif } /* #endif */ diff -rc2N gcc-2.2.1/fixincludes gcc-2.2.2/fixincludes *** gcc-2.2.1/fixincludes Thu May 28 18:48:16 1992 --- gcc-2.2.2/fixincludes Thu Jun 11 19:15:09 1992 *************** *** 147,151 **** /#[a-z]*if.*[ (]pyr/ s/\([^_]\)pyr/\1__pyr__/g /#[a-z]*if.*[ (]is68k/ s/\([^_]\)is68k/\1__is68k__/g ! /#define.NULL[ ]/ i\ #undef NULL ' $2/$file > $2/$file.sed --- 147,151 ---- /#[a-z]*if.*[ (]pyr/ s/\([^_]\)pyr/\1__pyr__/g /#[a-z]*if.*[ (]is68k/ s/\([^_]\)is68k/\1__is68k__/g ! /^#define.NULL[ ]/ i\ #undef NULL ' $2/$file > $2/$file.sed *************** *** 238,242 **** echo Fixing $file ex ${LIB}/$file < ${LIB}/${file}.sed rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file diff -rc2N gcc-2.2.1/gcc.c gcc-2.2.2/gcc.c *** gcc-2.2.1/gcc.c Sun Jun 7 23:09:12 1992 --- gcc-2.2.2/gcc.c Wed Jun 10 17:23:54 1992 *************** *** 2058,2064 **** + strlen (spec_machine) + 3); strcpy (temp, gcc_exec_prefix); - strcat (temp, spec_version); - strcat (temp, "/"); strcat (temp, spec_machine); strcat (temp, "/"); gcc_exec_prefix = temp; --- 2058,2064 ---- + strlen (spec_machine) + 3); strcpy (temp, gcc_exec_prefix); strcat (temp, spec_machine); + strcat (temp, "/"); + strcat (temp, spec_version); strcat (temp, "/"); gcc_exec_prefix = temp; diff -rc2N gcc-2.2.1/gcc.texi gcc-2.2.2/gcc.texi *** gcc-2.2.1/gcc.texi Sat Jun 6 20:55:41 1992 --- gcc-2.2.2/gcc.texi Sun Jun 14 17:46:00 1992 *************** *** 974,977 **** --- 974,995 ---- @item + Another assembler problem on the HP PA results in an error message like + this while compiling part of @file{libgcc2.a}: + + @example + as: /usr/tmp/cca08196.s @@line#30 [err#1060] + Argument 1 or 3 in FARG upper + - lookahead = RTNVAL=GR + @end example + + This happens because HP changed the assembler syntax after system + release 8.02. GNU CC assumes the newer syntax; if your assembler wants + the older syntax, comment out this line in the file @file{pa1-hpux.h}: + + @example + #define HP_FP_ARG_DESCRIPTOR_REVERSED + @end example + + @item Some versions of the Pyramid C compiler are reported to be unable to compile GNU CC. You must use an older version of GNU CC for diff -rc2N gcc-2.2.1/gstddef.h gcc-2.2.2/gstddef.h *** gcc-2.2.1/gstddef.h Sun Mar 29 21:25:19 1992 --- gcc-2.2.2/gstddef.h Thu Jun 11 15:08:00 1992 *************** *** 127,131 **** #endif #endif ! #undef __need_wchat_t #endif /* __sys_stdtypes_h */ --- 127,131 ---- #endif #endif ! #undef __need_wchar_t #endif /* __sys_stdtypes_h */ diff -rc2N gcc-2.2.1/install.texi gcc-2.2.2/install.texi *** gcc-2.2.1/install.texi Mon Jun 8 18:37:48 1992 --- gcc-2.2.2/install.texi Sun Jun 14 16:14:12 1992 *************** *** 37,43 **** @item - On a Sequent system, go to the Berkeley universe. - - @item On a System V release 4 system, make sure @file{/usr/bin} precedes @file{/usr/ucb} in @code{PATH}. The @code{cc} command in --- 37,40 ---- *************** *** 228,231 **** --- 225,233 ---- warnings. They do not necessarily indicate that anything is wrong. + @item i386-sequent + Go to the Berkeley universe before compiling. In addition, you probably + need to create a file named @file{string.h} containing just one line: + @samp{#include }. + @item m68000-att AT&T 3b1, a.k.a. 7300 PC. Special procedures are needed to compile GNU *************** *** 296,299 **** --- 298,306 ---- and @code{malloc}; you must get the compiled versions of these from GNU Emacs. + + @item ns32k-sequent + Go to the Berkeley universe before compiling. In addition, you probably + need to create a file named @file{string.h} containing just one line: + @samp{#include }. @item ns32k-utek diff -rc2N gcc-2.2.1/protoize.c gcc-2.2.2/protoize.c *** gcc-2.2.1/protoize.c Sat May 23 16:42:13 1992 --- gcc-2.2.2/protoize.c Sun Jun 14 17:11:55 1992 *************** *** 68,74 **** #include #endif - #if ! defined (USG) || defined (SVR4) - #include - #endif #include #include "gvarargs.h" --- 68,71 ---- *************** *** 2042,2060 **** if (wait (&wait_status) == -1) { ! fprintf (stderr, "%s: error: wait for process failed: %s\n", pname, sys_errlist[errno]); return 0; } ! if (!WIFEXITED (wait_status)) ! { ! fprintf (stderr, "%s: error: subprocess %ld did not exit\n", ! pname, (long) child_pid); ! kill (child_pid, 9); ! return 0; ! } ! if (WEXITSTATUS (wait_status) != 0) { ! fprintf (stderr, "%s: error: %s: compilation failed\n", ! pname, base_filename); return 0; } --- 2039,2056 ---- if (wait (&wait_status) == -1) { ! fprintf (stderr, "%s: wait failed: %s\n", pname, sys_errlist[errno]); return 0; } ! if ((wait_status & 0x7F) != 0) ! { ! fprintf (stderr, "%s: subprocess got fatal signal %d", ! pname, (wait_status & 0x7F)); ! return 0; ! } ! if (((wait_status & 0xFF00) >> 8) != 0) { ! fprintf (stderr, "%s: %s exited with status %d\n", ! pname, base_filename, ((wait_status & 0xFF00) >> 8)); return 0; } diff -rc2N gcc-2.2.1/va-sparc.h gcc-2.2.2/va-sparc.h *** gcc-2.2.1/va-sparc.h Mon Jun 1 15:08:29 1992 --- gcc-2.2.2/va-sparc.h Sat Jun 13 02:51:07 1992 *************** *** 55,58 **** --- 55,64 ---- ? ((pvar) += __va_rounded_size (TYPE *), \ **(TYPE **) ((pvar) - __va_rounded_size (TYPE *))) \ + : __va_rounded_size (TYPE) == 8 \ + ? ({ union {TYPE d; int i[2];} u; \ + u.i[0] = ((int *) (pvar))[0]; \ + u.i[1] = ((int *) (pvar))[1]; \ + (pvar) += 8; \ + u.d; }) \ : ((pvar) += __va_rounded_size (TYPE), \ *((TYPE *) ((pvar) - __va_rounded_size (TYPE)))));}) diff -rc2N gcc-2.2.1/version.c gcc-2.2.2/version.c *** gcc-2.2.1/version.c Tue Jun 9 15:56:49 1992 --- gcc-2.2.2/version.c Sun Jun 14 17:39:10 1992 *************** *** 1 **** ! char *version_string = "2.2.1"; --- 1 ---- ! char *version_string = "2.2.2";