mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-03 08:11:08 +00:00
Update.
2001-07-15 Ulrich Drepper <drepper@redhat.com> * malloc/obstack.c: Define __attribute__ for non-gcc compilers. Patch by Jim Meyering <jim@meyering.net>. 2001-07-12 Martin Schwidefsky <schwidefsky@de.ibm.com> * sysdeps/unix/sysv/linux/s390/s390-64/bits/sigaction.h: Reorder fields in the sigaction struct to match the definition in the kernel. 2001-07-12 Martin Schwidefsky <schwidefsky@de.ibm.com> * sysdeps/unix/sysv/linux/s390/s390-32/mmap64.S: Correct the test for ENOSYS. 2001-07-12 Martin Schwidefsky <schwidefsky@de.ibm.com> * sysdeps/s390/s390-32/bits/setjmp.h: Add leading underscores to the entries in the __jmp_buf structure. * sysdeps/s390/s390-64/bits/setjmp.h: Likewise. 2001-07-12 Martin Schwidefsky <schwidefsky@de.ibm.com> * sysdeps/s390/s390-32/bcopy.S: Use mvcle for big blocks (> 64K) and a mvc loop for small blocks. * sysdeps/s390/s390-32/memcpy.S: Likewise. * sysdeps/s390/s390-64/bcopy.S: Likewise. * sysdeps/s390/s390-64/memcpy.S: Likewise.
This commit is contained in:
parent
3c204435e9
commit
778e0ef71d
29
ChangeLog
29
ChangeLog
@ -1,3 +1,32 @@
|
||||
2001-07-15 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* malloc/obstack.c: Define __attribute__ for non-gcc compilers.
|
||||
Patch by Jim Meyering <jim@meyering.net>.
|
||||
|
||||
2001-07-12 Martin Schwidefsky <schwidefsky@de.ibm.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/s390/s390-64/bits/sigaction.h: Reorder
|
||||
fields in the sigaction struct to match the definition in the kernel.
|
||||
|
||||
2001-07-12 Martin Schwidefsky <schwidefsky@de.ibm.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/s390/s390-32/mmap64.S: Correct the
|
||||
test for ENOSYS.
|
||||
|
||||
2001-07-12 Martin Schwidefsky <schwidefsky@de.ibm.com>
|
||||
|
||||
* sysdeps/s390/s390-32/bits/setjmp.h: Add leading underscores
|
||||
to the entries in the __jmp_buf structure.
|
||||
* sysdeps/s390/s390-64/bits/setjmp.h: Likewise.
|
||||
|
||||
2001-07-12 Martin Schwidefsky <schwidefsky@de.ibm.com>
|
||||
|
||||
* sysdeps/s390/s390-32/bcopy.S: Use mvcle for big blocks
|
||||
(> 64K) and a mvc loop for small blocks.
|
||||
* sysdeps/s390/s390-32/memcpy.S: Likewise.
|
||||
* sysdeps/s390/s390-64/bcopy.S: Likewise.
|
||||
* sysdeps/s390/s390-64/memcpy.S: Likewise.
|
||||
|
||||
2001-07-15 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* sysdeps/unix/sysv/linux/m68k/sys/procfs.h: New file.
|
||||
|
@ -1,3 +1,10 @@
|
||||
2001-07-16 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* pthread.c (pthread_initialize): For FLOATING_STACKS do't bother
|
||||
to find the right value for __pthread_initial_thread_bos, it's not
|
||||
used. If not FLOATING_STACKS first run
|
||||
__pthread_init_max_stacksize.
|
||||
|
||||
2001-06-16 H.J. Lu <hjl@gnu.org>
|
||||
|
||||
* internals.h: Include <stackinfo.h>.
|
||||
|
@ -401,6 +401,40 @@ __pthread_initialize_minimal(void)
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
__pthread_init_max_stacksize(void)
|
||||
{
|
||||
struct rlimit limit;
|
||||
size_t max_stack;
|
||||
|
||||
getrlimit(RLIMIT_STACK, &limit);
|
||||
#ifdef FLOATING_STACKS
|
||||
if (limit.rlim_cur == RLIM_INFINITY)
|
||||
limit.rlim_cur = ARCH_STACK_MAX_SIZE;
|
||||
# ifdef NEED_SEPARATE_REGISTER_STACK
|
||||
max_stack = limit.rlim_cur / 2;
|
||||
# else
|
||||
max_stack = limit.rlim_cur;
|
||||
# endif
|
||||
#else
|
||||
/* Play with the stack size limit to make sure that no stack ever grows
|
||||
beyond STACK_SIZE minus one page (to act as a guard page). */
|
||||
# ifdef NEED_SEPARATE_REGISTER_STACK
|
||||
/* STACK_SIZE bytes hold both the main stack and register backing
|
||||
store. The rlimit value applies to each individually. */
|
||||
max_stack = STACK_SIZE/2 - __getpagesize ();
|
||||
# else
|
||||
max_stack = STACK_SIZE - __getpagesize();
|
||||
# endif
|
||||
if (limit.rlim_cur > max_stack) {
|
||||
limit.rlim_cur = max_stack;
|
||||
setrlimit(RLIMIT_STACK, &limit);
|
||||
}
|
||||
#endif
|
||||
__pthread_max_stacksize = max_stack;
|
||||
}
|
||||
|
||||
|
||||
static void pthread_initialize(void)
|
||||
{
|
||||
struct sigaction sa;
|
||||
@ -412,6 +446,13 @@ static void pthread_initialize(void)
|
||||
/* Test if compare-and-swap is available */
|
||||
__pthread_has_cas = compare_and_swap_is_available();
|
||||
#endif
|
||||
#ifdef FLOATING_STACKS
|
||||
/* We don't need to know the bottom of the stack. Give the pointer some
|
||||
value to signal that initialization happened. */
|
||||
__pthread_initial_thread_bos = (void *) -1l;
|
||||
#else
|
||||
/* Determine stack size limits . */
|
||||
__pthread_init_max_stacksize ();
|
||||
# ifdef _STACK_GROWS_UP
|
||||
/* The initial thread already has all the stack it needs */
|
||||
__pthread_initial_thread_bos = (char *)
|
||||
@ -422,6 +463,7 @@ static void pthread_initialize(void)
|
||||
STACK_SIZE boundary. */
|
||||
__pthread_initial_thread_bos =
|
||||
(char *)(((long)CURRENT_STACK_FRAME - 2 * STACK_SIZE) & ~(STACK_SIZE - 1));
|
||||
# endif
|
||||
#endif
|
||||
/* Update the descriptor for the initial thread. */
|
||||
__pthread_initial_thread.p_pid = __getpid();
|
||||
@ -470,38 +512,6 @@ void __pthread_initialize(void)
|
||||
pthread_initialize();
|
||||
}
|
||||
|
||||
void __pthread_init_max_stacksize(void)
|
||||
{
|
||||
struct rlimit limit;
|
||||
size_t max_stack;
|
||||
|
||||
getrlimit(RLIMIT_STACK, &limit);
|
||||
#ifdef FLOATING_STACKS
|
||||
if (limit.rlim_cur == RLIM_INFINITY)
|
||||
limit.rlim_cur = ARCH_STACK_MAX_SIZE;
|
||||
# ifdef NEED_SEPARATE_REGISTER_STACK
|
||||
max_stack = limit.rlim_cur / 2;
|
||||
# else
|
||||
max_stack = limit.rlim_cur;
|
||||
# endif
|
||||
#else
|
||||
/* Play with the stack size limit to make sure that no stack ever grows
|
||||
beyond STACK_SIZE minus one page (to act as a guard page). */
|
||||
# ifdef NEED_SEPARATE_REGISTER_STACK
|
||||
/* STACK_SIZE bytes hold both the main stack and register backing
|
||||
store. The rlimit value applies to each individually. */
|
||||
max_stack = STACK_SIZE/2 - __getpagesize ();
|
||||
# else
|
||||
max_stack = STACK_SIZE - __getpagesize();
|
||||
# endif
|
||||
if (limit.rlim_cur > max_stack) {
|
||||
limit.rlim_cur = max_stack;
|
||||
setrlimit(RLIMIT_STACK, &limit);
|
||||
}
|
||||
#endif
|
||||
__pthread_max_stacksize = max_stack;
|
||||
}
|
||||
|
||||
int __pthread_initialize_manager(void)
|
||||
{
|
||||
int manager_pipe[2];
|
||||
|
@ -470,6 +470,13 @@ _obstack_memory_used (h)
|
||||
# define fputs(s, f) _IO_fputs (s, f)
|
||||
#endif
|
||||
|
||||
#ifndef __attribute__
|
||||
/* This feature is available in gcc versions 2.5 and later. */
|
||||
# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
|
||||
# define __attribute__(Spec) /* empty */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
static void
|
||||
__attribute__ ((noreturn))
|
||||
print_and_abort ()
|
||||
|
@ -36,10 +36,10 @@
|
||||
|
||||
typedef struct {
|
||||
/* We save registers 6-15. */
|
||||
long int gregs[10];
|
||||
long int __gregs[10];
|
||||
|
||||
/* We save fpu registers 4 and 6. */
|
||||
long fpregs[4];
|
||||
long __fpregs[4];
|
||||
} __jmp_buf[1];
|
||||
|
||||
#endif
|
||||
@ -47,6 +47,6 @@ typedef struct {
|
||||
/* Test if longjmp to JMPBUF would unwind the frame
|
||||
containing a local variable at ADDRESS. */
|
||||
#define _JMPBUF_UNWINDS(jmpbuf, address) \
|
||||
((int) (address) < (jmpbuf)->gregs[__JB_GPR15])
|
||||
((int) (address) < (jmpbuf)->__gregs[__JB_GPR15])
|
||||
|
||||
#endif /* __S390_SETJMP_H__ */
|
||||
|
@ -36,10 +36,10 @@
|
||||
|
||||
typedef struct {
|
||||
/* We save registers 6-15. */
|
||||
long int gregs[10];
|
||||
long int __gregs[10];
|
||||
|
||||
/* We save fpu registers 4 and 6. */
|
||||
long fpregs[8];
|
||||
long __fpregs[8];
|
||||
} __jmp_buf[1];
|
||||
|
||||
#endif
|
||||
|
@ -51,7 +51,7 @@ ENTRY(__mmap64)
|
||||
svc SYS_ify(mmap2) /* Do the system call trap. */
|
||||
|
||||
#ifndef __ASSUME_MMAP2_SYSCALL
|
||||
chi %r0,-ENOSYS
|
||||
chi %r2,-ENOSYS
|
||||
je 1f
|
||||
#endif
|
||||
|
||||
|
@ -43,6 +43,9 @@ struct sigaction
|
||||
/* Special flags. */
|
||||
unsigned long int sa_flags;
|
||||
|
||||
/* Restore handler. */
|
||||
void (*sa_restorer) (void);
|
||||
|
||||
/* Additional set of signals to be blocked. */
|
||||
__sigset_t sa_mask;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user