Re: soft-float defines in mips-linux gcc config

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 3 Sep 2002, Daniel Jacobowitz wrote:

> On Tue, Sep 03, 2002 at 08:26:37AM -0400, Jay Carlson wrote:
> > Right now there is a small bug in how mips-linux configures gcc for
> > softfloat.
> >
> > In gcc/config/mips/t-linux, we set up libgcc to include the soft
> > floating point code, using the GNU names, like __addsi3.  But because
> > mips/linux.h includes mips/ecoff.h, gcc produces calls to the GOFAST
> > style names (like dpmul, very namespace-contaminating.)
> >
> > mips/netbsd.h cleans up after mips/elf.h by doing:
> >
> > #undef US_SOFTWARE_GOFAST
> > #undef INIT_SUBTARGET_OPTABS
> > #define INIT_SUBTARGET_OPTABS
> >
> > which would fix the problem for mips/linux.h as well.
>
> When commenting on GCC issues, please say which version you're talking
> about -

It was 3.2; was in a hurry to get this written down before I commuted
and forgot about it.

> I'm pretty sure this is fixed in 3.2,

Scene: Jay, the cartoon character, chasing cartoon bug.  Bug runs off
cliff, disappears from thin air.  Jay keeps on running, until he
notices the bug's gone, and he's standing on thin air.  Oops.

After I actually peered at the output of cc1 from 3.2, I agree, you're
right, the bug is fixed.  I was so used to forward-porting this patch
from revision to revision that I applied this without even checking
whether it was necessary.

What I don't understand is *how* the bug got fixed.  It looks like the
OPTABS should still set us up for the GOFAST library.  Oh well, can't
argue with working code.

I wish the "-fdata-sections doesn't apply to C++ .bss" bug would get
fixed while I'm not looking too...although that one might take some
arguing about for people who are stuck on truly ancient binutils.

Jay



[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux