From: Andreas Jaeger Date: Wed, 24 May 2000 16:16:53 +0000 (+0000) Subject: Update. X-Git-Tag: cvs/glibc_2-1-91~385 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fff82885d2cfbb0617f8536cbc0805cd64b748bf;p=thirdparty%2Fglibc.git Update. * sysdeps/mips/elf/start.S (ENTRY_POINT): Align stack for double words. --- diff --git a/ChangeLog b/ChangeLog index 9ad63a3dca4..9440cba1532 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2000-05-24 Andreas Jaeger + * sysdeps/mips/elf/start.S (ENTRY_POINT): Align stack for double + words. + * intl/Makefile: Run gettext-test only if msgfmt is available. * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_LDT_WORKS): diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index d20d68a8e0a..bde417e2de8 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -1,3 +1,7 @@ +2000-05-24 Andreas Jaeger + + * sysdeps/i386/i686/pt-machine.h: Only use LDT on newer kernels. + 2000-05-21 Jakub Jelinek * manager.c (pthread_handle_create): Initialize p_res._sock to -1. diff --git a/sysdeps/mips/elf/start.S b/sysdeps/mips/elf/start.S index 7fee4e71c36..064fe7e6f45 100644 --- a/sysdeps/mips/elf/start.S +++ b/sysdeps/mips/elf/start.S @@ -27,7 +27,7 @@ segment. The SVR4/Mips ABI (pages 3-31, 3-32) says that when the entry point runs, most registers' values are unspecified, except for: - v1 ($2) Contains a function pointer to be registered with `atexit'. + v0 ($2) Contains a function pointer to be registered with `atexit'. This is how the dynamic linker arranges to have DT_FINI functions called for shared libraries that have been loaded before this code runs. @@ -76,7 +76,9 @@ ENTRY_POINT: dla $4, main /* main */ lw $5, 0($29) /* argc */ addu $6, $29, 4 /* argv */ - /* Allocate space on the stack for seven arguments but align to 32. */ + /* Allocate space on the stack for seven arguments and make sure + the stack is aligned to double words (8 bytes). */ + and $29, 0xfffffff8 subu $29, 32 dla $7, _init /* init */ dla $8, _fini @@ -84,7 +86,9 @@ ENTRY_POINT: la $4, main /* main */ lw $5, 0($29) /* argc */ addu $6, $29, 4 /* argv */ - /* Allocate space on the stack for seven arguments but align to 32. */ + /* Allocate space on the stack for seven arguments and make sure + the stack is aligned to double words (8 bytes). */ + and $29, 0xfffffff8 subu $29, 32 la $7, _init /* init */ la $8, _fini