diff options
author | Gwenolé Beauchesne <gbeauchesne@mandriva.org> | 2003-02-18 16:48:15 +0000 |
---|---|---|
committer | Gwenolé Beauchesne <gbeauchesne@mandriva.org> | 2003-02-18 16:48:15 +0000 |
commit | cfc97c2e6d73efdf65b5ff0fc6ee66f1dc19f36c (patch) | |
tree | a377e1084729f1f289e32f7f180edb924d96718a /mdk-stage1/dietlibc/ppc/unified.S | |
parent | 8182e7cfe7d9c60567e48b876282594395062530 (diff) | |
download | drakx-cfc97c2e6d73efdf65b5ff0fc6ee66f1dc19f36c.tar drakx-cfc97c2e6d73efdf65b5ff0fc6ee66f1dc19f36c.tar.gz drakx-cfc97c2e6d73efdf65b5ff0fc6ee66f1dc19f36c.tar.bz2 drakx-cfc97c2e6d73efdf65b5ff0fc6ee66f1dc19f36c.tar.xz drakx-cfc97c2e6d73efdf65b5ff0fc6ee66f1dc19f36c.zip |
Merge in CVS dietlibc 0.21 for IA-64 and X86-64 support. However, drop the
following architectures we currently don't support: arm, mips, mipsel, parisc,
s390, sparc64.
Diffstat (limited to 'mdk-stage1/dietlibc/ppc/unified.S')
-rw-r--r-- | mdk-stage1/dietlibc/ppc/unified.S | 37 |
1 files changed, 28 insertions, 9 deletions
diff --git a/mdk-stage1/dietlibc/ppc/unified.S b/mdk-stage1/dietlibc/ppc/unified.S index d2b419f0b..eb136a96b 100644 --- a/mdk-stage1/dietlibc/ppc/unified.S +++ b/mdk-stage1/dietlibc/ppc/unified.S @@ -1,21 +1,40 @@ #include <dietfeatures.h> +#include "syscalls.h" .text +.type exit,@function +.weak exit +exit: +.type _exit,@function +.global _exit +_exit: + li 0,__NR_exit .global __unified_syscall __unified_syscall: sc - mfcr 0 - andis. 9,0,4096 - mr 0,3 - beq .L1 -#ifdef WANT_THREAD_SAVE - bl __set_errno + bnslr+ + +.global error_unified_syscall +error_unified_syscall: +#ifdef WANT_THREAD_SAFE + stwu 1,-16(1) + mflr 0 + stw 0,20(1) + stw 3,12(1) + bl __errno_location + lwz 0,12(1) + stw 0,0(3) + lwz 0,20(1) + mtlr 0 + addi 1,1,16 #else lis 9,errno@ha stw 3,errno@l(9) #endif - li 0,-1 -.L1: - mr 3,0 + li 3,-1 + +/* here we go and "reuse" the return for weak-void functions */ +#include "dietuglyweaks.h" + blr |