aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-08-21 02:46:26 +0000
committerUlrich Drepper <drepper@redhat.com>2001-08-21 02:46:26 +0000
commit62ed552b937bc0367df22207d316c14614e94421 (patch)
tree37e896a9a61df77491c91daebd19caa0c1e7dd24 /sysdeps/unix
parent3f1c767d1e3454e190ab6f3afa101911dbf21f2f (diff)
downloadglibc-62ed552b937bc0367df22207d316c14614e94421.tar
glibc-62ed552b937bc0367df22207d316c14614e94421.tar.gz
glibc-62ed552b937bc0367df22207d316c14614e94421.tar.bz2
glibc-62ed552b937bc0367df22207d316c14614e94421.zip
Update.
2001-08-20 Martin Schwidefsky <schwidefsky@de.ibm.com> * sysdeps/unix/sysv/linux/s390/s390-32/sys/ucontext.h: Revert the change of the gregset_t type. * sysdeps/unix/sysv/linux/s390/s390-64/sys/ucontext.h: Likewise. 2001-08-20 kaz Kojima <kkojima@rr.iij4u.or.jp> * sysdeps/unix/sysv/linux/sh/sysdep.S: Align errno. * posix/regex.c (truncate_wchar): Use wcrtomb not wctomb.
Diffstat (limited to 'sysdeps/unix')
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/sys/ucontext.h34
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/sys/ucontext.h34
-rw-r--r--sysdeps/unix/sysv/linux/sh/sysdep.S1
3 files changed, 41 insertions, 28 deletions
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/sys/ucontext.h b/sysdeps/unix/sysv/linux/s390/s390-32/sys/ucontext.h
index d59b885f15..9f2d58e2a8 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/sys/ucontext.h
@@ -39,29 +39,35 @@ typedef struct
/* Type for a general-purpose register. */
typedef unsigned long greg_t;
-#define NGREG 16
-
-typedef greg_t gregset_t[NGREG];
+/* And the whole bunch of them. We should have used `struct s390_regs',
+ but to avoid name space pollution and since the tradition says that
+ the register set is an array, we make gregset_t a simple array
+ that has the same size as s390_regs. This is needed for the
+ elf_prstatus structure. */
+#define NGREG 36
+/* Must match kernels psw_t alignment. */
+typedef greg_t gregset_t[NGREG] __attribute__ ((aligned(8)));
typedef union
-{
- double d;
- float f;
-} fpreg_t;
+ {
+ double d;
+ float f;
+ } fpreg_t;
/* Register set for the floating-point registers. */
-typedef struct {
- unsigned int fpc;
- fpreg_t fprs[16];
-} fpregset_t;
+typedef struct
+ {
+ unsigned int fpc;
+ fpreg_t fprs[16];
+ } fpregset_t;
/* Context to describe whole processor state. */
typedef struct
{
- __psw_t psw;
- gregset_t gregs;
+ __psw_t psw;
+ unsigned long gregs[16];
unsigned int aregs[16];
- fpregset_t fpregs;
+ fpregset_t fpregs;
} mcontext_t;
/* Userlevel context. */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/sys/ucontext.h b/sysdeps/unix/sysv/linux/s390/s390-64/sys/ucontext.h
index 6ce7c8a1ee..7402199d1f 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/sys/ucontext.h
@@ -39,29 +39,35 @@ typedef struct
/* Type for a general-purpose register. */
typedef unsigned long greg_t;
-#define NGREG 16
-
-typedef greg_t gregset_t[NGREG];
+/* And the whole bunch of them. We should have used `struct s390_regs',
+ but to avoid name space pollution and since the tradition says that
+ the register set is an array, we make gregset_t a simple array
+ that has the same size as s390_regs. This is needed for the
+ elf_prstatus structure. */
+#define NGREG 27
+/* Must match kernels psw_t alignment. */
+typedef greg_t gregset_t[NGREG] __attribute__ ((aligned(8)));
typedef union
-{
- double d;
- float f;
-} fpreg_t;
+ {
+ double d;
+ float f;
+ } fpreg_t;
/* Register set for the floating-point registers. */
-typedef struct {
- unsigned int fpc;
- fpreg_t fprs[16];
-} fpregset_t;
+typedef struct
+ {
+ unsigned int fpc;
+ fpreg_t fprs[16];
+ } fpregset_t;
/* Context to describe whole processor state. */
typedef struct
{
- __psw_t psw;
- gregset_t gregs;
+ __psw_t psw;
+ unsigned long gregs[16];
unsigned int aregs[16];
- fpregset_t fpregs;
+ fpregset_t fpregs;
} mcontext_t;
/* Userlevel context. */
diff --git a/sysdeps/unix/sysv/linux/sh/sysdep.S b/sysdeps/unix/sysv/linux/sh/sysdep.S
index cd7aa81792..3f4b0dd0a2 100644
--- a/sysdeps/unix/sysv/linux/sh/sysdep.S
+++ b/sysdeps/unix/sysv/linux/sh/sysdep.S
@@ -21,6 +21,7 @@
/* We define errno here, to be consistent with Linux/i386. */
.section .bss
+ .align 2
.globl C_SYMBOL_NAME(errno)
.type C_SYMBOL_NAME(errno), @object
.size C_SYMBOL_NAME(errno), 4