aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2007-08-24 02:58:08 +0000
committerUlrich Drepper <drepper@redhat.com>2007-08-24 02:58:08 +0000
commit73e3ff07a3354d6c095e2945560755c8bc0a4387 (patch)
tree8111b1f4695205d356d463b6e4bd47226d767b5d
parent62e1b1f5644f5a0d913b91e7cc1bca4c6c32cf43 (diff)
downloadglibc-73e3ff07a3354d6c095e2945560755c8bc0a4387.zip
glibc-73e3ff07a3354d6c095e2945560755c8bc0a4387.tar.gz
glibc-73e3ff07a3354d6c095e2945560755c8bc0a4387.tar.bz2
[BZ #3924]
* sysdeps/i386/dl-trampoline.S (_dl_runtime_profile): Correctly align for function call in case pltexit has to be called later.
-rw-r--r--ChangeLog4
-rw-r--r--sysdeps/i386/dl-trampoline.S3
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 58df8983..3a00dd5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2007-08-23 Ulrich Drepper <drepper@redhat.com>
+ [BZ #3924]
+ * sysdeps/i386/dl-trampoline.S (_dl_runtime_profile): Correctly
+ align for function call in case pltexit has to be called later.
+
* sysdeps/i386/dl-trampoline.S (_dl_runtime_resolve): Avoid
implicit atomic operation when storing function pointer.
(_dl_runtime_profile): Likewise.
diff --git a/sysdeps/i386/dl-trampoline.S b/sysdeps/i386/dl-trampoline.S
index 5856a2f..af9eaf6 100644
--- a/sysdeps/i386/dl-trampoline.S
+++ b/sysdeps/i386/dl-trampoline.S
@@ -111,9 +111,10 @@ _dl_runtime_profile:
cfi_rel_offset (esi, 0)
leal 44(%esp), %esi
movl %ebx, %ecx
+ orl $4, %ebx # Increase frame size if necessary to align
+ # stack for the function call
movl %esp, %edi
subl %ebx, %edi
- andl $0xfffffff0, %edi # Align stack
movl %esp, %ebx
cfi_def_cfa_register (ebx)
movl %edi, %esp