Linux MIPS Architecture development
 help / color / mirror / Atom feed
From: "Jay Carlson" <nop@nop.com>
To: "Mike Klar" <mfklar@ponymail.com>, "Ralf Baechle" <ralf@oss.sgi.com>
Cc: "Jay Carlson" <nop@place.org>, <linux-mips@fnet.fr>,
	<linux-mips@oss.sgi.com>
Subject: RE: stable binutils, gcc, glibc ...
Date: Mon, 16 Oct 2000 07:26:19 -0400	[thread overview]
Message-ID: <KEEOIBGCMINLAHMMNDJNOECBCAAA.nop@nop.com> (raw)
In-Reply-To: <NDBBIDGAOKMNJNDAHDDMAENPCMAA.mfklar@ponymail.com>

OK, might as well get this into the list archives......

Mike Klar writes:

> Ralf Baechle wrote:
>
> > Have the other tools - in particular binutils and gcc actually
> > been modified
> > except maybe changing defaults?
>
> binutils we use unmodified from the cross- SRPM on ftp://oss.sgi.com.

Right.  Exact version of 2.8.1 was: cross-binutils-2.8.1-1.src.rpm

> egcs-1.0.3a did require a small patch, which Jay has at:
> ftp://ftp.place.org/pub/nop/linuxce/egcs-1.0.3a-mips-softfloat.patch
> I've reworked it slightly to patch cleanly against the latest Linux-MIPS
> egcs-1.0.3a release, but the server that's on is a bit whacked at
> the moment
> (the patch conflict was pretty trivial, though...).

The patch does three things:

1) turns on multilib support for -msoft-float.  (This makes gcc install two
versions of libgcc.a etc: one in the lib/libgcc.a, one in
lib/softfloat/libgcc.a.)

2) asks the build process to include the actual soft float implementation
(fp-bit.c) in libgcc.a.  Note that this is probably not the optimal place
for it in the long run, because these functions should be shared.  I'm
pretty sure glibc 2.2 has them there, which isn't so bad a spot.

3) chooses the soft float API (function names, arg order).  Because every
other MIPS configuration included with gcc ignores the native GNU naming
convention in favor of the GOFAST API, I chose GOFAST.  I figured that the
sins of GOFAST's namespace pollution could be overlooked because Cygnus
would be more likely to fix mips softfloat problems that affected paying
embedded customers.   glibc's choice of native GNU naming convention makes
me regret this.

I think there will have to be a flag day eventually  because of 2 and/or 3.
Luckily, we can rebuild all the binaries we have without TOO much pain.  The
issue can be put off until we're ready to start using glibc 2.2, which may
be a while.

Does anyone know if gcc 2.97 can build glibc 2.0.x?

All of this is making me reconsider my request to install softfloat multilib
into gcc 2.97.  I don't understand how it will interact with glibc 2.2 yet.

> We actually did not change the compiler default from hard-float,

That's right.  For linux-vr, CC="mipsel-linux-gcc -msoft-float".

For the record, the glibc patch does two things:

1) longjmp/setjmp will only save FPU registers if __HAVE_FPU__ is defined.
In unmodified egcs 1.0.3a, "%{!msoft-float: -D__HAVE_FPU__ }".

2) conditionalizes _FPU_GETCW and _FPU_SETCW in fpu_control.h.  If I recall
correctly, _FPU_SETCW() is called early in program startup, even for
programs that will never touch the FPU.  This of course causes instant death
unless the kernel can emulate "ctc1 foo,$31"....

Let me know if this is boring you decstation folks.  By the way, anybody in
the Boston area want a free 5000/120?

Jay

WARNING: multiple messages have this Message-ID (diff)
From: "Jay Carlson" <nop@nop.com>
To: Mike Klar <mfklar@ponymail.com>, Ralf Baechle <ralf@oss.sgi.com>
Cc: Jay Carlson <nop@place.org>, linux-mips@fnet.fr, linux-mips@oss.sgi.com
Subject: RE: stable binutils, gcc, glibc ...
Date: Mon, 16 Oct 2000 07:26:19 -0400	[thread overview]
Message-ID: <KEEOIBGCMINLAHMMNDJNOECBCAAA.nop@nop.com> (raw)
Message-ID: <20001016112619.GqQq66CX2gQfNsqEDyOgZt1hhhwk-2bmS4ItYEO9eS8@z> (raw)
In-Reply-To: <NDBBIDGAOKMNJNDAHDDMAENPCMAA.mfklar@ponymail.com>

OK, might as well get this into the list archives......

Mike Klar writes:

> Ralf Baechle wrote:
>
> > Have the other tools - in particular binutils and gcc actually
> > been modified
> > except maybe changing defaults?
>
> binutils we use unmodified from the cross- SRPM on ftp://oss.sgi.com.

Right.  Exact version of 2.8.1 was: cross-binutils-2.8.1-1.src.rpm

> egcs-1.0.3a did require a small patch, which Jay has at:
> ftp://ftp.place.org/pub/nop/linuxce/egcs-1.0.3a-mips-softfloat.patch
> I've reworked it slightly to patch cleanly against the latest Linux-MIPS
> egcs-1.0.3a release, but the server that's on is a bit whacked at
> the moment
> (the patch conflict was pretty trivial, though...).

The patch does three things:

1) turns on multilib support for -msoft-float.  (This makes gcc install two
versions of libgcc.a etc: one in the lib/libgcc.a, one in
lib/softfloat/libgcc.a.)

2) asks the build process to include the actual soft float implementation
(fp-bit.c) in libgcc.a.  Note that this is probably not the optimal place
for it in the long run, because these functions should be shared.  I'm
pretty sure glibc 2.2 has them there, which isn't so bad a spot.

3) chooses the soft float API (function names, arg order).  Because every
other MIPS configuration included with gcc ignores the native GNU naming
convention in favor of the GOFAST API, I chose GOFAST.  I figured that the
sins of GOFAST's namespace pollution could be overlooked because Cygnus
would be more likely to fix mips softfloat problems that affected paying
embedded customers.   glibc's choice of native GNU naming convention makes
me regret this.

I think there will have to be a flag day eventually  because of 2 and/or 3.
Luckily, we can rebuild all the binaries we have without TOO much pain.  The
issue can be put off until we're ready to start using glibc 2.2, which may
be a while.

Does anyone know if gcc 2.97 can build glibc 2.0.x?

All of this is making me reconsider my request to install softfloat multilib
into gcc 2.97.  I don't understand how it will interact with glibc 2.2 yet.

> We actually did not change the compiler default from hard-float,

That's right.  For linux-vr, CC="mipsel-linux-gcc -msoft-float".

For the record, the glibc patch does two things:

1) longjmp/setjmp will only save FPU registers if __HAVE_FPU__ is defined.
In unmodified egcs 1.0.3a, "%{!msoft-float: -D__HAVE_FPU__ }".

2) conditionalizes _FPU_GETCW and _FPU_SETCW in fpu_control.h.  If I recall
correctly, _FPU_SETCW() is called early in program startup, even for
programs that will never touch the FPU.  This of course causes instant death
unless the kernel can emulate "ctc1 foo,$31"....

Let me know if this is boring you decstation folks.  By the way, anybody in
the Boston area want a free 5000/120?

Jay

  parent reply	other threads:[~2000-10-16 11:24 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-10-14  5:13 stable binutils, gcc, glibc Jun Sun
2000-10-14  3:55 ` Ralf Baechle
2000-10-14  4:21   ` Ralf Baechle
2000-10-14 10:57   ` Florian Lohoff
2000-10-14 14:51   ` Jay Carlson
2000-10-14 14:51     ` Jay Carlson
2000-10-14 15:09     ` Ralf Baechle
2000-10-14 16:11       ` Jay Carlson
2000-10-14 16:11         ` Jay Carlson
2000-10-14 16:29         ` Bradley D. LaRonde
2000-10-14 16:29           ` Bradley D. LaRonde
2000-10-16  0:35           ` Ralf Baechle
2000-10-16  1:33             ` Mike Klar
2000-10-16  1:33               ` Mike Klar
2000-10-16 11:26               ` Jay Carlson [this message]
2000-10-16 11:26                 ` Jay Carlson
2000-10-16 11:30                 ` Ralf Baechle
2000-10-16 12:00                 ` Ralf Baechle
2000-10-18  1:59                   ` Jay Carlson
2000-10-18  1:59                     ` Jay Carlson
2000-10-18 20:31                     ` Ralf Baechle
2000-10-14 16:11       ` Jay Carlson
2000-10-14 16:11         ` Jay Carlson
2000-10-14 16:12         ` Ralf Baechle
2000-10-14 16:22           ` Bradley D. LaRonde
2000-10-14 16:22             ` Bradley D. LaRonde
2000-10-14 23:47           ` Keith Owens
2000-10-16  1:07             ` Ralf Baechle
2000-10-16  7:00               ` Alan Cox
2000-10-16  7:00                 ` Alan Cox
2000-10-14 10:55 ` Florian Lohoff
2000-10-14 12:41   ` Ralf Baechle
     [not found]   ` <Pine.LNX.4.21.0010140730280.17430-100000@spawn.hockeyfiend.com>
2000-10-14 14:25     ` Ralf Baechle
2000-10-14 17:54       ` Florian Lohoff
2000-10-16 15:41 ` Maciej W. Rozycki
2000-10-18  4:04 ` The initial results (Re: " Jun Sun
2000-10-18  1:33   ` Florian Lohoff
2000-10-18  9:20     ` Jun Sun
2000-10-18  2:25       ` nick
2000-10-18  9:18       ` Florian Lohoff
2000-10-18 12:27         ` Ralf Baechle
2000-10-18  1:57   ` Ralf Baechle
2000-10-18 12:30     ` Florian Lohoff
2000-10-18 22:37       ` Ralf Baechle
2000-10-18 11:42   ` Geert Uytterhoeven
2000-10-18 17:15     ` Jun Sun
2000-10-20 14:55       ` Geert Uytterhoeven
2000-11-06 11:43   ` Jay Carlson
2000-11-06 11:43     ` Jay Carlson
2000-10-20 11:09 ` Andreas Jaeger
2000-10-20 12:03   ` Jay Carlson
2000-10-20 12:03     ` Jay Carlson
2000-10-21  1:24     ` Ralf Baechle

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=KEEOIBGCMINLAHMMNDJNOECBCAAA.nop@nop.com \
    --to=nop@nop.com \
    --cc=linux-mips@fnet.fr \
    --cc=linux-mips@oss.sgi.com \
    --cc=mfklar@ponymail.com \
    --cc=nop@place.org \
    --cc=ralf@oss.sgi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox