This manifests on powerpc64 as not being able to create threads in programs when using direct execution due to an invalid value being used for stack_prot, causing the kernel to reject mmap of the new thread stack.
The problem is that after
for (;; auxp++, auxpf++) { *auxp = *auxpf; if (auxp->a_type == AT_NULL) break; }
is run, aux_info contains stale pointers to memory that has shifted slightly out from under it.
So, re-digest it to ensure the pointers are sane again.