2001-08-14  Tom Rix  <trix@redhat.com>

	* iconv/gconv_cache.c (find_module): Add #ifndef STATIC_GCONV.
	* iconv/Makefile: Fix gconv_cache.c CFLAGS.

2001-08-13  Tom Rix  <trix@redhat.com>

	* sysdeps/unix/sysv/aix/Makefile: Add rule to import kernel symbols.
	* sysdeps/unix/sysv/aix/bits/types.h: Fix type of __id_t, __useconds_t
	and __intptr_t.

2001-08-15  Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S (__getcontext):
	Store the access registers to the ucontext structure.
	* sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S (__getcontext):
	Likewise.

	* sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S (__setcontext):
	Load the access registers from the ucontext structure.
	* sysdeps/unix/sysv/linux/s390/s390-64/setcontext.S (__setcontext):
	Likewise.

	* sysdeps/unix/sysv/linux/s390/s390-32/ucontext_i.h: Adjust the SC_xxx
	offsets to the new ucontext layout.
	* sysdeps/unix/sysv/linux/s390/s390-64/ucontext_i.h: Likewise.

	* sysdeps/unix/sysv/linux/s390/s390-32/sys/ucontext.h: Fix the layout
	of the ucontext structure.
	* sysdeps/unix/sysv/linux/s390/s390-64/sys/ucontext.h: Likewise.
This commit is contained in:
Ulrich Drepper 2001-08-16 05:39:18 +00:00
parent 1fc0e33153
commit 8e2949409c
14 changed files with 10203 additions and 40 deletions

View File

@ -1,3 +1,34 @@
2001-08-14 Tom Rix <trix@redhat.com>
* iconv/gconv_cache.c (find_module): Add #ifndef STATIC_GCONV.
* iconv/Makefile: Fix gconv_cache.c CFLAGS.
2001-08-13 Tom Rix <trix@redhat.com>
* sysdeps/unix/sysv/aix/Makefile: Add rule to import kernel symbols.
* sysdeps/unix/sysv/aix/bits/types.h: Fix type of __id_t, __useconds_t
and __intptr_t.
2001-08-15 Martin Schwidefsky <schwidefsky@de.ibm.com>
* sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S (__getcontext):
Store the access registers to the ucontext structure.
* sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S (__getcontext):
Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S (__setcontext):
Load the access registers from the ucontext structure.
* sysdeps/unix/sysv/linux/s390/s390-64/setcontext.S (__setcontext):
Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/ucontext_i.h: Adjust the SC_xxx
offsets to the new ucontext layout.
* sysdeps/unix/sysv/linux/s390/s390-64/ucontext_i.h: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/sys/ucontext.h: Fix the layout
of the ucontext structure.
* sysdeps/unix/sysv/linux/s390/s390-64/sys/ucontext.h: Likewise.
2001-08-15 Ulrich Drepper <drepper@redhat.com>
* misc/error.c (error): Handle wide oriented stderr stream correctly.

10098
ChangeLog.12 Normal file

File diff suppressed because it is too large Load Diff

View File

@ -57,7 +57,7 @@ others = iconv_prog iconvconfig
install-others = $(inst_bindir)/iconv
install-sbin = iconvconfig
CFLAGS-gconv_cache.c = -DGCONV_DIR='"$(gconvdir)"'
CFLAGS-gconv_cache.c += -DGCONV_DIR='"$(gconvdir)"'
CFLAGS-gconv_conf.c = -DGCONV_PATH='"$(gconvdir)"'
CFLAGS-iconvconfig.c = -DGCONV_PATH='"$(gconvdir)"' -DGCONV_DIR='"$(gconvdir)"'

View File

@ -170,6 +170,7 @@ find_module_idx (const char *str, size_t *idxp)
}
#ifndef STATIC_GCONV
static int
internal_function
find_module (const char *directory, const char *filename,
@ -199,6 +200,7 @@ find_module (const char *directory, const char *filename,
return status;
}
#endif
int

View File

@ -2,6 +2,21 @@
# This is a hack until the import/export stuff is worked out.
+postctor += /lib/syscalls.exp
ifeq ($(subdir),csu)
sysdep_routines += aix-syscalls
#
# The foo.c is a workaround for the linker complaining about no input files.
$(objpfx)aix-syscalls.o : /lib/syscalls.exp
echo "static int a;" > foo.c
$(CC) -c foo.c
ld -bM:SRE -bnoentry -bI:/lib/syscalls.exp -bE:/lib/syscalls.exp foo.o -o $@
rm foo.c foo.o
endif
ifeq ($(subdir),misc)
sysdep_routines += dl-error dl-support dl-libc dl-open dl-sym \
dl-close dl-addr uitrunc
@ -24,3 +39,4 @@ inhibit-glue = yes
ifeq ($(subdir),timezone)
CPPFLAGS-zic.c = -Dunix
endif

View File

@ -71,7 +71,7 @@ typedef int __pid_t; /* Type of process identifications. */
typedef long int __ssize_t; /* Type of a byte count, or error. */
typedef __u_long __rlim_t; /* Type of resource counts. */
typedef __u_quad_t __rlim64_t; /* Type of resource counts (LFS). */
typedef __u_long __id_t; /* General type for ID. */
typedef unsigned int __id_t; /* General type for ID. */
typedef struct
{
@ -82,7 +82,7 @@ typedef struct
typedef long int __daddr_t; /* The type of a disk address. */
typedef char *__caddr_t;
typedef long int __time_t;
typedef __u_long __useconds_t;
typedef unsigned int __useconds_t;
typedef int __suseconds_t;
typedef long int __swblk_t; /* Type of a swap block maybe? */
@ -128,7 +128,7 @@ typedef int __t_scalar_t;
typedef unsigned int __t_uscalar_t;
/* Duplicates info from stdint.h but this is used in unistd.h. */
typedef int __intptr_t;
typedef signed long __intptr_t;
/* Duplicate info from sys/socket.h. */
typedef unsigned int __socklen_t;

View File

@ -62,6 +62,9 @@ ENTRY(__getcontext)
/* Set __getcontext return value to 0. */
slr %r2,%r2
/* Store access registers. */
stam %a0,%a15,SC_ACRS(%r5)
/* Store general purpose registers. */
stm %r0,%r15,SC_GPRS(%r5)

View File

@ -59,6 +59,9 @@ ENTRY(__setcontext)
ld %f14,SC_FPRS+112(%r5)
ld %f15,SC_FPRS+120(%r5)
/* Don't touch %a0, used for thread purposes. */
lam %a1,%a15,SC_ACRS+4(%r5)
/* Load general purpose registers. */
lm %r0,%r15,SC_GPRS(%r5)

View File

@ -29,18 +29,19 @@ typedef struct ucontext ucontext_t;
included in <signal.h>. */
#include <bits/sigcontext.h>
/* Type for a program status word. */
typedef struct
{
unsigned long mask;
unsigned long addr;
} __psw_t __attribute__ ((aligned(8)));;
/* Type for a general-purpose register. */
typedef unsigned long greg_t;
/* 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. */
#define NGREG 36
#define NUM_FPRS 16
/* Must match kernels psw_t alignment */
typedef greg_t gregset_t[NGREG] __attribute__ ((aligned(8)));
#define NGREG 16
typedef greg_t gregset_t[NGREG];
typedef union
{
@ -51,14 +52,15 @@ typedef union
/* Register set for the floating-point registers. */
typedef struct {
unsigned int fpc;
fpreg_t fprs[NUM_FPRS];
fpreg_t fprs[16];
} fpregset_t;
/* Context to describe whole processor state. */
typedef struct
{
int version;
__psw_t psw;
gregset_t gregs;
unsigned int aregs[16];
fpregset_t fpregs;
} mcontext_t;
@ -67,10 +69,9 @@ struct ucontext
{
unsigned long int uc_flags;
struct ucontext *uc_link;
__sigset_t uc_sigmask;
stack_t uc_stack;
mcontext_t uc_mcontext;
long int uc_filler[170];
__sigset_t uc_sigmask;
};

View File

@ -26,9 +26,10 @@
#define SC_FLGS 0x000
#define SC_LINK 0x004
#define SC_MASK 0x008
#define SC_STCK 0x088
#define SC_VERS 0x098
#define SC_GPRS 0x0a0
#define SC_FPC 0x130
#define SC_FPRS 0x138
#define SC_STCK 0x008
#define SC_PSW 0x018
#define SC_GPRS 0x020
#define SC_ACRS 0x060
#define SC_FPC 0x0A0
#define SC_FPRS 0x0A8
#define SC_MASK 0x128

View File

@ -62,6 +62,9 @@ ENTRY(__getcontext)
/* Set __getcontext return value to 0. */
slr %r2,%r2
/* Store access registers. */
stam %a0,%a15,SC_ACRS(%r5)
/* Store general purpose registers. */
stmg %r0,%r15,SC_GPRS(%r5)

View File

@ -58,6 +58,9 @@ ENTRY(__setcontext)
ld %f13,SC_FPRS+104(%r5)
ld %f14,SC_FPRS+112(%r5)
ld %f15,SC_FPRS+120(%r5)
/* Don't touch %a0 and %a1, used for thread purposes. */
lam %a2,%a15,SC_ACRS+8(%r5)
/* Load general purpose registers. */
lmg %r0,%r15,SC_GPRS(%r5)

View File

@ -29,18 +29,19 @@ typedef struct ucontext ucontext_t;
included in <signal.h>. */
#include <bits/sigcontext.h>
/* Type for a program status word. */
typedef struct
{
unsigned long mask;
unsigned long addr;
} __psw_t __attribute__ ((aligned(8)));
/* Type for a general-purpose register. */
typedef unsigned long greg_t;
/* 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. */
#define NGREG 27
#define NUM_FPRS 16
/* Must match kernels psw_t alignment */
typedef greg_t gregset_t[NGREG] __attribute__ ((aligned(8)));
#define NGREG 16
typedef greg_t gregset_t[NGREG];
typedef union
{
@ -51,14 +52,15 @@ typedef union
/* Register set for the floating-point registers. */
typedef struct {
unsigned int fpc;
fpreg_t fprs[NUM_FPRS];
fpreg_t fprs[16];
} fpregset_t;
/* Context to describe whole processor state. */
typedef struct
{
int version;
__psw_t psw;
gregset_t gregs;
unsigned int aregs[16];
fpregset_t fpregs;
} mcontext_t;
@ -67,10 +69,9 @@ struct ucontext
{
unsigned long int uc_flags;
struct ucontext *uc_link;
__sigset_t uc_sigmask;
stack_t uc_stack;
mcontext_t uc_mcontext;
long int uc_filler[170];
__sigset_t uc_sigmask;
};

View File

@ -26,10 +26,11 @@
#define SC_FLGS 0x000
#define SC_LINK 0x008
#define SC_MASK 0x010
#define SC_STCK 0x090
#define SC_VERS 0x0a8
#define SC_GPRS 0x0b0
#define SC_FPC 0x188
#define SC_FPRS 0x190
#define SC_STCK 0x010
#define SC_PSW 0x028
#define SC_GPRS 0x038
#define SC_ACRS 0x0B8
#define SC_FPC 0x0F8
#define SC_FPRS 0x100
#define SC_MASK 0x180