From: Jun Sun <jsun@mvista.com>
To: Andreas Jaeger <aj@suse.de>
Cc: "Kevin D. Kissell" <kevink@mips.com>,
Florian Lohoff <flo@rfc822.org>,
linux-mips@oss.sgi.com
Subject: Re: [RESUME] fpu emulator
Date: Fri, 09 Feb 2001 11:30:57 -0800 [thread overview]
Message-ID: <3A844571.7B5F8F61@mvista.com> (raw)
In-Reply-To: hoae7wjjvy.fsf@gee.suse.de
[-- Attachment #1: Type: text/plain, Size: 1627 bytes --]
Andreas Jaeger wrote:
>
> Jun Sun <jsun@mvista.com> writes:
>
> > Andreas Jaeger wrote:
> > >
> >
> > > > saves/restores the FP registers in setjmp/longjmp, the
> > >
> > > Any ideas how this can be done?
> > >
> > > > model of "simply sending SIGILL/SIGFPE" will result
> > > > in *all* processes being terminated with extreme prejudice,
> > > > starting with init!
> > >
> >
> > There is a patch for glibc2.0.7, which I think was done by Jay Carlson. It
> > basically works for glibc2.0.6 as well. See the one for glibc2.0.6 attached
> > below.
> >
> > I think the patch is not "clean", in the sense that you only want to apply it
> > if you want to configure with "--without-fp". Otherwise the patch will break
> > other configurations.
> >
> > Jun--- glibc-2.0.6/sysdeps/mips/__longjmp.c.orig-rpm Sat Sep 11 00:01:44 1999
> > +++ glibc-2.0.6/sysdeps/mips/__longjmp.c Sat Sep 11 00:02:36 1999
> > @@ -35,6 +35,7 @@
> > along the way. */
> > register int val asm ("a1");
> >
> > +#ifdef __HAVE_FPU__
>
> I looked through the whole of glibc and GCC and __HAVE_FPU__ is nowhere
> defined for MIPS. __HAVE_FPU__ is defined for m68k in GCC but that's
> the only platform.
>
You are right - it is not defined in glibc. Instead it is defined in egcs.
For this particular build, I need to apply the mips patch for egcs 1.0.3a,
which supplies __HAVE_FPU__. You can find it somewhere on oss.sgi site.
There is an additional patch for softfloat which makes __HAVE_FPU__
conditional. See the attachement.
> Therefore I don't think the patch makes any sense at all,
Therefore, it does make sense. :-)
Jun
[-- Attachment #2: egcs-1.0.3a-mips-softfloat.patch --]
[-- Type: text/plain, Size: 1675 bytes --]
--- egcs-1.0.3a/gcc/config/mips/t-linux.orig Mon Sep 6 21:38:16 1999
+++ egcs-1.0.3a/gcc/config/mips/t-linux Wed Sep 8 08:43:58 1999
@@ -9,8 +9,28 @@
LIBGCC1 =
CROSS_LIBGCC1 =
-MULTILIB_OPTIONS= EL/EB
-MULTILIB_DIRNAMES= el eb
+# These are really part of libgcc1, but this will cause them to be
+# built correctly, so... [taken from t-sparclite]
+LIB2FUNCS_EXTRA = fp-bit.c dp-bit.c
+
+dp-bit.c: $(srcdir)/config/fp-bit.c
+ echo '#ifdef __MIPSEL__' > dp-bit.c
+ echo '#define FLOAT_BIT_ORDER_MISMATCH' >> dp-bit.c
+ echo '#endif' >> dp-bit.c
+ echo '#define US_SOFTWARE_GOFAST' >> dp-bit.c
+ cat $(srcdir)/config/fp-bit.c >> dp-bit.c
+
+fp-bit.c: $(srcdir)/config/fp-bit.c
+ echo '#define FLOAT' > fp-bit.c
+ echo '#ifdef __MIPSEL__' >> fp-bit.c
+ echo '#define FLOAT_BIT_ORDER_MISMATCH' >> fp-bit.c
+ echo '#endif' >> fp-bit.c
+ echo '#define US_SOFTWARE_GOFAST' >> fp-bit.c
+ cat $(srcdir)/config/fp-bit.c >> fp-bit.c
+
+
+MULTILIB_OPTIONS= EL/EB msoft-float
+MULTILIB_DIRNAMES= el eb soft-float
MULTILIB_MATCHES=
MULTILIB_EXCEPTIONS=
--- egcs-1.0.3a/gcc/config/mips/linux.h.orig Mon Sep 6 21:38:16 1999
+++ egcs-1.0.3a/gcc/config/mips/linux.h Wed Sep 8 08:43:40 1999
@@ -82,7 +82,7 @@
%{!mabi*: -U__mips64} \
%{fno-PIC:-U__PIC__ -U__pic__} %{fno-pic:-U__PIC__ -U__pic__} \
%{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} \
-%{-D__HAVE_FPU__ } \
+%{!msoft-float: -D__HAVE_FPU__ } \
%{posix:-D_POSIX_SOURCE} \
%{pthread:-D_REENTRANT}"
@@ -756,3 +756,7 @@
#undef MAX_WCHAR_TYPE_SIZE
#define MAX_WCHAR_TYPE_SIZE MAX_LONG_TYPE_SIZE
+
+/* US Software GOFAST library support. */
+#include "gofast.h"
+#define INIT_TARGET_OPTABS INIT_GOFAST_OPTABS
next prev parent reply other threads:[~2001-02-09 19:32 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-02-08 11:20 [RESUME] fpu emulator Florian Lohoff
2001-02-08 11:43 ` Kevin D. Kissell
2001-02-08 11:43 ` Kevin D. Kissell
2001-02-08 12:06 ` Andreas Jaeger
2001-02-08 12:06 ` Andreas Jaeger
2001-02-08 20:42 ` Jun Sun
2001-02-09 9:17 ` Andreas Jaeger
2001-02-09 19:30 ` Jun Sun [this message]
2001-02-09 20:31 ` Andreas Jaeger
2001-02-09 21:09 ` Jun Sun
2001-02-08 12:33 ` Florian Lohoff
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=3A844571.7B5F8F61@mvista.com \
--to=jsun@mvista.com \
--cc=aj@suse.de \
--cc=flo@rfc822.org \
--cc=kevink@mips.com \
--cc=linux-mips@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.