diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c | 18 |
2 files changed, 9 insertions, 16 deletions
diff --git a/ChangeLog b/ChangeLog index b570cced29..cd6e8c88b5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -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 9e31ed4096..521ba1ae5c 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) |