summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux
diff options
context:
space:
mode:
authorJoakim Tjernlund <joakim.tjernlund@transmode.se>2005-03-21 10:42:43 +0000
committerJoakim Tjernlund <joakim.tjernlund@transmode.se>2005-03-21 10:42:43 +0000
commit2d31c8c2c6ef432aa8c27defc53036859dd00560 (patch)
treefeb2334f8d5ee81f004c84640746d528949ccb80 /libc/sysdeps/linux
parent98c8f32c52d179c4f12b6c719dc0f2fceaa3037d (diff)
Pass _dl_fini function ptr to __uClibc_start_main().
To actually use it, one must define _DL_DO_FINI_IN_LIBC globally. That will also break ABI for apps linked with previous version of crtX.S. They must be relinked with this version to work again.
Diffstat (limited to 'libc/sysdeps/linux')
-rw-r--r--libc/sysdeps/linux/powerpc/crt0.S1
1 files changed, 1 insertions, 0 deletions
diff --git a/libc/sysdeps/linux/powerpc/crt0.S b/libc/sysdeps/linux/powerpc/crt0.S
index fc77bdc99..d2808a7c1 100644
--- a/libc/sysdeps/linux/powerpc/crt0.S
+++ b/libc/sysdeps/linux/powerpc/crt0.S
@@ -70,6 +70,7 @@ _start:
addi r5,r5,1
rlwinm r5,r5,2,0,29
add r5,r5,r4
+ mr r8,r7 /* Pass _dl_fini from ldso */
/* Ok, now run uClibc's main() -- shouldn't return */
#if (defined L_crt1 || defined L_Scrt1) && defined __UCLIBC_CTOR_DTOR__
# ifdef L_Scrt1