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.
This commit is contained in:
parent
3f1c767d1e
commit
62ed552b93
12
ChangeLog
12
ChangeLog
|
@ -1,5 +1,17 @@
|
||||||
|
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.
|
||||||
|
|
||||||
2001-08-20 Ulrich Drepper <drepper@redhat.com>
|
2001-08-20 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* posix/regex.c (truncate_wchar): Use wcrtomb not wctomb.
|
||||||
|
|
||||||
* string/strnlen.c: Fix the implementation. We cannot use memchr.
|
* string/strnlen.c: Fix the implementation. We cannot use memchr.
|
||||||
|
|
||||||
2001-08-18 Mark Kettenis <kettenis@gnu.org>
|
2001-08-18 Mark Kettenis <kettenis@gnu.org>
|
||||||
|
|
|
@ -4627,9 +4627,16 @@ static unsigned char
|
||||||
truncate_wchar (c)
|
truncate_wchar (c)
|
||||||
CHAR_T c;
|
CHAR_T c;
|
||||||
{
|
{
|
||||||
unsigned char buf[MB_LEN_MAX];
|
unsigned char buf[MB_CUR_MAX];
|
||||||
int retval = wctomb(buf, c);
|
mbstate_t state;
|
||||||
return retval > 0 ? buf[0] : (unsigned char)c;
|
int retval;
|
||||||
|
memset (&state, '\0', sizeof (state));
|
||||||
|
# ifdef _LIBC
|
||||||
|
retval = __wcrtomb (buf, c, &state);
|
||||||
|
# else
|
||||||
|
retval = wcrtomb (buf, c, &state);
|
||||||
|
# endif
|
||||||
|
return retval > 0 ? buf[0] : (unsigned char) c;
|
||||||
}
|
}
|
||||||
#endif /* WCHAR */
|
#endif /* WCHAR */
|
||||||
|
|
||||||
|
|
|
@ -39,29 +39,35 @@ typedef struct
|
||||||
/* Type for a general-purpose register. */
|
/* Type for a general-purpose register. */
|
||||||
typedef unsigned long greg_t;
|
typedef unsigned long greg_t;
|
||||||
|
|
||||||
#define NGREG 16
|
/* 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
|
||||||
typedef greg_t gregset_t[NGREG];
|
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
|
typedef union
|
||||||
{
|
{
|
||||||
double d;
|
double d;
|
||||||
float f;
|
float f;
|
||||||
} fpreg_t;
|
} fpreg_t;
|
||||||
|
|
||||||
/* Register set for the floating-point registers. */
|
/* Register set for the floating-point registers. */
|
||||||
typedef struct {
|
typedef struct
|
||||||
unsigned int fpc;
|
{
|
||||||
fpreg_t fprs[16];
|
unsigned int fpc;
|
||||||
} fpregset_t;
|
fpreg_t fprs[16];
|
||||||
|
} fpregset_t;
|
||||||
|
|
||||||
/* Context to describe whole processor state. */
|
/* Context to describe whole processor state. */
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
__psw_t psw;
|
__psw_t psw;
|
||||||
gregset_t gregs;
|
unsigned long gregs[16];
|
||||||
unsigned int aregs[16];
|
unsigned int aregs[16];
|
||||||
fpregset_t fpregs;
|
fpregset_t fpregs;
|
||||||
} mcontext_t;
|
} mcontext_t;
|
||||||
|
|
||||||
/* Userlevel context. */
|
/* Userlevel context. */
|
||||||
|
|
|
@ -39,29 +39,35 @@ typedef struct
|
||||||
/* Type for a general-purpose register. */
|
/* Type for a general-purpose register. */
|
||||||
typedef unsigned long greg_t;
|
typedef unsigned long greg_t;
|
||||||
|
|
||||||
#define NGREG 16
|
/* 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
|
||||||
typedef greg_t gregset_t[NGREG];
|
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
|
typedef union
|
||||||
{
|
{
|
||||||
double d;
|
double d;
|
||||||
float f;
|
float f;
|
||||||
} fpreg_t;
|
} fpreg_t;
|
||||||
|
|
||||||
/* Register set for the floating-point registers. */
|
/* Register set for the floating-point registers. */
|
||||||
typedef struct {
|
typedef struct
|
||||||
unsigned int fpc;
|
{
|
||||||
fpreg_t fprs[16];
|
unsigned int fpc;
|
||||||
} fpregset_t;
|
fpreg_t fprs[16];
|
||||||
|
} fpregset_t;
|
||||||
|
|
||||||
/* Context to describe whole processor state. */
|
/* Context to describe whole processor state. */
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
__psw_t psw;
|
__psw_t psw;
|
||||||
gregset_t gregs;
|
unsigned long gregs[16];
|
||||||
unsigned int aregs[16];
|
unsigned int aregs[16];
|
||||||
fpregset_t fpregs;
|
fpregset_t fpregs;
|
||||||
} mcontext_t;
|
} mcontext_t;
|
||||||
|
|
||||||
/* Userlevel context. */
|
/* Userlevel context. */
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
/* We define errno here, to be consistent with Linux/i386. */
|
/* We define errno here, to be consistent with Linux/i386. */
|
||||||
|
|
||||||
.section .bss
|
.section .bss
|
||||||
|
.align 2
|
||||||
.globl C_SYMBOL_NAME(errno)
|
.globl C_SYMBOL_NAME(errno)
|
||||||
.type C_SYMBOL_NAME(errno), @object
|
.type C_SYMBOL_NAME(errno), @object
|
||||||
.size C_SYMBOL_NAME(errno), 4
|
.size C_SYMBOL_NAME(errno), 4
|
||||||
|
|
Loading…
Reference in New Issue