irix bootstrap dies in builtins.c

Geoff Keating geoffk@geoffk.org
Tue Apr 3 00:02:00 GMT 2001


> Date: Mon, 2 Apr 2001 16:21:39 -0700
> From: Richard Henderson <rth@redhat.com>

> On Mon, Apr 02, 2001 at 03:14:22PM -0700, Geoff Keating wrote:
> > ... no point, until x86-linux bootstraps again.  It hasn't
> > bootstrapped since 2001-03-28T00:55:01Z.
> 
> : xgcc: Internal error: Segmentation fault (program as)
> : Please submit a full bug report.
> 
> You need to update your x86 assembler to that from the 
> 2.11 branch.  It's either got to be old enough that we
> don't detect support for .uleb128, or it's got to be 
> new enough to actually work.

I didn't like this solution, because one of the assemblers affected
was shipped in hundreds of thousands of copies in Red Hat Linux 7, and
I'm sure we'd get zillions of bug reports that "GCC is broken because
it doesn't compile".  Instead, I applied this patch.  (Tested on
x86-linux, specifically Red Hat Linux 7.)

-- 
- Geoffrey Keating <geoffk@geoffk.org>

===File ~/patches/cygnus/gcc-rh7gasulebbug.patch============
2001-04-02  Geoffrey Keating  <geoffk@redhat.com>

	* configure.in (gcc_cv_as_leb128): Correct name of cache variable.
	Require at least 2.11 in the version test.  Specifically check
	for and reject GAS version 2.10.90.
	* configure: regenerate.

Index: gcc/configure.in
===================================================================
RCS file: /cvs/gcc/gcc/gcc/configure.in,v
retrieving revision 1.506
diff -p -u -p -r1.506 configure.in
--- configure.in	2001/04/02 15:20:51	1.506
+++ configure.in	2001/04/03 06:56:52
@@ -1303,9 +1303,9 @@ fi
 AC_MSG_RESULT($gcc_cv_as_hidden)
 
 AC_MSG_CHECKING(assembler leb128 support)
-gcc_cv_as_hidden=no
+gcc_cv_as_leb128=no
 if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
-  if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 10 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
+  if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 11 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
     gcc_cv_as_leb128="yes"
   fi
 elif test x$gcc_cv_as != x; then
@@ -1319,7 +1319,13 @@ L1:
 L2:
 EOF
 	if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
-		gcc_cv_as_leb128="yes"
+		# GAS versions numbered 2.10.90 do not support uleb128, despite
+		# appearing to.
+		if $gcc_cv_as --version | fgrep 2.10.90 > /dev/null; then
+			:
+		else
+			gcc_cv_as_leb128="yes"
+		fi
 	fi
 	rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
 fi
============================================================



More information about the Gcc-patches mailing list