summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/ppc/unified.S
diff options
context:
space:
mode:
authorNicolas Planel <nplanel@mandriva.com>2003-10-29 16:07:11 +0000
committerNicolas Planel <nplanel@mandriva.com>2003-10-29 16:07:11 +0000
commitde47eb59bb829423b1d0f47ba13099073999b3cb (patch)
tree827f35c4666e15ec66edae7c1fa05d963324602b /mdk-stage1/dietlibc/ppc/unified.S
parent1fece42e9c460ca017fc4facad380f05163d8977 (diff)
downloaddrakx-backup-do-not-use-de47eb59bb829423b1d0f47ba13099073999b3cb.tar
drakx-backup-do-not-use-de47eb59bb829423b1d0f47ba13099073999b3cb.tar.gz
drakx-backup-do-not-use-de47eb59bb829423b1d0f47ba13099073999b3cb.tar.bz2
drakx-backup-do-not-use-de47eb59bb829423b1d0f47ba13099073999b3cb.tar.xz
drakx-backup-do-not-use-de47eb59bb829423b1d0f47ba13099073999b3cb.zip
Corporate Server 2.1.1 releasetopic/Corpo_2_1
Diffstat (limited to 'mdk-stage1/dietlibc/ppc/unified.S')
-rw-r--r--mdk-stage1/dietlibc/ppc/unified.S37
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