From: Randolph Chung <randolph@tausq.org>
To: parisc-linux <parisc-linux@lists.parisc-linux.org>
Subject: [parisc-linux] [Fwd: [patch/hppa] Floating point exception handling patch]
Date: Mon, 16 Jan 2006 07:38:36 +0800 [thread overview]
Message-ID: <43CADCFC.60802@tausq.org> (raw)
[-- Attachment #1: Type: text/plain, Size: 755 bytes --]
FYI - James asked me to forward this to the parisc-linux m-l too.
randolph
-------- Original Message --------
Subject: [patch/hppa] Floating point exception handling patch
Date: Sun, 15 Jan 2006 16:44:50 +0800
From: Randolph Chung <randolph@tausq.org>
To: submit@bugs.debian.org
CC: 342545@bugs.debian.org, debian-hppa@lists.debian.org
Package: glibc
Version: 2.3.5-11
Severity: important
Tags: patch
The attached patch fixes a problem with floating point exception
handling on hppa. This affects packages that use feholdexcept and
fesetenv, such as uic from QT. This patch fixes #342545. Carlos is on
vacation now - I'll ask him to merge this upstream when he returns,
meanwhile perhaps somebody can roll a new glibc package for debian?
randolph
[-- Attachment #2: glibc235-hppa-fpu.dpatch --]
[-- Type: text/plain, Size: 3067 bytes --]
#! /bin/sh -e
# DP: Description: hppa floating point exception handling fix
# DP: Related bugs: Debian #342545
# DP: Dpatch author: Randolph Chung <tausq@debian.org>
# DP: Patch author: Randolph Chung <tausq@debian.org>
# DP: Upstream status: Pending
# DP: Status Details: to be merged by Carlos
# DP: Date: Sun, 15 Jan 2006
PATCHLEVEL=1
if [ $# -ne 2 ]; then
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1
fi
case "$1" in
-patch) patch -d "$2" -f --no-backup-if-mismatch -p$PATCHLEVEL < $0;;
-unpatch) patch -d "$2" -f --no-backup-if-mismatch -R -p$PATCHLEVEL < $0;;
*)
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1
esac
exit 0
# append the patch here and adjust the -p? flag in the patch calls.
diff -uNr glibc-2.3.5/sysdeps/hppa/fpu.orig/fegetenv.c glibc-2.3.5/sysdeps/hppa/fpu/fegetenv.c
--- glibc-2.3.5/sysdeps/hppa/fpu.orig/fegetenv.c 2006-01-14 10:17:19.000000000 -0800
+++ glibc-2.3.5/sysdeps/hppa/fpu/fegetenv.c 2006-01-14 10:19:08.000000000 -0800
@@ -27,10 +27,7 @@
unsigned long long buf[4], *bufptr = buf;
__asm__ (
- "fstd,ma %%fr0,8(%1)\n"
- "fstd,ma %%fr1,8(%1)\n"
- "fstd,ma %%fr2,8(%1)\n"
- "fstd %%fr3,0(%1)\n"
+ "fstd %%fr0,0(%1)\n"
: "=m" (buf), "+r" (bufptr));
memcpy (envp, buf, sizeof (*envp));
return 0;
diff -uNr glibc-2.3.5/sysdeps/hppa/fpu.orig/feholdexcpt.c glibc-2.3.5/sysdeps/hppa/fpu/feholdexcpt.c
--- glibc-2.3.5/sysdeps/hppa/fpu.orig/feholdexcpt.c 2006-01-14 10:17:19.000000000 -0800
+++ glibc-2.3.5/sysdeps/hppa/fpu/feholdexcpt.c 2006-01-14 10:20:21.000000000 -0800
@@ -30,10 +30,7 @@
/* Store the environment. */
bufptr = clear.buf;
__asm__ (
- "fstd,ma %%fr0,8(%1)\n"
- "fstd,ma %%fr1,8(%1)\n"
- "fstd,ma %%fr2,8(%1)\n"
- "fstd %%fr3,0(%1)\n"
+ "fstd %%fr0,0(%1)\n"
: "=m" (clear), "+r" (bufptr));
memcpy (envp, &clear.env, sizeof (fenv_t));
@@ -47,10 +44,7 @@
/* Load the new environment. */
bufptr = clear.buf;
__asm__ (
- "fldd,ma 8(%0),%%fr0\n"
- "fldd,ma 8(%0),%%fr1\n"
- "fldd,ma 8(%0),%%fr2\n"
- "fldd 0(%0),%%fr3\n"
+ "fldd 0(%0),%%fr0\n"
: : "r" (bufptr), "m" (clear));
return 0;
diff -uNr glibc-2.3.5/sysdeps/hppa/fpu.orig/fesetenv.c glibc-2.3.5/sysdeps/hppa/fpu/fesetenv.c
--- glibc-2.3.5/sysdeps/hppa/fpu.orig/fesetenv.c 2006-01-14 10:17:19.000000000 -0800
+++ glibc-2.3.5/sysdeps/hppa/fpu/fesetenv.c 2006-01-14 10:20:44.000000000 -0800
@@ -34,10 +34,7 @@
we want to use from the environment specified by the parameter. */
bufptr = temp.buf;
__asm__ (
- "fstd,ma %%fr0,8(%1)\n"
- "fstd,ma %%fr1,8(%1)\n"
- "fstd,ma %%fr2,8(%1)\n"
- "fstd %%fr3,0(%1)\n"
+ "fstd %%fr0,0(%1)\n"
: "=m" (temp), "+r" (bufptr));
temp.env.__status_word &= ~(FE_ALL_EXCEPT
@@ -56,9 +53,6 @@
/* Load the new environment. */
bufptr = temp.buf;
__asm__ (
- "fldd,ma -8(%1),%%fr3\n"
- "fldd,ma -8(%1),%%fr2\n"
- "fldd,ma -8(%1),%%fr1\n"
"fldd 0(%1),%%fr0\n"
: "=m" (temp), "+r" (bufptr));
[-- Attachment #3: Type: text/plain, Size: 169 bytes --]
_______________________________________________
parisc-linux mailing list
parisc-linux@lists.parisc-linux.org
http://lists.parisc-linux.org/mailman/listinfo/parisc-linux
next reply other threads:[~2006-01-15 23:38 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-01-15 23:38 Randolph Chung [this message]
2006-01-16 6:22 ` [parisc-linux] [Fwd: [patch/hppa] Floating point exception handling patch] Grant Grundler
[not found] ` <20060116164050.GA4049@quicksilver.road.mcmartin.ca>
[not found] ` <20060116170359.GE29884@tennyson.dodds.net>
2006-01-16 22:43 ` Grant Grundler
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=43CADCFC.60802@tausq.org \
--to=randolph@tausq.org \
--cc=parisc-linux@lists.parisc-linux.org \
/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.