Index: glibc-2.14/elf/soinit.c =================================================================== --- glibc-2.14.orig/elf/soinit.c +++ glibc-2.14/elf/soinit.c @@ -26,7 +26,11 @@ void __libc_global_ctors (void) { /* Call constructor functions. */ - run_hooks (__CTOR_LIST__); + void (**tem)(); + asm ("" : "=r" (tem) : "0" (__CTOR_LIST__)); + /* Call destructor functions. */ + + run_hooks (tem); } @@ -36,7 +40,11 @@ void __libc_fini (void) { /* Call destructor functions. */ - run_hooks (__DTOR_LIST__); + void (**tem)(); + asm ("" : "=r" (tem) : "0" (__DTOR_LIST__)); + /* Call destructor functions. */ + + run_hooks (tem); } void (*_fini_ptr) (void) __attribute__ ((section (".fini_array")))