Update.
authorUlrich Drepper <drepper@redhat.com>
Fri, 8 May 1998 23:57:12 +0000 (23:57 +0000)
committerUlrich Drepper <drepper@redhat.com>
Fri, 8 May 1998 23:57:12 +0000 (23:57 +0000)
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>.

ChangeLog
sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c

index b570cce..cd6e8c8 100644 (file)
--- 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.
index 9e31ed4..521ba1a 100644 (file)
     (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)