From daf75146de07303ea0c5ad700ec5ef703ec114a1 Mon Sep 17 00:00:00 2001 From: Guy Martin Date: Thu, 21 Nov 2013 13:23:16 -0500 Subject: 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. --- ports/ChangeLog.ia64 | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'ports/ChangeLog.ia64') diff --git a/ports/ChangeLog.ia64 b/ports/ChangeLog.ia64 index 1eb0f389c2..89133295e1 100644 --- a/ports/ChangeLog.ia64 +++ b/ports/ChangeLog.ia64 @@ -1,3 +1,12 @@ +2013-11-21 Guy Martin + + * sysdeps/ia64/dl-lookupcfg.h: Remove obsolete + DL_DT_INIT_ADDRESS() and DL_DT_FINI_ADDRESS() macro and implement + DL_CALL_DT_INIT() as well as DL_CALL_DT_FINI(). + Define DL_DT_FUNCTION_ADDRESS(). + * sysdeps/ia64/dl-machine.h: Update ELF_MACHINE_START_ADDRESS() + to use DL_DT_FUNCTION_ADDRESS(). + 2013-10-30 Mike Frysinger * sysdeps/ia64/configure.in: Moved to ... -- cgit v1.2.3