diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-05-08 23:57:12 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-05-08 23:57:12 +0000 |
commit | a05977f8592bf44abbafc96930e0c66bc102308c (patch) | |
tree | 8caccaed0b5c6f7d6b0abd8bfdb52d766b176eeb | |
parent | 444518fedfcd3200d78744365373cebbbb9016fd (diff) | |
download | glibc-a05977f8592bf44abbafc96930e0c66bc102308c.zip glibc-a05977f8592bf44abbafc96930e0c66bc102308c.tar.gz glibc-a05977f8592bf44abbafc96930e0c66bc102308c.tar.bz2 |
Update.
1998-05-08 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
(DL_FIND_ARG_COMPONENTS): Find correct alignment for auxiliary
vector. Patch by Mark Hatle <fray@kernel.crashing.org>
and Matt McLean <keys@brio.yikes.com>.
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c | 18 |
2 files changed, 9 insertions, 16 deletions
@@ -1,3 +1,10 @@ +1998-05-08 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c + (DL_FIND_ARG_COMPONENTS): Find correct alignment for auxiliary + vector. Patch by Mark Hatle <fray@kernel.crashing.org> + and Matt McLean <keys@brio.yikes.com>. + 1998-05-08 23:49 Ulrich Drepper <drepper@cygnus.com> * misc/Makefile (tests): Add tst-mntent. diff --git a/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c b/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c index 9e31ed4..521ba1a 100644 --- a/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c +++ b/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c @@ -29,22 +29,8 @@ (envp) = (argv) + (argc) + 1; \ for (_tmp = (envp); *_tmp; ++_tmp) \ continue; \ - /* The following '++' is important! */ \ - ++_tmp; \ - if (*_tmp == 0) \ - { \ - size_t _test = (size_t)_tmp; \ - _test = _test + 0xf & ~0xf; \ - /* When ld.so is being run directly, there is no \ - alignment (and no argument vector), so we make a \ - basic sanity check of the argument vector. Of \ - course, this means that in future, the argument \ - vector will have to be laid out to allow for this \ - test :-(. */ \ - if (((ElfW(auxv_t) *)_test)->a_type <= AT_PHDR) \ - _tmp = (char **)_test; \ - } \ - (auxp) = (ElfW(auxv_t) *) _tmp; \ + (auxp) = (void *) ++_tmp; \ + (auxp) = (void *)(((size_t)(auxp) + 0xF) & 0xFFFFFFF0); \ } while (0) |