http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49606

rsand...@gcc.gnu.org <rsandifo at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |RESOLVED
         Resolution|                            |FIXED

--- Comment #6 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> 
2011-09-05 19:47:38 UTC ---
Thanks for the feedback.

(In reply to comment #4)
> > So do you actually have a system that uses this ABI
> > (o64+mlong64)?
> 
> Actually, no. I was trying to cross-compile our own OS for mips64 and the
> o64+mlong64 combination was the first one I have tried. The 32-bit file format
> might or might not be eventually a problem if the compilation works (I can
> imagine that it might actually work fine at least for user space binaries). 
> But
> the n64 ABI seems definitively to be a better choice.

I suppose the problem for userspace stuff is that pointers
will be 64 bits but GOT entries only 32 bits.

However, it seems that the non-abicalls (kernel/bare-metal)
form really is supported, so the error needs to be restricted
to abicalls.

> > If so, could you give a few more details?
> > TBH, my instinctive reaction is that this is a missing
> > diagnostic bug, and that we should refuse to compile
> > -mabi=o64 -mlong64.
> 
> Well, I do not insist that this bug should be fixed only by making the
> compilation work. Your suggestion that this combination of options is not very
> reasonable and should be refused is sound.
> 
> Either way, the compiler should not end with an internal error.

Agreed.  It's definitely a bug whichever way you cut it.

I've now applied a fix to report an error for this case.
I don't think it's appropriate for the release branches though.

Reply via email to