From a05977f8592bf44abbafc96930e0c66bc102308c Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 8 May 1998 23:57:12 +0000 Subject: [PATCH] Update. 1998-05-08 Ulrich Drepper * sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c (DL_FIND_ARG_COMPONENTS): Find correct alignment for auxiliary vector. Patch by Mark Hatle and Matt McLean . --- ChangeLog | 7 +++++++ sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c | 18 ++---------------- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/ChangeLog b/ChangeLog index b570cce..cd6e8c8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +1998-05-08 Ulrich Drepper + + * sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c + (DL_FIND_ARG_COMPONENTS): Find correct alignment for auxiliary + vector. Patch by Mark Hatle + and Matt McLean . + 1998-05-08 23:49 Ulrich Drepper * 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) -- 2.7.4