diff options
author | Guy Martin <gmsoft@tuxicoman.be> | 2013-11-21 13:23:16 -0500 |
---|---|---|
committer | Carlos O'Donell <carlos@redhat.com> | 2013-11-21 15:52:31 -0500 |
commit | daf75146de07303ea0c5ad700ec5ef703ec114a1 (patch) | |
tree | ed307e39a90288cbcdf727a7c07addb9f38f65d8 /ChangeLog | |
parent | d33cafadfe365befa4ca6e0463fa926d56144046 (diff) | |
download | glibc-daf75146de07303ea0c5ad700ec5ef703ec114a1.tar.gz glibc-daf75146de07303ea0c5ad700ec5ef703ec114a1.tar.xz glibc-daf75146de07303ea0c5ad700ec5ef703ec114a1.zip |
Don't use broken DL_AUTO_FUNCTION_ADDRESS()
On hppa and ia64, the macro DL_AUTO_FUNCTION_ADDRESS() uses the variable fptr[2] in it's own scope. The content of fptr[] is thus undefined right after the macro exits. Newer gcc's (>= 4.7) reuse the stack space of this variable triggering a segmentation fault in dl-init.c:69. To fix this we rewrite the macros to make the call directly to init and fini without needing to pass back a constructed function pointer.
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index 1f673d3226..a6a21a2bcf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2013-11-21 Guy Martin <gmsoft@tuxicoman.be> + + * sysdeps/generic/ldsodefs.h: Replace DL_DT_INIT_ADDRESS() and + DL_DT_FINI_ADDRESS() macro with DL_CALL_DT_INIT() and + DL_CALL_DT_FINI() that call the functions directly. + * elf/dl-init.c: Use the new DL_CALL_DT_INIT() macro. + * elf/dl-close.c: Use the new DL_CALL_DT_FINI() macro. + * elf/dl-fini.c: Likewise. + 2013-11-20 Ondřej Bílka <neleai@seznam.cz> * malloc/hooks.c (memalign_check): Add alignment rounding. |