summaryrefslogtreecommitdiff
path: root/libc/ports
diff options
context:
space:
mode:
authorjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2013-08-20 16:36:45 +0000
committerjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2013-08-20 16:36:45 +0000
commitb4a4c38b54ec1734893153adba657bcd443a0175 (patch)
tree456b07473799d98ec0603448475b59b9e279091c /libc/ports
parent80635627ed68eee72bfe1873816a92d7af5caac2 (diff)
Merge changes between r23715 and r23795 from /fsf/trunk.
git-svn-id: svn://svn.eglibc.org/trunk@23796 7b3dc134-2b1b-0410-93df-9e9f96275f8d
Diffstat (limited to 'libc/ports')
-rw-r--r--libc/ports/ChangeLog.powerpc9
-rw-r--r--libc/ports/sysdeps/powerpc/nofpu/sim-full.c5
-rw-r--r--libc/ports/sysdeps/powerpc/nofpu/soft-supp.h5
-rw-r--r--libc/ports/sysdeps/powerpc/soft-fp/sfp-machine.h5
4 files changed, 24 insertions, 0 deletions
diff --git a/libc/ports/ChangeLog.powerpc b/libc/ports/ChangeLog.powerpc
index 8272ef3a9..e503682ce 100644
--- a/libc/ports/ChangeLog.powerpc
+++ b/libc/ports/ChangeLog.powerpc
@@ -1,3 +1,12 @@
+2013-08-17 Alexandre Oliva <aoliva@redhat.com>
+
+ PR 15483
+ * sysdeps/powerpc/nofpu/sim-full.c: Add FIXME note about
+ the need for thread-specific variables preserved across signal
+ handlers.
+ * sysdeps/powerpc/nofpu/soft-supp.h: Likewise.
+ * sysdeps/powerpc/soft-fp/sfp-machine.h: Likewise.
+
2013-07-03 Joseph Myers <joseph@codesourcery.com>
* sysdeps/powerpc/nofpu/libm-test-ulps: Regenerated.
diff --git a/libc/ports/sysdeps/powerpc/nofpu/sim-full.c b/libc/ports/sysdeps/powerpc/nofpu/sim-full.c
index fc061d0c0..e16703323 100644
--- a/libc/ports/sysdeps/powerpc/nofpu/sim-full.c
+++ b/libc/ports/sysdeps/powerpc/nofpu/sim-full.c
@@ -21,6 +21,11 @@
#include "soft-fp.h"
#include "soft-supp.h"
+/* FIXME: these variables should be thread specific (see bugzilla bug
+ 15483) and ideally preserved across signal handlers, like hardware
+ FP status words, but the latter is quite difficult to accomplish in
+ userland. */
+
/* Global to store sticky exceptions. */
int __sim_exceptions __attribute__ ((nocommon));
libc_hidden_data_def (__sim_exceptions);
diff --git a/libc/ports/sysdeps/powerpc/nofpu/soft-supp.h b/libc/ports/sysdeps/powerpc/nofpu/soft-supp.h
index b9638bbba..64a3d2a1d 100644
--- a/libc/ports/sysdeps/powerpc/nofpu/soft-supp.h
+++ b/libc/ports/sysdeps/powerpc/nofpu/soft-supp.h
@@ -26,6 +26,11 @@ typedef union
} fenv_union_t;
+/* FIXME: these variables should be thread specific (see bugzilla bug
+ 15483) and ideally preserved across signal handlers, like hardware
+ FP status words, but the latter is quite difficult to accomplish in
+ userland. */
+
extern int __sim_exceptions;
libc_hidden_proto (__sim_exceptions);
extern int __sim_disabled_exceptions;
diff --git a/libc/ports/sysdeps/powerpc/soft-fp/sfp-machine.h b/libc/ports/sysdeps/powerpc/soft-fp/sfp-machine.h
index c2a190e7e..508d8698d 100644
--- a/libc/ports/sysdeps/powerpc/soft-fp/sfp-machine.h
+++ b/libc/ports/sysdeps/powerpc/soft-fp/sfp-machine.h
@@ -54,6 +54,11 @@
#define FP_ROUNDMODE __sim_round_mode
#define FP_TRAPPING_EXCEPTIONS (~__sim_disabled_exceptions & 0x3e000000)
+/* FIXME: these variables should be thread specific (see bugzilla bug
+ 15483) and ideally preserved across signal handlers, like hardware
+ FP status words, but the latter is quite difficult to accomplish in
+ userland. */
+
extern int __sim_exceptions;
libc_hidden_proto (__sim_exceptions);
extern int __sim_disabled_exceptions;