forked from pool/glibc
454dec769f
Fix changes entry. OBS-URL: https://build.opensuse.org/request/show/85072 OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=109
31 lines
729 B
Diff
31 lines
729 B
Diff
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")))
|