This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: 3.4 PATCH: Fix minor IRIX 5 problems
- From: Richard Sandiford <rsandifo at redhat dot com>
- To: Rainer Orth <ro at TechFak dot Uni-Bielefeld dot DE>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: 16 Sep 2003 22:44:51 +0100
- Subject: Re: 3.4 PATCH: Fix minor IRIX 5 problems
- References: <16231.31289.24832.908893@xayide.TechFak.Uni-Bielefeld.DE>
Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> writes:
> * The fortran failures seem to be due to a bug in the native as:
>
> /usr/bin/../lib/ld:
> assertion failed: word < (MAX_GOT_SIZE/4) at dynutil.c line 885
> collect2: ld returned 1 exit status
>
> This may be related to a similar bug in the IRIX 6 o32 as:
>
> ld: FATAL 2 : Internal: at ../../ld/multigot.c lgot_local_got_offset() seg_ndx exceeds per_seg_lgot_table
> ld: INFO 152: Output file removed because of error.
>
> I've reported the latter to SGI, but have received no resolution yet.
> For the mips-sgi-irix6o32 configuration, the problem vanishes with gas,
> so it may be possible to work around the problem in g77, one it is
> understood what the errors mean.
FWIW, this seems to be caused by having labels at the end of a section.
A reduced testcase is:
cat <<EOF >foo.s
.data
foo:
.text
.globl main
main:
la \$4,foo
move \$2,\$0
jr \$31
EOF
cc -32 foo.s
...which gives me the same multigot error. We're generating these sorts
of labels for the call to s_stop().
Like you say, it works for gas, so I wasn't too keen on hacking around
the problem.
Richard