diff options
author | Christian Heim <phreak@gentoo.org> | 2006-08-28 17:53:01 +0000 |
---|---|---|
committer | Christian Heim <phreak@gentoo.org> | 2006-08-28 17:53:01 +0000 |
commit | a3eed86833011e6f88948c02eccd93d224422f6d (patch) | |
tree | ecf5fc12df2217dc4f4dc01d0537330a438082fd /dietlibc | |
parent | Renaming and adding to the README (diff) | |
download | misc-a3eed86833011e6f88948c02eccd93d224422f6d.tar.gz misc-a3eed86833011e6f88948c02eccd93d224422f6d.tar.bz2 misc-a3eed86833011e6f88948c02eccd93d224422f6d.zip |
Removing old patch
svn path=/; revision=445
Diffstat (limited to 'dietlibc')
-rw-r--r-- | dietlibc/patches/0.30-r1/03_all_ppc-rename.patch | 2856 |
1 files changed, 0 insertions, 2856 deletions
diff --git a/dietlibc/patches/0.30-r1/03_all_ppc-rename.patch b/dietlibc/patches/0.30-r1/03_all_ppc-rename.patch deleted file mode 100644 index 2d39266..0000000 --- a/dietlibc/patches/0.30-r1/03_all_ppc-rename.patch +++ /dev/null @@ -1,2856 +0,0 @@ -Index: dietlibc-0.30/Makefile -=================================================================== ---- dietlibc-0.30.orig/Makefile -+++ dietlibc-0.30/Makefile -@@ -23,11 +23,11 @@ else - ifeq ($(MYARCH),alpha) - ARCH=alpha - else --ifeq ($(MYARCH),ppc) --ARCH=ppc -+ifeq ($(MYARCH),powerpc) -+ARCH=powerpc - else --ifeq ($(MYARCH),ppc64) --ARCH=ppc64 -+ifeq ($(MYARCH),powerpc64) -+ARCH=powerpc64 - else - ifeq ($(MYARCH),arm) - ARCH=arm -@@ -285,10 +285,10 @@ $(PICODIR)/libm.so: $(DYN_LIBMATH_OBJS) - $(SYSCALLOBJ): syscalls.h - - $(OBJDIR)/elftrunc: $(OBJDIR)/diet contrib/elftrunc.c -- bin-$(MYARCH)/diet $(CROSS)$(CC) $(CFLAGS) -o $@ contrib/elftrunc.c -+ bin-$(ARCH)/diet $(CROSS)$(CC) $(CFLAGS) -o $@ contrib/elftrunc.c - - $(OBJDIR)/dnsd: $(OBJDIR)/diet contrib/dnsd.c -- bin-$(MYARCH)/diet $(CROSS)$(CC) $(CFLAGS) -o $@ contrib/dnsd.c -+ bin-$(ARCH)/diet $(CROSS)$(CC) $(CFLAGS) -o $@ contrib/dnsd.c - - VERSION=dietlibc-$(shell head -n 1 CHANGES|sed 's/://') - CURNAME=$(notdir $(shell pwd)) -@@ -370,10 +370,10 @@ uninstall: - for i in `find include -name \*.h`; do rm -f $(DESTDIR)$(prefix)/$$i; done - -rmdir $(DESTDIR)$(ILIBDIR) $(DESTDIR)$(MAN1DIR) $(DESTDIR)$(BINDIR) - --.PHONY: sparc ppc mips arm alpha i386 parisc mipsel powerpc s390 sparc64 --.PHONY: x86_64 ia64 ppc64 s390x -+.PHONY: sparc powerpc mips arm alpha i386 parisc mipsel powerpc s390 sparc64 -+.PHONY: x86_64 ia64 powerpc64 s390x - --arm sparc alpha mips parisc s390 sparc64 x86_64 ia64 ppc64 s390x: -+arm sparc alpha mips parisc s390 sparc64 x86_64 ia64 powerpc64 s390x: - $(MAKE) ARCH=$@ CROSS=$@-linux- all - - i386: -@@ -383,8 +383,8 @@ else - $(MAKE) ARCH=$@ CROSS=$@-linux- all - endif - --ppc: --ifeq ($(MYARCH),ppc64) -+powerpc: -+ifeq ($(MYARCH),powerpc64) - $(MAKE) ARCH=$@ CC="$(CC) -m32" all - else - $(MAKE) ARCH=$@ CROSS=$@-linux- all -@@ -397,15 +397,11 @@ mipsel: - mips-gnu: - $(MAKE) ARCH=$@ CROSS=$@-linux-gnu- all - --# Some people named their cross compiler toolchain powerpc-linux-gcc --powerpc: -- $(MAKE) ARCH=ppc CROSS=powerpc-linux- all -- - hppa: - ln -sf bin-parisc bin-hppa - $(MAKE) ARCH=parisc CROSS=hppa-linux- all - --CROSS_ARCH=arm sparc ppc alpha i386 mips sparc64 x86_64 s390 parisc -+CROSS_ARCH=arm sparc powerpc alpha i386 mips sparc64 x86_64 s390 parisc - cross: - $(MAKE) $(subst $(ARCH),,$(CROSS_ARCH)) - -Index: dietlibc-0.30/diet.c -=================================================================== ---- dietlibc-0.30.orig/diet.c -+++ dietlibc-0.30/diet.c -@@ -35,8 +35,8 @@ static const char* Os[] = { - "arm","-Os","-fomit-frame-pointer",0, - "mips","-Os","-fomit-frame-pointer","-mno-abicalls","-fno-pic","-G","0",0, - "mipsel","-Os","-fomit-frame-pointer","-mno-abicalls","-fno-pic","-G","0",0, -- "ppc","-Os","-fomit-frame-pointer","-mpowerpc-gpopt","-mpowerpc-gfxopt",0, -- "ppc64","-Os","-fomit-frame-pointer","-mpowerpc-gpopt","-mpowerpc-gfxopt",0, -+ "powerpc","-Os","-fomit-frame-pointer","-mpowerpc-gpopt","-mpowerpc-gfxopt",0, -+ "powerpc64","-Os","-fomit-frame-pointer","-mpowerpc-gpopt","-mpowerpc-gfxopt",0, - "s390","-Os","-fomit-frame-pointer",0, - "s390x","-Os","-fomit-frame-pointer",0, - "sh","-Os","-fomit-frame-pointer",0, -@@ -151,10 +151,10 @@ int main(int argc,char *argv[]) { - #endif - #endif - #ifdef __powerpc__ -- shortplatform="ppc"; -+ shortplatform="powerpc"; - #endif - #ifdef __powerpc64__ -- shortplatform="ppc64"; -+ shortplatform="powerpc64"; - #endif - #ifdef __i386__ - shortplatform="i386"; -Index: dietlibc-0.30/powerpc/Makefile.add -=================================================================== ---- /dev/null -+++ dietlibc-0.30/powerpc/Makefile.add -@@ -0,0 +1,3 @@ -+ -+CFLAGS+=-mpowerpc-gpopt -mpowerpc-gfxopt -Os -+VPATH:=ppc:syscalls.s:$(VPATH) -Index: dietlibc-0.30/powerpc/__longjmp.S -=================================================================== ---- /dev/null -+++ dietlibc-0.30/powerpc/__longjmp.S -@@ -0,0 +1,59 @@ -+#include <setjmp.h> -+ -+ -+#ifdef PIC -+#define JUMPTARGET(name) name##@plt -+#else -+#define JUMPTARGET(name) name -+#endif -+ -+.global __longjmp -+.type __longjmp,@function -+.align 2 -+__longjmp: -+ lwz 1,(JB_GPR1*4)(3) -+ lwz 2,(JB_GPR2*4)(3) -+ lwz 0,(JB_LR*4)(3) -+ lwz 14,((JB_GPRS+0)*4)(3) -+ lfd 14,((JB_FPRS+0*2)*4)(3) -+ lwz 15,((JB_GPRS+1)*4)(3) -+ lfd 15,((JB_FPRS+1*2)*4)(3) -+ lwz 16,((JB_GPRS+2)*4)(3) -+ lfd 16,((JB_FPRS+2*2)*4)(3) -+ lwz 17,((JB_GPRS+3)*4)(3) -+ lfd 17,((JB_FPRS+3*2)*4)(3) -+ lwz 18,((JB_GPRS+4)*4)(3) -+ lfd 18,((JB_FPRS+4*2)*4)(3) -+ lwz 19,((JB_GPRS+5)*4)(3) -+ lfd 19,((JB_FPRS+5*2)*4)(3) -+ lwz 20,((JB_GPRS+6)*4)(3) -+ lfd 20,((JB_FPRS+6*2)*4)(3) -+ mtlr 0 -+ lwz 21,((JB_GPRS+7)*4)(3) -+ lfd 21,((JB_FPRS+7*2)*4)(3) -+ lwz 22,((JB_GPRS+8)*4)(3) -+ lfd 22,((JB_FPRS+8*2)*4)(3) -+ lwz 0,(JB_CR*4)(3) -+ lwz 23,((JB_GPRS+9)*4)(3) -+ lfd 23,((JB_FPRS+9*2)*4)(3) -+ lwz 24,((JB_GPRS+10)*4)(3) -+ lfd 24,((JB_FPRS+10*2)*4)(3) -+ lwz 25,((JB_GPRS+11)*4)(3) -+ lfd 25,((JB_FPRS+11*2)*4)(3) -+ mtcrf 0xFF,0 -+ lwz 26,((JB_GPRS+12)*4)(3) -+ lfd 26,((JB_FPRS+12*2)*4)(3) -+ lwz 27,((JB_GPRS+13)*4)(3) -+ lfd 27,((JB_FPRS+13*2)*4)(3) -+ lwz 28,((JB_GPRS+14)*4)(3) -+ lfd 28,((JB_FPRS+14*2)*4)(3) -+ lwz 29,((JB_GPRS+15)*4)(3) -+ lfd 29,((JB_FPRS+15*2)*4)(3) -+ lwz 30,((JB_GPRS+16)*4)(3) -+ lfd 30,((JB_FPRS+16*2)*4)(3) -+ lwz 31,((JB_GPRS+17)*4)(3) -+ lfd 31,((JB_FPRS+17*2)*4)(3) -+ mr 3,4 -+ blr -+.size __longjmp,.-__longjmp -+ -Index: dietlibc-0.30/powerpc/__testandset.S -=================================================================== ---- /dev/null -+++ dietlibc-0.30/powerpc/__testandset.S -@@ -0,0 +1,12 @@ -+.global __testandset -+.type __testandset,@function -+.align 2 -+__testandset: -+1: lwarx 5,0,3 -+ li 0,1 -+ stwcx. 0,0,3 -+ bne- 1b -+ mr 3,5 -+ blr -+.size __testandset,.-__testandset -+ -Index: dietlibc-0.30/powerpc/clone.S -=================================================================== ---- /dev/null -+++ dietlibc-0.30/powerpc/clone.S -@@ -0,0 +1,48 @@ -+#include <dietfeatures.h> -+#include "syscalls.h" -+#include <errno.h> -+ -+.text -+.weak clone -+clone: -+.global __clone -+__clone: -+ cmpwi 4,0 /* check have non null child_stack pointer */ -+ cmpwi cr1, 3,0 /* check have non null thread_funcion */ -+ cror eq,4*cr1+eq,eq /* now if eq is set one is or both are zero */ -+ beq .Lclone_error -+ -+ stwu 1,-32(1) /* alloc some space on the stack */ -+ stmw 29, 16(1) /* save r29,r30,r31 on stack */ -+ -+ rlwinm 4,4,0,0,27 /* mask out lower 4 bits */ -+ -+ /* move parameter to positions clone wants them */ -+ mr 29,3 /* r29 = r3 fn */ -+ mr 30,4 /* r30 = r4 stack */ -+ mr 31,6 /* r31 = r6 arg */ -+ mr 3, 5 /* r3 = r5 flags */ -+ -+ li 0, __NR_clone /* load syscall nr. */ -+ sc -+ -+ cmpwi cr1,3,0 /* compare return of syscall with 0 */ -+ crandc 4*cr1+eq,4*cr1+eq,so -+ bne .Lclone_parent /* return was non zero -> .Lclone_parent */ -+ -+ /* we are the cloned process */ -+ mr 1, 30 /* set stack pointer */ -+ mtctr 29 /* set count register to fn ? */ -+ mr 3, 31 /* set argument */ -+ bctrl /* branch trough count register and link */ -+ b _exit /* exit thread */ -+ -+.Lclone_parent: -+ lmw 29,16(1) /* restore saved registers */ -+ addi 1, 1,32 /* free stack */ -+ bnslr+ /* had cloned a thread so return to parent */ -+ b error_unified_syscall -+ -+.Lclone_error: -+ li 3, EINVAL -+ b error_unified_syscall -Index: dietlibc-0.30/powerpc/mmap.c -=================================================================== ---- /dev/null -+++ dietlibc-0.30/powerpc/mmap.c -@@ -0,0 +1,40 @@ -+#include "dietfeatures.h" -+#include <sys/types.h> -+#include <errno.h> -+#include "syscalls.h" -+ -+int mmap(void*start,size_t length,int prot,int flags,int fd,off_t offset) { -+ unsigned long __sc_ret, __sc_err; -+ { -+ register unsigned long __sc_0 __asm__ ("r0"); -+ register unsigned long __sc_3 __asm__ ("r3"); -+ register unsigned long __sc_4 __asm__ ("r4"); -+ register unsigned long __sc_5 __asm__ ("r5"); -+ register unsigned long __sc_6 __asm__ ("r6"); -+ register unsigned long __sc_7 __asm__ ("r7"); -+ register unsigned long __sc_8 __asm__ ("r8"); -+ -+ __sc_3 = (unsigned long) (start); -+ __sc_4 = (unsigned long) (length); -+ __sc_5 = (unsigned long) (prot); -+ __sc_6 = (unsigned long) (flags); -+ __sc_7 = (unsigned long) (fd); -+ __sc_8 = (unsigned long) (offset); -+ __sc_0 = __NR_mmap; -+ __asm__ __volatile__ -+ ("sc \n\t" -+ "mfcr %1 " -+ : "=&r" (__sc_3), "=&r" (__sc_0) -+ : "0" (__sc_3), "1" (__sc_0), -+ "r" (__sc_4), -+ "r" (__sc_5), -+ "r" (__sc_6), -+ "r" (__sc_7), -+ "r" (__sc_8) -+ : "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"); -+ __sc_ret = __sc_3; -+ __sc_err = __sc_0; -+ } -+ return (__sc_err & 0x10000000 ? errno = __sc_ret, __sc_ret = -1 : 0), -+ (int) __sc_ret; -+} -Index: dietlibc-0.30/powerpc/setjmp.S -=================================================================== ---- /dev/null -+++ dietlibc-0.30/powerpc/setjmp.S -@@ -0,0 +1,56 @@ -+#include <setjmp.h> -+ -+#ifdef PIC -+#define JUMPTARGET(name) name##@plt -+#else -+#define JUMPTARGET(name) name -+#endif -+ -+.global __sigsetjmp -+.type __sigsetjmp,@function -+.align 2 -+__sigsetjmp: -+ stw 1,(JB_GPR1*4)(3) -+ mflr 0 -+ stw 2,(JB_GPR2*4)(3) -+ stw 14,((JB_GPRS+0)*4)(3) -+ stfd 14,((JB_FPRS+0*2)*4)(3) -+ stw 0,(JB_LR*4)(3) -+ stw 15,((JB_GPRS+1)*4)(3) -+ stfd 15,((JB_FPRS+1*2)*4)(3) -+ mfcr 0 -+ stw 16,((JB_GPRS+2)*4)(3) -+ stfd 16,((JB_FPRS+2*2)*4)(3) -+ stw 0,(JB_CR*4)(3) -+ stw 17,((JB_GPRS+3)*4)(3) -+ stfd 17,((JB_FPRS+3*2)*4)(3) -+ stw 18,((JB_GPRS+4)*4)(3) -+ stfd 18,((JB_FPRS+4*2)*4)(3) -+ stw 19,((JB_GPRS+5)*4)(3) -+ stfd 19,((JB_FPRS+5*2)*4)(3) -+ stw 20,((JB_GPRS+6)*4)(3) -+ stfd 20,((JB_FPRS+6*2)*4)(3) -+ stw 21,((JB_GPRS+7)*4)(3) -+ stfd 21,((JB_FPRS+7*2)*4)(3) -+ stw 22,((JB_GPRS+8)*4)(3) -+ stfd 22,((JB_FPRS+8*2)*4)(3) -+ stw 23,((JB_GPRS+9)*4)(3) -+ stfd 23,((JB_FPRS+9*2)*4)(3) -+ stw 24,((JB_GPRS+10)*4)(3) -+ stfd 24,((JB_FPRS+10*2)*4)(3) -+ stw 25,((JB_GPRS+11)*4)(3) -+ stfd 25,((JB_FPRS+11*2)*4)(3) -+ stw 26,((JB_GPRS+12)*4)(3) -+ stfd 26,((JB_FPRS+12*2)*4)(3) -+ stw 27,((JB_GPRS+13)*4)(3) -+ stfd 27,((JB_FPRS+13*2)*4)(3) -+ stw 28,((JB_GPRS+14)*4)(3) -+ stfd 28,((JB_FPRS+14*2)*4)(3) -+ stw 29,((JB_GPRS+15)*4)(3) -+ stfd 29,((JB_FPRS+15*2)*4)(3) -+ stw 30,((JB_GPRS+16)*4)(3) -+ stfd 30,((JB_FPRS+16*2)*4)(3) -+ stw 31,((JB_GPRS+17)*4)(3) -+ stfd 31,((JB_FPRS+17*2)*4)(3) -+ b JUMPTARGET (__sigjmp_save) -+.size __sigsetjmp,.-__sigsetjmp -Index: dietlibc-0.30/powerpc/start.S -=================================================================== ---- /dev/null -+++ dietlibc-0.30/powerpc/start.S -@@ -0,0 +1,52 @@ -+#include "dietfeatures.h" -+ -+.text -+.global _start -+.type _start,@function -+_start: -+ /* Save the stack pointer, in case we're statically linked under Linux. */ -+ mr 9,1 -+ /* Set up an initial stack frame, and clear the LR. */ -+ clrrwi 1,1,4 -+ li 0,0 -+ stwu 1,-16(1) -+ mtlr 0 -+ stw 0,0(1) -+ -+ /* r9 contains the initial stack pointer -+ argc = (r9) -+ argv = (r9+4) -+ envp = argv+(argc+1)*4 */ -+ -+ lis 14,__libc_stack_end@ha -+ stw 9,__libc_stack_end@l(14) -+ -+ lwzu 3,0(9) /* argc */ -+ addi 4,9,4 /* argv */ -+ add 5,0,3 /* argc... */ -+ addi 5,5,1 /* argc+1...*/ -+ slwi 5,5,2 /* (argc+1)*4 */ -+ add 5,5,4 /* argv+(argc+1)*4 */ -+ -+ lis 14,environ@ha -+ stw 5,environ@l(14) -+ -+#ifdef WANT_DYNAMIC -+ mr 6,7 -+ bl _dyn_start -+#else -+ bl CALL_IN_STARTCODE -+#endif -+ b exit -+.size _start,.-_start -+ -+ -+/* Define a symbol for the first piece of initialized data. */ -+ .section ".data" -+__data_start: -+ -+/* this is needed for libgcc_eh.a - see gcc-3.4/gcc/config/rs6000/linux-unwind.h */ -+ .weak __libc_stack_end -+ .lcomm __libc_stack_end,4,4 -+ .type __libc_stack_end,@object -+ -Index: dietlibc-0.30/powerpc/syscalls.h -=================================================================== ---- /dev/null -+++ dietlibc-0.30/powerpc/syscalls.h -@@ -0,0 +1,299 @@ -+ -+#define __NR_exit 1 -+#define __NR_fork 2 -+#define __NR_read 3 -+#define __NR_write 4 -+#define __NR_open 5 -+#define __NR_close 6 -+#define __NR_waitpid 7 -+#define __NR_creat 8 -+#define __NR_link 9 -+#define __NR_unlink 10 -+#define __NR_execve 11 -+#define __NR_chdir 12 -+#define __NR_time 13 -+#define __NR_mknod 14 -+#define __NR_chmod 15 -+#define __NR_lchown 16 -+#define __NR_break 17 -+#define __NR_oldstat 18 -+#define __NR_lseek 19 -+#define __NR_getpid 20 -+#define __NR_mount 21 -+#define __NR_umount 22 -+#define __NR_setuid 23 -+#define __NR_getuid 24 -+#define __NR_stime 25 -+#define __NR_ptrace 26 -+#define __NR_alarm 27 -+#define __NR_oldfstat 28 -+#define __NR_pause 29 -+#define __NR_utime 30 -+#define __NR_stty 31 -+#define __NR_gtty 32 -+#define __NR_access 33 -+#define __NR_nice 34 -+#define __NR_ftime 35 -+#define __NR_sync 36 -+#define __NR_kill 37 -+#define __NR_rename 38 -+#define __NR_mkdir 39 -+#define __NR_rmdir 40 -+#define __NR_dup 41 -+#define __NR_pipe 42 -+#define __NR_times 43 -+#define __NR_prof 44 -+#define __NR_brk 45 -+#define __NR_setgid 46 -+#define __NR_getgid 47 -+#define __NR_signal 48 -+#define __NR_geteuid 49 -+#define __NR_getegid 50 -+#define __NR_acct 51 -+#define __NR_umount2 52 -+#define __NR_lock 53 -+#define __NR_ioctl 54 -+#define __NR_fcntl 55 -+#define __NR_mpx 56 -+#define __NR_setpgid 57 -+#define __NR_ulimit 58 -+#define __NR_oldolduname 59 -+#define __NR_umask 60 -+#define __NR_chroot 61 -+#define __NR_ustat 62 -+#define __NR_dup2 63 -+#define __NR_getppid 64 -+#define __NR_getpgrp 65 -+#define __NR_setsid 66 -+#define __NR_sigaction 67 -+#define __NR_sgetmask 68 -+#define __NR_ssetmask 69 -+#define __NR_setreuid 70 -+#define __NR_setregid 71 -+#define __NR_sigsuspend 72 -+#define __NR_sigpending 73 -+#define __NR_sethostname 74 -+#define __NR_setrlimit 75 -+#define __NR_getrlimit 76 -+#define __NR_getrusage 77 -+#define __NR_gettimeofday 78 -+#define __NR_settimeofday 79 -+#define __NR_getgroups 80 -+#define __NR_setgroups 81 -+#define __NR_select 82 -+#define __NR_symlink 83 -+#define __NR_oldlstat 84 -+#define __NR_readlink 85 -+#define __NR_uselib 86 -+#define __NR_swapon 87 -+#define __NR_reboot 88 -+#define __NR_readdir 89 -+#define __NR_mmap 90 -+#define __NR_munmap 91 -+#define __NR_truncate 92 -+#define __NR_ftruncate 93 -+#define __NR_fchmod 94 -+#define __NR_fchown 95 -+#define __NR_getpriority 96 -+#define __NR_setpriority 97 -+#define __NR_profil 98 -+#define __NR_statfs 99 -+#define __NR_fstatfs 100 -+#define __NR_ioperm 101 -+#define __NR_socketcall 102 -+#define __NR_syslog 103 -+#define __NR_setitimer 104 -+#define __NR_getitimer 105 -+#define __NR_stat 106 -+#define __NR_lstat 107 -+#define __NR_fstat 108 -+#define __NR_olduname 109 -+#define __NR_iopl 110 -+#define __NR_vhangup 111 -+#define __NR_idle 112 -+#define __NR_vm86 113 -+#define __NR_wait4 114 -+#define __NR_swapoff 115 -+#define __NR_sysinfo 116 -+#define __NR_ipc 117 -+#define __NR_fsync 118 -+#define __NR_sigreturn 119 -+#define __NR_clone 120 -+#define __NR_setdomainname 121 -+#define __NR_uname 122 -+#define __NR_modify_ldt 123 -+#define __NR_adjtimex 124 -+#define __NR_mprotect 125 -+#define __NR_sigprocmask 126 -+#define __NR_create_module 127 -+#define __NR_init_module 128 -+#define __NR_delete_module 129 -+#define __NR_get_kernel_syms 130 -+#define __NR_quotactl 131 -+#define __NR_getpgid 132 -+#define __NR_fchdir 133 -+#define __NR_bdflush 134 -+#define __NR_sysfs 135 -+#define __NR_personality 136 -+#define __NR_afs_syscall 137 /* Syscall for Andrew File System */ -+#define __NR_setfsuid 138 -+#define __NR_setfsgid 139 -+#define __NR__llseek 140 -+#define __NR_getdents 141 -+#define __NR__newselect 142 -+#define __NR_flock 143 -+#define __NR_msync 144 -+#define __NR_readv 145 -+#define __NR_writev 146 -+#define __NR_getsid 147 -+#define __NR_fdatasync 148 -+#define __NR__sysctl 149 -+#define __NR_mlock 150 -+#define __NR_munlock 151 -+#define __NR_mlockall 152 -+#define __NR_munlockall 153 -+#define __NR_sched_setparam 154 -+#define __NR_sched_getparam 155 -+#define __NR_sched_setscheduler 156 -+#define __NR_sched_getscheduler 157 -+#define __NR_sched_yield 158 -+#define __NR_sched_get_priority_max 159 -+#define __NR_sched_get_priority_min 160 -+#define __NR_sched_rr_get_interval 161 -+#define __NR_nanosleep 162 -+#define __NR_mremap 163 -+#define __NR_setresuid 164 -+#define __NR_getresuid 165 -+#define __NR_query_module 166 -+#define __NR_poll 167 -+#define __NR_nfsservctl 168 -+#define __NR_setresgid 169 -+#define __NR_getresgid 170 -+#define __NR_prctl 171 -+#define __NR_rt_sigreturn 172 -+#define __NR_rt_sigaction 173 -+#define __NR_rt_sigprocmask 174 -+#define __NR_rt_sigpending 175 -+#define __NR_rt_sigtimedwait 176 -+#define __NR_rt_sigqueueinfo 177 -+#define __NR_rt_sigsuspend 178 -+#define __NR_pread 179 -+#define __NR_pwrite 180 -+#define __NR_chown 181 -+#define __NR_getcwd 182 -+#define __NR_capget 183 -+#define __NR_capset 184 -+#define __NR_sigaltstack 185 -+#define __NR_sendfile 186 -+#define __NR_getpmsg 187 /* some people actually want streams */ -+#define __NR_putpmsg 188 /* some people actually want streams */ -+#define __NR_vfork 189 -+#define __NR_ugetrlimit 190 /* SuS compliant getrlimit */ -+#define __NR_readahead 191 -+#define __NR_mmap2 192 -+#define __NR_truncate64 193 -+#define __NR_ftruncate64 194 -+#define __NR_stat64 195 -+#define __NR_lstat64 196 -+#define __NR_fstat64 197 -+#define __NR_pciconfig_read 198 -+#define __NR_pciconfig_write 199 -+#define __NR_pciconfig_iobase 200 -+#define __NR_multiplexer 201 -+#define __NR_getdents64 202 -+#define __NR_pivot_root 203 -+#define __NR_fcntl64 204 -+#define __NR_madvise 205 -+#define __NR_mincore 206 -+#define __NR_gettid 207 -+#define __NR_tkill 208 -+#define __NR_setxattr 209 -+#define __NR_lsetxattr 210 -+#define __NR_fsetxattr 211 -+#define __NR_getxattr 212 -+#define __NR_lgetxattr 213 -+#define __NR_fgetxattr 214 -+#define __NR_listxattr 215 -+#define __NR_llistxattr 216 -+#define __NR_flistxattr 217 -+#define __NR_removexattr 218 -+#define __NR_lremovexattr 219 -+#define __NR_fremovexattr 220 -+#define __NR_futex 221 -+#define __NR_sched_setaffinity 222 -+#define __NR_sched_getaffinity 223 -+/* 224 currently unused */ -+#define __NR_tuxcall 225 -+#define __NR_sendfile64 226 -+#define __NR_io_setup 227 -+#define __NR_io_destroy 228 -+#define __NR_io_getevents 229 -+#define __NR_io_submit 230 -+#define __NR_io_cancel 231 -+#define __NR_set_tid_address 232 -+#define __NR_fadvise64 233 -+#define __NR_exit_group 234 -+#define __NR_lookup_dcookie 235 -+#define __NR_epoll_create 236 -+#define __NR_epoll_ctl 237 -+#define __NR_epoll_wait 238 -+#define __NR_remap_file_pages 239 -+#define __NR_timer_create 240 -+#define __NR_timer_settime 241 -+#define __NR_timer_gettime 242 -+#define __NR_timer_getoverrun 243 -+#define __NR_timer_delete 244 -+#define __NR_clock_settime 245 -+#define __NR_clock_gettime 246 -+#define __NR_clock_getres 247 -+#define __NR_clock_nanosleep 248 -+#define __NR_swapcontext 249 -+#define __NR_tgkill 250 -+#define __NR_utimes 251 -+#define __NR_statfs64 252 -+#define __NR_fstatfs64 253 -+#define __NR_fadvise64_64 254 -+#define __NR_rtas 255 -+#define __NR_sys_debug_setcontext 256 -+/* Number 257 is reserved for vserver */ -+/* Number 258 is reserved for new sys_remap_file_pages */ -+/* Number 259 is reserved for new sys_mbind */ -+/* Number 260 is reserved for new sys_get_mempolicy */ -+/* Number 261 is reserved for new sys_set_mempolicy */ -+#define __NR_mq_open 262 -+#define __NR_mq_unlink 263 -+#define __NR_mq_timedsend 264 -+#define __NR_mq_timedreceive 265 -+#define __NR_mq_notify 266 -+#define __NR_mq_getsetattr 267 -+#define __NR_kexec_load 268 -+#define __NR_add_key 269 -+#define __NR_request_key 270 -+#define __NR_keyctl 271 -+#define __NR_waitid 272 -+#define __NR_ioprio_set 273 -+#define __NR_ioprio_get 274 -+#define __NR_inotify_init 275 -+#define __NR_inotify_add_watch 276 -+#define __NR_inotify_rm_watch 277 -+ -+ -+#define syscall_weak(name,wsym,sym) \ -+.text; \ -+.type wsym,@function; \ -+.weak wsym; \ -+wsym: ; \ -+.type sym,@function; \ -+.global sym; \ -+sym: \ -+ li 0,__NR_##name; \ -+ b __unified_syscall -+ -+#define syscall(name,sym) \ -+.text; \ -+.type sym,@function; \ -+.global sym; \ -+sym: \ -+ li 0,__NR_##name; \ -+ b __unified_syscall -+ -Index: dietlibc-0.30/powerpc/unified.S -=================================================================== ---- /dev/null -+++ dietlibc-0.30/powerpc/unified.S -@@ -0,0 +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 -+ 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 3,-1 -+ -+/* here we go and "reuse" the return for weak-void functions */ -+#include "dietuglyweaks.h" -+ -+ blr -+ -Index: dietlibc-0.30/powerpc64/Makefile.add -=================================================================== ---- /dev/null -+++ dietlibc-0.30/powerpc64/Makefile.add -@@ -0,0 +1,5 @@ -+ -+CFLAGS+=-Os -mpowerpc64 -+VPATH:=ppc64:syscalls.s:$(VPATH) -+ -+CC+=-m64 -Index: dietlibc-0.30/powerpc64/__longjmp.S -=================================================================== ---- /dev/null -+++ dietlibc-0.30/powerpc64/__longjmp.S -@@ -0,0 +1,54 @@ -+#include <setjmp.h> -+ -+ .quad .__longjmp,.TOC.@tocbase,0 -+ .text -+ .size __longjmp,24 -+ .type .__longjmp,@function -+ .globl .__longjmp -+.align 2 -+.__longjmp: -+ ld 1,(JB_GPR1*8)(3) -+ ld 2,(JB_GPR2*8)(3) -+ ld 0,(JB_LR*8)(3) -+ ld 14,((JB_GPRS+0)*8)(3) -+ lfd 14,((JB_FPRS+0)*8)(3) -+ ld 15,((JB_GPRS+1)*8)(3) -+ lfd 15,((JB_FPRS+1)*8)(3) -+ ld 16,((JB_GPRS+2)*8)(3) -+ lfd 16,((JB_FPRS+2)*8)(3) -+ ld 17,((JB_GPRS+3)*8)(3) -+ lfd 17,((JB_FPRS+3)*8)(3) -+ ld 18,((JB_GPRS+4)*8)(3) -+ lfd 18,((JB_FPRS+4)*8)(3) -+ ld 19,((JB_GPRS+5)*8)(3) -+ lfd 19,((JB_FPRS+5)*8)(3) -+ ld 20,((JB_GPRS+6)*8)(3) -+ lfd 20,((JB_FPRS+6)*8)(3) -+ mtlr 0 -+ ld 21,((JB_GPRS+7)*8)(3) -+ lfd 21,((JB_FPRS+7)*8)(3) -+ ld 22,((JB_GPRS+8)*8)(3) -+ lfd 22,((JB_FPRS+8)*8)(3) -+ ld 0,(JB_CR*8)(3) -+ ld 23,((JB_GPRS+9)*8)(3) -+ lfd 23,((JB_FPRS+9)*8)(3) -+ ld 24,((JB_GPRS+10)*8)(3) -+ lfd 24,((JB_FPRS+10)*8)(3) -+ ld 25,((JB_GPRS+11)*8)(3) -+ lfd 25,((JB_FPRS+11)*8)(3) -+ mtcrf 0xFF,0 -+ ld 26,((JB_GPRS+12)*8)(3) -+ lfd 26,((JB_FPRS+12)*8)(3) -+ ld 27,((JB_GPRS+13)*8)(3) -+ lfd 27,((JB_FPRS+13)*8)(3) -+ ld 28,((JB_GPRS+14)*8)(3) -+ lfd 28,((JB_FPRS+14)*8)(3) -+ ld 29,((JB_GPRS+15)*8)(3) -+ lfd 29,((JB_FPRS+15)*8)(3) -+ ld 30,((JB_GPRS+16)*8)(3) -+ lfd 30,((JB_FPRS+16)*8)(3) -+ ld 31,((JB_GPRS+17)*8)(3) -+ lfd 31,((JB_FPRS+17)*8)(3) -+ mr 3,4 -+ blr -+.size .__longjmp,.-.__longjmp -Index: dietlibc-0.30/powerpc64/__testandset.S -=================================================================== ---- /dev/null -+++ dietlibc-0.30/powerpc64/__testandset.S -@@ -0,0 +1,12 @@ -+.global __testandset -+.type __testandset,@function -+.align 2 -+__testandset: -+1: lwarx 5,0,3 -+ li 0,1 -+ stwcx. 0,0,3 -+ bne- 1b -+ mr 3,5 -+ blr -+.size __testandset,.-__testandset -+ -Index: dietlibc-0.30/powerpc64/clone.S -=================================================================== ---- /dev/null -+++ dietlibc-0.30/powerpc64/clone.S -@@ -0,0 +1,52 @@ -+#include <dietfeatures.h> -+#include "syscalls.h" -+#include <errno.h> -+ -+.text -+.weak clone -+clone: -+.global __clone -+__clone: -+ cmpwi 4,0 /* check have non null child_stack pointer */ -+ cmpwi cr1, 3,0 /* check have non null thread_funcion */ -+ cror eq,4*cr1+eq,eq /* now if eq is set one is or both are zero */ -+ beq .Lclone_error -+ -+ stdu 1,-64(1) /* alloc some space on the stack */ -+ std 29, 16(1) /* save r29,r30,r31 on stack */ -+ std 30, 24(1) -+ std 31, 32(1) -+ -+ rlwinm 4,4,0,0,27 /* mask out lower 4 bits */ -+ -+ /* move parameter to positions clone wants them */ -+ mr 29,3 /* r29 = r3 fn */ -+ mr 30,4 /* r30 = r4 stack */ -+ mr 31,6 /* r31 = r6 arg */ -+ mr 3, 5 /* r3 = r5 flags */ -+ -+ li 0, __NR_clone /* load syscall nr. */ -+ sc -+ -+ cmpwi cr1,3,0 /* compare return of syscall with 0 */ -+ crandc 4*cr1+eq,4*cr1+eq,so -+ bne .Lclone_parent /* return was non zero -> .Lclone_parent */ -+ -+ /* we are the cloned process */ -+ mr 1, 30 /* set stack pointer */ -+ mtctr 29 /* set count register to fn ? */ -+ mr 3, 31 /* set argument */ -+ bctrl /* branch trough count register and link */ -+ b _exit /* exit thread */ -+ -+.Lclone_parent: -+ ld 29,16(1) /* restore saved registers */ -+ ld 30,24(1) -+ ld 31,32(1) -+ addi 1, 1,64 /* free stack */ -+ bnslr+ /* had cloned a thread so return to parent */ -+ b error_unified_syscall -+ -+.Lclone_error: -+ li 3, EINVAL -+ b error_unified_syscall -Index: dietlibc-0.30/powerpc64/setjmp.S -=================================================================== ---- /dev/null -+++ dietlibc-0.30/powerpc64/setjmp.S -@@ -0,0 +1,59 @@ -+#include <setjmp.h> -+ -+#ifdef PIC -+#define JUMPTARGET(name) name##@plt -+#else -+#define JUMPTARGET(name) .name -+#endif -+ -+ .quad .__sigsetjmp,.TOC.@tocbase,0 -+ .text -+ .size __sigsetjmp,24 -+ .type .__sigsetjmp,@function -+ .globl .__sigsetjmp -+.align 2 -+.__sigsetjmp: -+ std 1,(JB_GPR1*8)(3) -+ mflr 0 -+ std 2,(JB_GPR2*8)(3) -+ std 14,((JB_GPRS+0)*8)(3) -+ stfd 14,((JB_FPRS+0)*8)(3) -+ std 0,(JB_LR*8)(3) -+ std 15,((JB_GPRS+1)*8)(3) -+ stfd 15,((JB_FPRS+1)*8)(3) -+ mfcr 0 -+ std 16,((JB_GPRS+2)*8)(3) -+ stfd 16,((JB_FPRS+2)*8)(3) -+ std 0,(JB_CR*8)(3) -+ std 17,((JB_GPRS+3)*8)(3) -+ stfd 17,((JB_FPRS+3)*8)(3) -+ std 18,((JB_GPRS+4)*8)(3) -+ stfd 18,((JB_FPRS+4)*8)(3) -+ std 19,((JB_GPRS+5)*8)(3) -+ stfd 19,((JB_FPRS+5)*8)(3) -+ std 20,((JB_GPRS+6)*8)(3) -+ stfd 20,((JB_FPRS+6)*8)(3) -+ std 21,((JB_GPRS+7)*8)(3) -+ stfd 21,((JB_FPRS+7)*8)(3) -+ std 22,((JB_GPRS+8)*8)(3) -+ stfd 22,((JB_FPRS+8)*8)(3) -+ std 23,((JB_GPRS+9)*8)(3) -+ stfd 23,((JB_FPRS+9)*8)(3) -+ std 24,((JB_GPRS+10)*8)(3) -+ stfd 24,((JB_FPRS+10)*8)(3) -+ std 25,((JB_GPRS+11)*8)(3) -+ stfd 25,((JB_FPRS+11)*8)(3) -+ std 26,((JB_GPRS+12)*8)(3) -+ stfd 26,((JB_FPRS+12)*8)(3) -+ std 27,((JB_GPRS+13)*8)(3) -+ stfd 27,((JB_FPRS+13)*8)(3) -+ std 28,((JB_GPRS+14)*8)(3) -+ stfd 28,((JB_FPRS+14)*8)(3) -+ std 29,((JB_GPRS+15)*8)(3) -+ stfd 29,((JB_FPRS+15)*8)(3) -+ std 30,((JB_GPRS+16)*8)(3) -+ stfd 30,((JB_FPRS+16)*8)(3) -+ std 31,((JB_GPRS+17)*8)(3) -+ stfd 31,((JB_FPRS+17)*8)(3) -+ b JUMPTARGET (__sigjmp_save) -+.size .__sigsetjmp,.-.__sigsetjmp -Index: dietlibc-0.30/powerpc64/start.S -=================================================================== ---- /dev/null -+++ dietlibc-0.30/powerpc64/start.S -@@ -0,0 +1,91 @@ -+#include "dietfeatures.h" -+ -+ .section ".text" -+ .align 2 -+ .globl ._start -+ .type ._start,@function -+ .globl _start -+ .section ".opd","aw" -+_start: -+ .quad ._start -+ .quad .TOC.@tocbase, 0 -+ .previous -+._start: -+ -+/* -+ .section ".text" -+ .align 2 -+ .globl ._start -+ .type ._start,@function -+ .globl _start -+ .section ".opd","aw" -+_start: -+ .quad ._start -+ .quad .TOC.@tocbase, 0 -+ .previous -+._start: -+*/ -+ /* Save the stack pointer, in case we're statically linked under Linux. */ -+ mr 9,1 -+ /* Set up an initial stack frame, and clear the LR. */ -+ clrrdi 1,1,4 -+ li 0,0 -+ stdu 1,-128(1) -+ mtlr 0 -+ std 0,0(1) -+ -+ /* r9 contains the initial stack pointer -+ argc = (r9) -+ argv = (r9+4) -+ envp = argv+(argc+1)*4 */ -+ -+ lis 14,__libc_stack_end@highesta -+ ori 14,14,__libc_stack_end@highera -+ sldi 14,14,32 -+ oris 14,14,__libc_stack_end@ha -+ std 9,__libc_stack_end@l(14) -+ -+ ldu 3,0(9) /* argc */ -+ addi 4,9,8 /* argv */ -+ add 5,0,3 /* argc... */ -+ addi 5,5,1 /* argc+1...*/ -+ slwi 5,5,3 /* (argc+1)*8 */ -+ add 5,5,4 /* argv+(argc+1)*8 */ -+ -+ lis 14,environ@highesta -+ ori 14,14,environ@highera -+ sldi 14,14,32 -+ oris 14,14,environ@ha -+ std 5,environ@l(14) -+ -+#ifdef WANT_DYNAMIC -+/* #warning dynamic */ -+ mr 6,7 -+ bl ._dyn_start -+#else -+/* #warning static */ -+#define DOTIFY(name) .##name -+ bl DOTIFY(CALL_IN_STARTCODE) -+#endif -+ b .exit -+ -+.LT_start: -+ .long 0 -+ .quad 0x000c000000000000 | 0x0000200000000000 | 0x0000004000000000 -+ .long .LT_start-._start -+ .short .LT_start_name_end-.LT_start_name_start -+.LT_start_name_start: -+ .ascii "_start" -+.LT_start_name_end: -+ .align 2 -+ .size _start,.-_start -+ -+/* Define a symbol for the first piece of initialized data. */ -+ .section ".data" -+__data_start: -+ -+/* this is needed for libgcc_eh.a - see gcc-3.4/gcc/config/rs6000/linux-unwind.h */ -+ .weak __libc_stack_end -+ .lcomm __libc_stack_end,8,8 -+ .type __libc_stack_end,@object -+ -Index: dietlibc-0.30/powerpc64/syscalls.h -=================================================================== ---- /dev/null -+++ dietlibc-0.30/powerpc64/syscalls.h -@@ -0,0 +1,317 @@ -+ -+#define __NR_exit 1 -+#define __NR_fork 2 -+#define __NR_read 3 -+#define __NR_write 4 -+#define __NR_open 5 -+#define __NR_close 6 -+#define __NR_waitpid 7 -+#define __NR_creat 8 -+#define __NR_link 9 -+#define __NR_unlink 10 -+#define __NR_execve 11 -+#define __NR_chdir 12 -+#define __NR_time 13 -+#define __NR_mknod 14 -+#define __NR_chmod 15 -+#define __NR_lchown 16 -+#define __NR_break 17 -+#define __NR_oldstat 18 -+#define __NR_lseek 19 -+#define __NR_getpid 20 -+#define __NR_mount 21 -+#define __NR_umount 22 -+#define __NR_setuid 23 -+#define __NR_getuid 24 -+#define __NR_stime 25 -+#define __NR_ptrace 26 -+#define __NR_alarm 27 -+#define __NR_oldfstat 28 -+#define __NR_pause 29 -+#define __NR_utime 30 -+#define __NR_stty 31 -+#define __NR_gtty 32 -+#define __NR_access 33 -+#define __NR_nice 34 -+#define __NR_ftime 35 -+#define __NR_sync 36 -+#define __NR_kill 37 -+#define __NR_rename 38 -+#define __NR_mkdir 39 -+#define __NR_rmdir 40 -+#define __NR_dup 41 -+#define __NR_pipe 42 -+#define __NR_times 43 -+#define __NR_prof 44 -+#define __NR_brk 45 -+#define __NR_setgid 46 -+#define __NR_getgid 47 -+#define __NR_signal 48 -+#define __NR_geteuid 49 -+#define __NR_getegid 50 -+#define __NR_acct 51 -+#define __NR_umount2 52 -+#define __NR_lock 53 -+#define __NR_ioctl 54 -+#define __NR_fcntl 55 -+#define __NR_mpx 56 -+#define __NR_setpgid 57 -+#define __NR_ulimit 58 -+#define __NR_oldolduname 59 -+#define __NR_umask 60 -+#define __NR_chroot 61 -+#define __NR_ustat 62 -+#define __NR_dup2 63 -+#define __NR_getppid 64 -+#define __NR_getpgrp 65 -+#define __NR_setsid 66 -+#define __NR_sigaction 67 -+#define __NR_sgetmask 68 -+#define __NR_ssetmask 69 -+#define __NR_setreuid 70 -+#define __NR_setregid 71 -+#define __NR_sigsuspend 72 -+#define __NR_sigpending 73 -+#define __NR_sethostname 74 -+#define __NR_setrlimit 75 -+#define __NR_getrlimit 76 -+#define __NR_getrusage 77 -+#define __NR_gettimeofday 78 -+#define __NR_settimeofday 79 -+#define __NR_getgroups 80 -+#define __NR_setgroups 81 -+#define __NR_select 82 -+#define __NR_symlink 83 -+#define __NR_oldlstat 84 -+#define __NR_readlink 85 -+#define __NR_uselib 86 -+#define __NR_swapon 87 -+#define __NR_reboot 88 -+#define __NR_readdir 89 -+#define __NR_mmap 90 -+#define __NR_munmap 91 -+#define __NR_truncate 92 -+#define __NR_ftruncate 93 -+#define __NR_fchmod 94 -+#define __NR_fchown 95 -+#define __NR_getpriority 96 -+#define __NR_setpriority 97 -+#define __NR_profil 98 -+#define __NR_statfs 99 -+#define __NR_fstatfs 100 -+#define __NR_ioperm 101 -+#define __NR_socketcall 102 -+#define __NR_syslog 103 -+#define __NR_setitimer 104 -+#define __NR_getitimer 105 -+#define __NR_stat 106 -+#define __NR_lstat 107 -+#define __NR_fstat 108 -+#define __NR_olduname 109 -+#define __NR_iopl 110 -+#define __NR_vhangup 111 -+#define __NR_idle 112 -+#define __NR_vm86 113 -+#define __NR_wait4 114 -+#define __NR_swapoff 115 -+#define __NR_sysinfo 116 -+#define __NR_ipc 117 -+#define __NR_fsync 118 -+#define __NR_sigreturn 119 -+#define __NR_clone 120 -+#define __NR_setdomainname 121 -+#define __NR_uname 122 -+#define __NR_modify_ldt 123 -+#define __NR_adjtimex 124 -+#define __NR_mprotect 125 -+#define __NR_sigprocmask 126 -+#define __NR_create_module 127 -+#define __NR_init_module 128 -+#define __NR_delete_module 129 -+#define __NR_get_kernel_syms 130 -+#define __NR_quotactl 131 -+#define __NR_getpgid 132 -+#define __NR_fchdir 133 -+#define __NR_bdflush 134 -+#define __NR_sysfs 135 -+#define __NR_personality 136 -+#define __NR_afs_syscall 137 /* Syscall for Andrew File System */ -+#define __NR_setfsuid 138 -+#define __NR_setfsgid 139 -+#define __NR__llseek 140 -+#define __NR_getdents 141 -+#define __NR__newselect 142 -+#define __NR_flock 143 -+#define __NR_msync 144 -+#define __NR_readv 145 -+#define __NR_writev 146 -+#define __NR_getsid 147 -+#define __NR_fdatasync 148 -+#define __NR__sysctl 149 -+#define __NR_mlock 150 -+#define __NR_munlock 151 -+#define __NR_mlockall 152 -+#define __NR_munlockall 153 -+#define __NR_sched_setparam 154 -+#define __NR_sched_getparam 155 -+#define __NR_sched_setscheduler 156 -+#define __NR_sched_getscheduler 157 -+#define __NR_sched_yield 158 -+#define __NR_sched_get_priority_max 159 -+#define __NR_sched_get_priority_min 160 -+#define __NR_sched_rr_get_interval 161 -+#define __NR_nanosleep 162 -+#define __NR_mremap 163 -+#define __NR_setresuid 164 -+#define __NR_getresuid 165 -+#define __NR_query_module 166 -+#define __NR_poll 167 -+#define __NR_nfsservctl 168 -+#define __NR_setresgid 169 -+#define __NR_getresgid 170 -+#define __NR_prctl 171 -+#define __NR_rt_sigreturn 172 -+#define __NR_rt_sigaction 173 -+#define __NR_rt_sigprocmask 174 -+#define __NR_rt_sigpending 175 -+#define __NR_rt_sigtimedwait 176 -+#define __NR_rt_sigqueueinfo 177 -+#define __NR_rt_sigsuspend 178 -+#define __NR_pread 179 -+#define __NR_pwrite 180 -+#define __NR_chown 181 -+#define __NR_getcwd 182 -+#define __NR_capget 183 -+#define __NR_capset 184 -+#define __NR_sigaltstack 185 -+#define __NR_sendfile 186 -+#define __NR_getpmsg 187 /* some people actually want streams */ -+#define __NR_putpmsg 188 /* some people actually want streams */ -+#define __NR_vfork 189 -+#define __NR_ugetrlimit 190 /* SuS compliant getrlimit */ -+#define __NR_readahead 191 -+/* #define __NR_mmap2 192 32bit only */ -+/* #define __NR_truncate64 193 32bit only */ -+/* #define __NR_ftruncate64 194 32bit only */ -+/* #define __NR_stat64 195 32bit only */ -+/* #define __NR_lstat64 196 32bit only */ -+/* #define __NR_fstat64 197 32bit only */ -+#define __NR_pciconfig_read 198 -+#define __NR_pciconfig_write 199 -+#define __NR_pciconfig_iobase 200 -+#define __NR_multiplexer 201 -+#define __NR_getdents64 202 -+#define __NR_pivot_root 203 -+/* #define __NR_fcntl64 204 32bit only */ -+#define __NR_madvise 205 -+#define __NR_mincore 206 -+#define __NR_gettid 207 -+#define __NR_tkill 208 -+#define __NR_setxattr 209 -+#define __NR_lsetxattr 210 -+#define __NR_fsetxattr 211 -+#define __NR_getxattr 212 -+#define __NR_lgetxattr 213 -+#define __NR_fgetxattr 214 -+#define __NR_listxattr 215 -+#define __NR_llistxattr 216 -+#define __NR_flistxattr 217 -+#define __NR_removexattr 218 -+#define __NR_lremovexattr 219 -+#define __NR_fremovexattr 220 -+#define __NR_futex 221 -+#define __NR_sched_setaffinity 222 -+#define __NR_sched_getaffinity 223 -+/* 224 currently unused */ -+#define __NR_tuxcall 225 -+/* #define __NR_sendfile64 226 32bit only */ -+#define __NR_io_setup 227 -+#define __NR_io_destroy 228 -+#define __NR_io_getevents 229 -+#define __NR_io_submit 230 -+#define __NR_io_cancel 231 -+#define __NR_set_tid_address 232 -+#define __NR_fadvise64 233 -+#define __NR_exit_group 234 -+#define __NR_lookup_dcookie 235 -+#define __NR_epoll_create 236 -+#define __NR_epoll_ctl 237 -+#define __NR_epoll_wait 238 -+#define __NR_remap_file_pages 239 -+#define __NR_timer_create 240 -+#define __NR_timer_settime 241 -+#define __NR_timer_gettime 242 -+#define __NR_timer_getoverrun 243 -+#define __NR_timer_delete 244 -+#define __NR_clock_settime 245 -+#define __NR_clock_gettime 246 -+#define __NR_clock_getres 247 -+#define __NR_clock_nanosleep 248 -+#define __NR_swapcontext 249 -+#define __NR_tgkill 250 -+#define __NR_utimes 251 -+#define __NR_statfs64 252 -+#define __NR_fstatfs64 253 -+/* #define __NR_fadvise64_64 254 32bit only */ -+#define __NR_rtas 255 -+/* Number 256 is reserved for sys_debug_setcontext */ -+/* Number 257 is reserved for vserver */ -+/* Number 258 is reserved for new sys_remap_file_pages */ -+#define __NR_mbind 259 -+#define __NR_get_mempolicy 260 -+#define __NR_set_mempolicy 261 -+#define __NR_mq_open 262 -+#define __NR_mq_unlink 263 -+#define __NR_mq_timedsend 264 -+#define __NR_mq_timedreceive 265 -+#define __NR_mq_notify 266 -+#define __NR_mq_getsetattr 267 -+#define __NR_kexec_load 268 -+#define __NR_add_key 269 -+#define __NR_request_key 270 -+#define __NR_keyctl 271 -+#define __NR_waitid 272 -+#define __NR_ioprio_set 273 -+#define __NR_ioprio_get 274 -+#define __NR_inotify_init 275 -+#define __NR_inotify_add_watch 276 -+#define __NR_inotify_rm_watch 277 -+ -+ -+ -+#define __diet_proto_common(sym) \ -+ .section ".opd","aw"; \ -+ .align 3; \ -+sym: \ -+ .quad .sym,.TOC.@tocbase,0; \ -+ .previous; \ -+ .size sym,24; \ -+ .type .sym,@function -+ -+#define diet_proto_weak(sym) \ -+ .weak sym; \ -+ .weak .sym; \ -+ __diet_proto_common(sym) -+ -+#define diet_proto(sym) \ -+ .globl sym; \ -+ .globl .sym; \ -+ __diet_proto_common(sym) -+ -+ -+#define syscall_weak(name,wsym,sym) \ -+.text; \ -+diet_proto_weak(wsym); \ -+diet_proto(sym); \ -+.wsym: \ -+.sym: \ -+ li 0,__NR_##name; \ -+ b __unified_syscall -+ -+#define syscall(name,sym) \ -+.text; \ -+diet_proto(sym); \ -+.sym: \ -+ li 0,__NR_##name; \ -+ b __unified_syscall -+ -Index: dietlibc-0.30/powerpc64/umount.S -=================================================================== ---- /dev/null -+++ dietlibc-0.30/powerpc64/umount.S -@@ -0,0 +1,8 @@ -+#include "syscalls.h" -+ -+ .text -+diet_proto(umount) -+.umount: -+ li 0, __NR_umount2 -+ li 4, 0 -+ b __unified_syscall -Index: dietlibc-0.30/powerpc64/unified.S -=================================================================== ---- /dev/null -+++ dietlibc-0.30/powerpc64/unified.S -@@ -0,0 +1,71 @@ -+#include <dietfeatures.h> -+#include "syscalls.h" -+ -+ .text -+.exit: -+ .weak .exit -+._exit: -+ li 0,__NR_exit -+ .global __unified_syscall -+__unified_syscall: -+ sc -+ bnslr+ -+ -+ .global error_unified_syscall -+error_unified_syscall: -+ -+#ifdef WANT_THREAD_SAFE -+ stdu 1,-128(1) -+ mflr 0 -+ std 0,20(1) -+ std 3,12(1) -+ bl .__errno_location -+ ld 0,12(1) -+ stw 0,0(3) -+ ld 0,20(1) -+ mtlr 0 -+ addi 1,1,128 -+#else -+ lis 9,errno@highesta -+ ori 9,9,errno@highera -+ sldi 9,9,32 -+ oris 9,9,errno@ha -+ stw 3,errno@l(9) -+#endif -+ li 3,-1 -+ -+/* here we go and "reuse" the return for weak-void functions */ -+//#include "dietuglyweaks.h" -+.__thread_doexit: -+ .weak .__thread_doexit -+.__fflush_stdin: -+ .weak .__fflush_stdin -+.__fflush_stdout: -+ .weak .__fflush_stdout -+.__fflush_stderr: -+ .weak .__fflush_stderr -+.flockfile: -+ .weak .flockfile -+.funlockfile: -+ .weak .funlockfile -+.__nop: -+ .weak .__nop -+.__you_tried_to_link_a_dietlibc_object_against_glibc: -+ .weak .__you_tried_to_link_a_dietlibc_object_against_glibc -+ -+ blr -+ .long 0 -+ .byte 0,0,0,1,128,0,0,0 -+ .size ._exit,.-._exit -+ .size .exit,.-.exit -+ -+diet_proto_weak(__thread_doexit) -+diet_proto_weak(__fflush_stdin) -+diet_proto_weak(__fflush_stdout) -+diet_proto_weak(__fflush_stderr) -+diet_proto_weak(flockfile) -+diet_proto_weak(funlockfile) -+diet_proto_weak(__nop) -+diet_proto_weak(__you_tried_to_link_a_dietlibc_object_against_glibc) -+diet_proto_weak(exit) -+diet_proto(_exit) -Index: dietlibc-0.30/ppc/Makefile.add -=================================================================== ---- dietlibc-0.30.orig/ppc/Makefile.add -+++ /dev/null -@@ -1,3 +0,0 @@ -- --CFLAGS+=-mpowerpc-gpopt -mpowerpc-gfxopt -Os --VPATH:=ppc:syscalls.s:$(VPATH) -Index: dietlibc-0.30/ppc/__longjmp.S -=================================================================== ---- dietlibc-0.30.orig/ppc/__longjmp.S -+++ /dev/null -@@ -1,59 +0,0 @@ --#include <setjmp.h> -- -- --#ifdef PIC --#define JUMPTARGET(name) name##@plt --#else --#define JUMPTARGET(name) name --#endif -- --.global __longjmp --.type __longjmp,@function --.align 2 --__longjmp: -- lwz 1,(JB_GPR1*4)(3) -- lwz 2,(JB_GPR2*4)(3) -- lwz 0,(JB_LR*4)(3) -- lwz 14,((JB_GPRS+0)*4)(3) -- lfd 14,((JB_FPRS+0*2)*4)(3) -- lwz 15,((JB_GPRS+1)*4)(3) -- lfd 15,((JB_FPRS+1*2)*4)(3) -- lwz 16,((JB_GPRS+2)*4)(3) -- lfd 16,((JB_FPRS+2*2)*4)(3) -- lwz 17,((JB_GPRS+3)*4)(3) -- lfd 17,((JB_FPRS+3*2)*4)(3) -- lwz 18,((JB_GPRS+4)*4)(3) -- lfd 18,((JB_FPRS+4*2)*4)(3) -- lwz 19,((JB_GPRS+5)*4)(3) -- lfd 19,((JB_FPRS+5*2)*4)(3) -- lwz 20,((JB_GPRS+6)*4)(3) -- lfd 20,((JB_FPRS+6*2)*4)(3) -- mtlr 0 -- lwz 21,((JB_GPRS+7)*4)(3) -- lfd 21,((JB_FPRS+7*2)*4)(3) -- lwz 22,((JB_GPRS+8)*4)(3) -- lfd 22,((JB_FPRS+8*2)*4)(3) -- lwz 0,(JB_CR*4)(3) -- lwz 23,((JB_GPRS+9)*4)(3) -- lfd 23,((JB_FPRS+9*2)*4)(3) -- lwz 24,((JB_GPRS+10)*4)(3) -- lfd 24,((JB_FPRS+10*2)*4)(3) -- lwz 25,((JB_GPRS+11)*4)(3) -- lfd 25,((JB_FPRS+11*2)*4)(3) -- mtcrf 0xFF,0 -- lwz 26,((JB_GPRS+12)*4)(3) -- lfd 26,((JB_FPRS+12*2)*4)(3) -- lwz 27,((JB_GPRS+13)*4)(3) -- lfd 27,((JB_FPRS+13*2)*4)(3) -- lwz 28,((JB_GPRS+14)*4)(3) -- lfd 28,((JB_FPRS+14*2)*4)(3) -- lwz 29,((JB_GPRS+15)*4)(3) -- lfd 29,((JB_FPRS+15*2)*4)(3) -- lwz 30,((JB_GPRS+16)*4)(3) -- lfd 30,((JB_FPRS+16*2)*4)(3) -- lwz 31,((JB_GPRS+17)*4)(3) -- lfd 31,((JB_FPRS+17*2)*4)(3) -- mr 3,4 -- blr --.size __longjmp,.-__longjmp -- -Index: dietlibc-0.30/ppc/__testandset.S -=================================================================== ---- dietlibc-0.30.orig/ppc/__testandset.S -+++ /dev/null -@@ -1,12 +0,0 @@ --.global __testandset --.type __testandset,@function --.align 2 --__testandset: --1: lwarx 5,0,3 -- li 0,1 -- stwcx. 0,0,3 -- bne- 1b -- mr 3,5 -- blr --.size __testandset,.-__testandset -- -Index: dietlibc-0.30/ppc/clone.S -=================================================================== ---- dietlibc-0.30.orig/ppc/clone.S -+++ /dev/null -@@ -1,48 +0,0 @@ --#include <dietfeatures.h> --#include "syscalls.h" --#include <errno.h> -- --.text --.weak clone --clone: --.global __clone --__clone: -- cmpwi 4,0 /* check have non null child_stack pointer */ -- cmpwi cr1, 3,0 /* check have non null thread_funcion */ -- cror eq,4*cr1+eq,eq /* now if eq is set one is or both are zero */ -- beq .Lclone_error -- -- stwu 1,-32(1) /* alloc some space on the stack */ -- stmw 29, 16(1) /* save r29,r30,r31 on stack */ -- -- rlwinm 4,4,0,0,27 /* mask out lower 4 bits */ -- -- /* move parameter to positions clone wants them */ -- mr 29,3 /* r29 = r3 fn */ -- mr 30,4 /* r30 = r4 stack */ -- mr 31,6 /* r31 = r6 arg */ -- mr 3, 5 /* r3 = r5 flags */ -- -- li 0, __NR_clone /* load syscall nr. */ -- sc -- -- cmpwi cr1,3,0 /* compare return of syscall with 0 */ -- crandc 4*cr1+eq,4*cr1+eq,so -- bne .Lclone_parent /* return was non zero -> .Lclone_parent */ -- -- /* we are the cloned process */ -- mr 1, 30 /* set stack pointer */ -- mtctr 29 /* set count register to fn ? */ -- mr 3, 31 /* set argument */ -- bctrl /* branch trough count register and link */ -- b _exit /* exit thread */ -- --.Lclone_parent: -- lmw 29,16(1) /* restore saved registers */ -- addi 1, 1,32 /* free stack */ -- bnslr+ /* had cloned a thread so return to parent */ -- b error_unified_syscall -- --.Lclone_error: -- li 3, EINVAL -- b error_unified_syscall -Index: dietlibc-0.30/ppc/mmap.c -=================================================================== ---- dietlibc-0.30.orig/ppc/mmap.c -+++ /dev/null -@@ -1,40 +0,0 @@ --#include "dietfeatures.h" --#include <sys/types.h> --#include <errno.h> --#include "syscalls.h" -- --int mmap(void*start,size_t length,int prot,int flags,int fd,off_t offset) { -- unsigned long __sc_ret, __sc_err; -- { -- register unsigned long __sc_0 __asm__ ("r0"); -- register unsigned long __sc_3 __asm__ ("r3"); -- register unsigned long __sc_4 __asm__ ("r4"); -- register unsigned long __sc_5 __asm__ ("r5"); -- register unsigned long __sc_6 __asm__ ("r6"); -- register unsigned long __sc_7 __asm__ ("r7"); -- register unsigned long __sc_8 __asm__ ("r8"); -- -- __sc_3 = (unsigned long) (start); -- __sc_4 = (unsigned long) (length); -- __sc_5 = (unsigned long) (prot); -- __sc_6 = (unsigned long) (flags); -- __sc_7 = (unsigned long) (fd); -- __sc_8 = (unsigned long) (offset); -- __sc_0 = __NR_mmap; -- __asm__ __volatile__ -- ("sc \n\t" -- "mfcr %1 " -- : "=&r" (__sc_3), "=&r" (__sc_0) -- : "0" (__sc_3), "1" (__sc_0), -- "r" (__sc_4), -- "r" (__sc_5), -- "r" (__sc_6), -- "r" (__sc_7), -- "r" (__sc_8) -- : "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"); -- __sc_ret = __sc_3; -- __sc_err = __sc_0; -- } -- return (__sc_err & 0x10000000 ? errno = __sc_ret, __sc_ret = -1 : 0), -- (int) __sc_ret; --} -Index: dietlibc-0.30/ppc/setjmp.S -=================================================================== ---- dietlibc-0.30.orig/ppc/setjmp.S -+++ /dev/null -@@ -1,56 +0,0 @@ --#include <setjmp.h> -- --#ifdef PIC --#define JUMPTARGET(name) name##@plt --#else --#define JUMPTARGET(name) name --#endif -- --.global __sigsetjmp --.type __sigsetjmp,@function --.align 2 --__sigsetjmp: -- stw 1,(JB_GPR1*4)(3) -- mflr 0 -- stw 2,(JB_GPR2*4)(3) -- stw 14,((JB_GPRS+0)*4)(3) -- stfd 14,((JB_FPRS+0*2)*4)(3) -- stw 0,(JB_LR*4)(3) -- stw 15,((JB_GPRS+1)*4)(3) -- stfd 15,((JB_FPRS+1*2)*4)(3) -- mfcr 0 -- stw 16,((JB_GPRS+2)*4)(3) -- stfd 16,((JB_FPRS+2*2)*4)(3) -- stw 0,(JB_CR*4)(3) -- stw 17,((JB_GPRS+3)*4)(3) -- stfd 17,((JB_FPRS+3*2)*4)(3) -- stw 18,((JB_GPRS+4)*4)(3) -- stfd 18,((JB_FPRS+4*2)*4)(3) -- stw 19,((JB_GPRS+5)*4)(3) -- stfd 19,((JB_FPRS+5*2)*4)(3) -- stw 20,((JB_GPRS+6)*4)(3) -- stfd 20,((JB_FPRS+6*2)*4)(3) -- stw 21,((JB_GPRS+7)*4)(3) -- stfd 21,((JB_FPRS+7*2)*4)(3) -- stw 22,((JB_GPRS+8)*4)(3) -- stfd 22,((JB_FPRS+8*2)*4)(3) -- stw 23,((JB_GPRS+9)*4)(3) -- stfd 23,((JB_FPRS+9*2)*4)(3) -- stw 24,((JB_GPRS+10)*4)(3) -- stfd 24,((JB_FPRS+10*2)*4)(3) -- stw 25,((JB_GPRS+11)*4)(3) -- stfd 25,((JB_FPRS+11*2)*4)(3) -- stw 26,((JB_GPRS+12)*4)(3) -- stfd 26,((JB_FPRS+12*2)*4)(3) -- stw 27,((JB_GPRS+13)*4)(3) -- stfd 27,((JB_FPRS+13*2)*4)(3) -- stw 28,((JB_GPRS+14)*4)(3) -- stfd 28,((JB_FPRS+14*2)*4)(3) -- stw 29,((JB_GPRS+15)*4)(3) -- stfd 29,((JB_FPRS+15*2)*4)(3) -- stw 30,((JB_GPRS+16)*4)(3) -- stfd 30,((JB_FPRS+16*2)*4)(3) -- stw 31,((JB_GPRS+17)*4)(3) -- stfd 31,((JB_FPRS+17*2)*4)(3) -- b JUMPTARGET (__sigjmp_save) --.size __sigsetjmp,.-__sigsetjmp -Index: dietlibc-0.30/ppc/start.S -=================================================================== ---- dietlibc-0.30.orig/ppc/start.S -+++ /dev/null -@@ -1,52 +0,0 @@ --#include "dietfeatures.h" -- --.text --.global _start --.type _start,@function --_start: -- /* Save the stack pointer, in case we're statically linked under Linux. */ -- mr 9,1 -- /* Set up an initial stack frame, and clear the LR. */ -- clrrwi 1,1,4 -- li 0,0 -- stwu 1,-16(1) -- mtlr 0 -- stw 0,0(1) -- -- /* r9 contains the initial stack pointer -- argc = (r9) -- argv = (r9+4) -- envp = argv+(argc+1)*4 */ -- -- lis 14,__libc_stack_end@ha -- stw 9,__libc_stack_end@l(14) -- -- lwzu 3,0(9) /* argc */ -- addi 4,9,4 /* argv */ -- add 5,0,3 /* argc... */ -- addi 5,5,1 /* argc+1...*/ -- slwi 5,5,2 /* (argc+1)*4 */ -- add 5,5,4 /* argv+(argc+1)*4 */ -- -- lis 14,environ@ha -- stw 5,environ@l(14) -- --#ifdef WANT_DYNAMIC -- mr 6,7 -- bl _dyn_start --#else -- bl CALL_IN_STARTCODE --#endif -- b exit --.size _start,.-_start -- -- --/* Define a symbol for the first piece of initialized data. */ -- .section ".data" --__data_start: -- --/* this is needed for libgcc_eh.a - see gcc-3.4/gcc/config/rs6000/linux-unwind.h */ -- .weak __libc_stack_end -- .lcomm __libc_stack_end,4,4 -- .type __libc_stack_end,@object -- -Index: dietlibc-0.30/ppc/syscalls.h -=================================================================== ---- dietlibc-0.30.orig/ppc/syscalls.h -+++ /dev/null -@@ -1,299 +0,0 @@ -- --#define __NR_exit 1 --#define __NR_fork 2 --#define __NR_read 3 --#define __NR_write 4 --#define __NR_open 5 --#define __NR_close 6 --#define __NR_waitpid 7 --#define __NR_creat 8 --#define __NR_link 9 --#define __NR_unlink 10 --#define __NR_execve 11 --#define __NR_chdir 12 --#define __NR_time 13 --#define __NR_mknod 14 --#define __NR_chmod 15 --#define __NR_lchown 16 --#define __NR_break 17 --#define __NR_oldstat 18 --#define __NR_lseek 19 --#define __NR_getpid 20 --#define __NR_mount 21 --#define __NR_umount 22 --#define __NR_setuid 23 --#define __NR_getuid 24 --#define __NR_stime 25 --#define __NR_ptrace 26 --#define __NR_alarm 27 --#define __NR_oldfstat 28 --#define __NR_pause 29 --#define __NR_utime 30 --#define __NR_stty 31 --#define __NR_gtty 32 --#define __NR_access 33 --#define __NR_nice 34 --#define __NR_ftime 35 --#define __NR_sync 36 --#define __NR_kill 37 --#define __NR_rename 38 --#define __NR_mkdir 39 --#define __NR_rmdir 40 --#define __NR_dup 41 --#define __NR_pipe 42 --#define __NR_times 43 --#define __NR_prof 44 --#define __NR_brk 45 --#define __NR_setgid 46 --#define __NR_getgid 47 --#define __NR_signal 48 --#define __NR_geteuid 49 --#define __NR_getegid 50 --#define __NR_acct 51 --#define __NR_umount2 52 --#define __NR_lock 53 --#define __NR_ioctl 54 --#define __NR_fcntl 55 --#define __NR_mpx 56 --#define __NR_setpgid 57 --#define __NR_ulimit 58 --#define __NR_oldolduname 59 --#define __NR_umask 60 --#define __NR_chroot 61 --#define __NR_ustat 62 --#define __NR_dup2 63 --#define __NR_getppid 64 --#define __NR_getpgrp 65 --#define __NR_setsid 66 --#define __NR_sigaction 67 --#define __NR_sgetmask 68 --#define __NR_ssetmask 69 --#define __NR_setreuid 70 --#define __NR_setregid 71 --#define __NR_sigsuspend 72 --#define __NR_sigpending 73 --#define __NR_sethostname 74 --#define __NR_setrlimit 75 --#define __NR_getrlimit 76 --#define __NR_getrusage 77 --#define __NR_gettimeofday 78 --#define __NR_settimeofday 79 --#define __NR_getgroups 80 --#define __NR_setgroups 81 --#define __NR_select 82 --#define __NR_symlink 83 --#define __NR_oldlstat 84 --#define __NR_readlink 85 --#define __NR_uselib 86 --#define __NR_swapon 87 --#define __NR_reboot 88 --#define __NR_readdir 89 --#define __NR_mmap 90 --#define __NR_munmap 91 --#define __NR_truncate 92 --#define __NR_ftruncate 93 --#define __NR_fchmod 94 --#define __NR_fchown 95 --#define __NR_getpriority 96 --#define __NR_setpriority 97 --#define __NR_profil 98 --#define __NR_statfs 99 --#define __NR_fstatfs 100 --#define __NR_ioperm 101 --#define __NR_socketcall 102 --#define __NR_syslog 103 --#define __NR_setitimer 104 --#define __NR_getitimer 105 --#define __NR_stat 106 --#define __NR_lstat 107 --#define __NR_fstat 108 --#define __NR_olduname 109 --#define __NR_iopl 110 --#define __NR_vhangup 111 --#define __NR_idle 112 --#define __NR_vm86 113 --#define __NR_wait4 114 --#define __NR_swapoff 115 --#define __NR_sysinfo 116 --#define __NR_ipc 117 --#define __NR_fsync 118 --#define __NR_sigreturn 119 --#define __NR_clone 120 --#define __NR_setdomainname 121 --#define __NR_uname 122 --#define __NR_modify_ldt 123 --#define __NR_adjtimex 124 --#define __NR_mprotect 125 --#define __NR_sigprocmask 126 --#define __NR_create_module 127 --#define __NR_init_module 128 --#define __NR_delete_module 129 --#define __NR_get_kernel_syms 130 --#define __NR_quotactl 131 --#define __NR_getpgid 132 --#define __NR_fchdir 133 --#define __NR_bdflush 134 --#define __NR_sysfs 135 --#define __NR_personality 136 --#define __NR_afs_syscall 137 /* Syscall for Andrew File System */ --#define __NR_setfsuid 138 --#define __NR_setfsgid 139 --#define __NR__llseek 140 --#define __NR_getdents 141 --#define __NR__newselect 142 --#define __NR_flock 143 --#define __NR_msync 144 --#define __NR_readv 145 --#define __NR_writev 146 --#define __NR_getsid 147 --#define __NR_fdatasync 148 --#define __NR__sysctl 149 --#define __NR_mlock 150 --#define __NR_munlock 151 --#define __NR_mlockall 152 --#define __NR_munlockall 153 --#define __NR_sched_setparam 154 --#define __NR_sched_getparam 155 --#define __NR_sched_setscheduler 156 --#define __NR_sched_getscheduler 157 --#define __NR_sched_yield 158 --#define __NR_sched_get_priority_max 159 --#define __NR_sched_get_priority_min 160 --#define __NR_sched_rr_get_interval 161 --#define __NR_nanosleep 162 --#define __NR_mremap 163 --#define __NR_setresuid 164 --#define __NR_getresuid 165 --#define __NR_query_module 166 --#define __NR_poll 167 --#define __NR_nfsservctl 168 --#define __NR_setresgid 169 --#define __NR_getresgid 170 --#define __NR_prctl 171 --#define __NR_rt_sigreturn 172 --#define __NR_rt_sigaction 173 --#define __NR_rt_sigprocmask 174 --#define __NR_rt_sigpending 175 --#define __NR_rt_sigtimedwait 176 --#define __NR_rt_sigqueueinfo 177 --#define __NR_rt_sigsuspend 178 --#define __NR_pread 179 --#define __NR_pwrite 180 --#define __NR_chown 181 --#define __NR_getcwd 182 --#define __NR_capget 183 --#define __NR_capset 184 --#define __NR_sigaltstack 185 --#define __NR_sendfile 186 --#define __NR_getpmsg 187 /* some people actually want streams */ --#define __NR_putpmsg 188 /* some people actually want streams */ --#define __NR_vfork 189 --#define __NR_ugetrlimit 190 /* SuS compliant getrlimit */ --#define __NR_readahead 191 --#define __NR_mmap2 192 --#define __NR_truncate64 193 --#define __NR_ftruncate64 194 --#define __NR_stat64 195 --#define __NR_lstat64 196 --#define __NR_fstat64 197 --#define __NR_pciconfig_read 198 --#define __NR_pciconfig_write 199 --#define __NR_pciconfig_iobase 200 --#define __NR_multiplexer 201 --#define __NR_getdents64 202 --#define __NR_pivot_root 203 --#define __NR_fcntl64 204 --#define __NR_madvise 205 --#define __NR_mincore 206 --#define __NR_gettid 207 --#define __NR_tkill 208 --#define __NR_setxattr 209 --#define __NR_lsetxattr 210 --#define __NR_fsetxattr 211 --#define __NR_getxattr 212 --#define __NR_lgetxattr 213 --#define __NR_fgetxattr 214 --#define __NR_listxattr 215 --#define __NR_llistxattr 216 --#define __NR_flistxattr 217 --#define __NR_removexattr 218 --#define __NR_lremovexattr 219 --#define __NR_fremovexattr 220 --#define __NR_futex 221 --#define __NR_sched_setaffinity 222 --#define __NR_sched_getaffinity 223 --/* 224 currently unused */ --#define __NR_tuxcall 225 --#define __NR_sendfile64 226 --#define __NR_io_setup 227 --#define __NR_io_destroy 228 --#define __NR_io_getevents 229 --#define __NR_io_submit 230 --#define __NR_io_cancel 231 --#define __NR_set_tid_address 232 --#define __NR_fadvise64 233 --#define __NR_exit_group 234 --#define __NR_lookup_dcookie 235 --#define __NR_epoll_create 236 --#define __NR_epoll_ctl 237 --#define __NR_epoll_wait 238 --#define __NR_remap_file_pages 239 --#define __NR_timer_create 240 --#define __NR_timer_settime 241 --#define __NR_timer_gettime 242 --#define __NR_timer_getoverrun 243 --#define __NR_timer_delete 244 --#define __NR_clock_settime 245 --#define __NR_clock_gettime 246 --#define __NR_clock_getres 247 --#define __NR_clock_nanosleep 248 --#define __NR_swapcontext 249 --#define __NR_tgkill 250 --#define __NR_utimes 251 --#define __NR_statfs64 252 --#define __NR_fstatfs64 253 --#define __NR_fadvise64_64 254 --#define __NR_rtas 255 --#define __NR_sys_debug_setcontext 256 --/* Number 257 is reserved for vserver */ --/* Number 258 is reserved for new sys_remap_file_pages */ --/* Number 259 is reserved for new sys_mbind */ --/* Number 260 is reserved for new sys_get_mempolicy */ --/* Number 261 is reserved for new sys_set_mempolicy */ --#define __NR_mq_open 262 --#define __NR_mq_unlink 263 --#define __NR_mq_timedsend 264 --#define __NR_mq_timedreceive 265 --#define __NR_mq_notify 266 --#define __NR_mq_getsetattr 267 --#define __NR_kexec_load 268 --#define __NR_add_key 269 --#define __NR_request_key 270 --#define __NR_keyctl 271 --#define __NR_waitid 272 --#define __NR_ioprio_set 273 --#define __NR_ioprio_get 274 --#define __NR_inotify_init 275 --#define __NR_inotify_add_watch 276 --#define __NR_inotify_rm_watch 277 -- -- --#define syscall_weak(name,wsym,sym) \ --.text; \ --.type wsym,@function; \ --.weak wsym; \ --wsym: ; \ --.type sym,@function; \ --.global sym; \ --sym: \ -- li 0,__NR_##name; \ -- b __unified_syscall -- --#define syscall(name,sym) \ --.text; \ --.type sym,@function; \ --.global sym; \ --sym: \ -- li 0,__NR_##name; \ -- b __unified_syscall -- -Index: dietlibc-0.30/ppc/unified.S -=================================================================== ---- dietlibc-0.30.orig/ppc/unified.S -+++ /dev/null -@@ -1,40 +0,0 @@ --#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 -- 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 3,-1 -- --/* here we go and "reuse" the return for weak-void functions */ --#include "dietuglyweaks.h" -- -- blr -- -Index: dietlibc-0.30/ppc64/Makefile.add -=================================================================== ---- dietlibc-0.30.orig/ppc64/Makefile.add -+++ /dev/null -@@ -1,5 +0,0 @@ -- --CFLAGS+=-Os -mpowerpc64 --VPATH:=ppc64:syscalls.s:$(VPATH) -- --CC+=-m64 -Index: dietlibc-0.30/ppc64/__longjmp.S -=================================================================== ---- dietlibc-0.30.orig/ppc64/__longjmp.S -+++ /dev/null -@@ -1,54 +0,0 @@ --#include <setjmp.h> -- -- .quad .__longjmp,.TOC.@tocbase,0 -- .text -- .size __longjmp,24 -- .type .__longjmp,@function -- .globl .__longjmp --.align 2 --.__longjmp: -- ld 1,(JB_GPR1*8)(3) -- ld 2,(JB_GPR2*8)(3) -- ld 0,(JB_LR*8)(3) -- ld 14,((JB_GPRS+0)*8)(3) -- lfd 14,((JB_FPRS+0)*8)(3) -- ld 15,((JB_GPRS+1)*8)(3) -- lfd 15,((JB_FPRS+1)*8)(3) -- ld 16,((JB_GPRS+2)*8)(3) -- lfd 16,((JB_FPRS+2)*8)(3) -- ld 17,((JB_GPRS+3)*8)(3) -- lfd 17,((JB_FPRS+3)*8)(3) -- ld 18,((JB_GPRS+4)*8)(3) -- lfd 18,((JB_FPRS+4)*8)(3) -- ld 19,((JB_GPRS+5)*8)(3) -- lfd 19,((JB_FPRS+5)*8)(3) -- ld 20,((JB_GPRS+6)*8)(3) -- lfd 20,((JB_FPRS+6)*8)(3) -- mtlr 0 -- ld 21,((JB_GPRS+7)*8)(3) -- lfd 21,((JB_FPRS+7)*8)(3) -- ld 22,((JB_GPRS+8)*8)(3) -- lfd 22,((JB_FPRS+8)*8)(3) -- ld 0,(JB_CR*8)(3) -- ld 23,((JB_GPRS+9)*8)(3) -- lfd 23,((JB_FPRS+9)*8)(3) -- ld 24,((JB_GPRS+10)*8)(3) -- lfd 24,((JB_FPRS+10)*8)(3) -- ld 25,((JB_GPRS+11)*8)(3) -- lfd 25,((JB_FPRS+11)*8)(3) -- mtcrf 0xFF,0 -- ld 26,((JB_GPRS+12)*8)(3) -- lfd 26,((JB_FPRS+12)*8)(3) -- ld 27,((JB_GPRS+13)*8)(3) -- lfd 27,((JB_FPRS+13)*8)(3) -- ld 28,((JB_GPRS+14)*8)(3) -- lfd 28,((JB_FPRS+14)*8)(3) -- ld 29,((JB_GPRS+15)*8)(3) -- lfd 29,((JB_FPRS+15)*8)(3) -- ld 30,((JB_GPRS+16)*8)(3) -- lfd 30,((JB_FPRS+16)*8)(3) -- ld 31,((JB_GPRS+17)*8)(3) -- lfd 31,((JB_FPRS+17)*8)(3) -- mr 3,4 -- blr --.size .__longjmp,.-.__longjmp -Index: dietlibc-0.30/ppc64/__testandset.S -=================================================================== ---- dietlibc-0.30.orig/ppc64/__testandset.S -+++ /dev/null -@@ -1,12 +0,0 @@ --.global __testandset --.type __testandset,@function --.align 2 --__testandset: --1: lwarx 5,0,3 -- li 0,1 -- stwcx. 0,0,3 -- bne- 1b -- mr 3,5 -- blr --.size __testandset,.-__testandset -- -Index: dietlibc-0.30/ppc64/clone.S -=================================================================== ---- dietlibc-0.30.orig/ppc64/clone.S -+++ /dev/null -@@ -1,52 +0,0 @@ --#include <dietfeatures.h> --#include "syscalls.h" --#include <errno.h> -- --.text --.weak clone --clone: --.global __clone --__clone: -- cmpwi 4,0 /* check have non null child_stack pointer */ -- cmpwi cr1, 3,0 /* check have non null thread_funcion */ -- cror eq,4*cr1+eq,eq /* now if eq is set one is or both are zero */ -- beq .Lclone_error -- -- stdu 1,-64(1) /* alloc some space on the stack */ -- std 29, 16(1) /* save r29,r30,r31 on stack */ -- std 30, 24(1) -- std 31, 32(1) -- -- rlwinm 4,4,0,0,27 /* mask out lower 4 bits */ -- -- /* move parameter to positions clone wants them */ -- mr 29,3 /* r29 = r3 fn */ -- mr 30,4 /* r30 = r4 stack */ -- mr 31,6 /* r31 = r6 arg */ -- mr 3, 5 /* r3 = r5 flags */ -- -- li 0, __NR_clone /* load syscall nr. */ -- sc -- -- cmpwi cr1,3,0 /* compare return of syscall with 0 */ -- crandc 4*cr1+eq,4*cr1+eq,so -- bne .Lclone_parent /* return was non zero -> .Lclone_parent */ -- -- /* we are the cloned process */ -- mr 1, 30 /* set stack pointer */ -- mtctr 29 /* set count register to fn ? */ -- mr 3, 31 /* set argument */ -- bctrl /* branch trough count register and link */ -- b _exit /* exit thread */ -- --.Lclone_parent: -- ld 29,16(1) /* restore saved registers */ -- ld 30,24(1) -- ld 31,32(1) -- addi 1, 1,64 /* free stack */ -- bnslr+ /* had cloned a thread so return to parent */ -- b error_unified_syscall -- --.Lclone_error: -- li 3, EINVAL -- b error_unified_syscall -Index: dietlibc-0.30/ppc64/setjmp.S -=================================================================== ---- dietlibc-0.30.orig/ppc64/setjmp.S -+++ /dev/null -@@ -1,59 +0,0 @@ --#include <setjmp.h> -- --#ifdef PIC --#define JUMPTARGET(name) name##@plt --#else --#define JUMPTARGET(name) .name --#endif -- -- .quad .__sigsetjmp,.TOC.@tocbase,0 -- .text -- .size __sigsetjmp,24 -- .type .__sigsetjmp,@function -- .globl .__sigsetjmp --.align 2 --.__sigsetjmp: -- std 1,(JB_GPR1*8)(3) -- mflr 0 -- std 2,(JB_GPR2*8)(3) -- std 14,((JB_GPRS+0)*8)(3) -- stfd 14,((JB_FPRS+0)*8)(3) -- std 0,(JB_LR*8)(3) -- std 15,((JB_GPRS+1)*8)(3) -- stfd 15,((JB_FPRS+1)*8)(3) -- mfcr 0 -- std 16,((JB_GPRS+2)*8)(3) -- stfd 16,((JB_FPRS+2)*8)(3) -- std 0,(JB_CR*8)(3) -- std 17,((JB_GPRS+3)*8)(3) -- stfd 17,((JB_FPRS+3)*8)(3) -- std 18,((JB_GPRS+4)*8)(3) -- stfd 18,((JB_FPRS+4)*8)(3) -- std 19,((JB_GPRS+5)*8)(3) -- stfd 19,((JB_FPRS+5)*8)(3) -- std 20,((JB_GPRS+6)*8)(3) -- stfd 20,((JB_FPRS+6)*8)(3) -- std 21,((JB_GPRS+7)*8)(3) -- stfd 21,((JB_FPRS+7)*8)(3) -- std 22,((JB_GPRS+8)*8)(3) -- stfd 22,((JB_FPRS+8)*8)(3) -- std 23,((JB_GPRS+9)*8)(3) -- stfd 23,((JB_FPRS+9)*8)(3) -- std 24,((JB_GPRS+10)*8)(3) -- stfd 24,((JB_FPRS+10)*8)(3) -- std 25,((JB_GPRS+11)*8)(3) -- stfd 25,((JB_FPRS+11)*8)(3) -- std 26,((JB_GPRS+12)*8)(3) -- stfd 26,((JB_FPRS+12)*8)(3) -- std 27,((JB_GPRS+13)*8)(3) -- stfd 27,((JB_FPRS+13)*8)(3) -- std 28,((JB_GPRS+14)*8)(3) -- stfd 28,((JB_FPRS+14)*8)(3) -- std 29,((JB_GPRS+15)*8)(3) -- stfd 29,((JB_FPRS+15)*8)(3) -- std 30,((JB_GPRS+16)*8)(3) -- stfd 30,((JB_FPRS+16)*8)(3) -- std 31,((JB_GPRS+17)*8)(3) -- stfd 31,((JB_FPRS+17)*8)(3) -- b JUMPTARGET (__sigjmp_save) --.size .__sigsetjmp,.-.__sigsetjmp -Index: dietlibc-0.30/ppc64/start.S -=================================================================== ---- dietlibc-0.30.orig/ppc64/start.S -+++ /dev/null -@@ -1,91 +0,0 @@ --#include "dietfeatures.h" -- -- .section ".text" -- .align 2 -- .globl ._start -- .type ._start,@function -- .globl _start -- .section ".opd","aw" --_start: -- .quad ._start -- .quad .TOC.@tocbase, 0 -- .previous --._start: -- --/* -- .section ".text" -- .align 2 -- .globl ._start -- .type ._start,@function -- .globl _start -- .section ".opd","aw" --_start: -- .quad ._start -- .quad .TOC.@tocbase, 0 -- .previous --._start: --*/ -- /* Save the stack pointer, in case we're statically linked under Linux. */ -- mr 9,1 -- /* Set up an initial stack frame, and clear the LR. */ -- clrrdi 1,1,4 -- li 0,0 -- stdu 1,-128(1) -- mtlr 0 -- std 0,0(1) -- -- /* r9 contains the initial stack pointer -- argc = (r9) -- argv = (r9+4) -- envp = argv+(argc+1)*4 */ -- -- lis 14,__libc_stack_end@highesta -- ori 14,14,__libc_stack_end@highera -- sldi 14,14,32 -- oris 14,14,__libc_stack_end@ha -- std 9,__libc_stack_end@l(14) -- -- ldu 3,0(9) /* argc */ -- addi 4,9,8 /* argv */ -- add 5,0,3 /* argc... */ -- addi 5,5,1 /* argc+1...*/ -- slwi 5,5,3 /* (argc+1)*8 */ -- add 5,5,4 /* argv+(argc+1)*8 */ -- -- lis 14,environ@highesta -- ori 14,14,environ@highera -- sldi 14,14,32 -- oris 14,14,environ@ha -- std 5,environ@l(14) -- --#ifdef WANT_DYNAMIC --/* #warning dynamic */ -- mr 6,7 -- bl ._dyn_start --#else --/* #warning static */ --#define DOTIFY(name) .##name -- bl DOTIFY(CALL_IN_STARTCODE) --#endif -- b .exit -- --.LT_start: -- .long 0 -- .quad 0x000c000000000000 | 0x0000200000000000 | 0x0000004000000000 -- .long .LT_start-._start -- .short .LT_start_name_end-.LT_start_name_start --.LT_start_name_start: -- .ascii "_start" --.LT_start_name_end: -- .align 2 -- .size _start,.-_start -- --/* Define a symbol for the first piece of initialized data. */ -- .section ".data" --__data_start: -- --/* this is needed for libgcc_eh.a - see gcc-3.4/gcc/config/rs6000/linux-unwind.h */ -- .weak __libc_stack_end -- .lcomm __libc_stack_end,8,8 -- .type __libc_stack_end,@object -- -Index: dietlibc-0.30/ppc64/syscalls.h -=================================================================== ---- dietlibc-0.30.orig/ppc64/syscalls.h -+++ /dev/null -@@ -1,317 +0,0 @@ -- --#define __NR_exit 1 --#define __NR_fork 2 --#define __NR_read 3 --#define __NR_write 4 --#define __NR_open 5 --#define __NR_close 6 --#define __NR_waitpid 7 --#define __NR_creat 8 --#define __NR_link 9 --#define __NR_unlink 10 --#define __NR_execve 11 --#define __NR_chdir 12 --#define __NR_time 13 --#define __NR_mknod 14 --#define __NR_chmod 15 --#define __NR_lchown 16 --#define __NR_break 17 --#define __NR_oldstat 18 --#define __NR_lseek 19 --#define __NR_getpid 20 --#define __NR_mount 21 --#define __NR_umount 22 --#define __NR_setuid 23 --#define __NR_getuid 24 --#define __NR_stime 25 --#define __NR_ptrace 26 --#define __NR_alarm 27 --#define __NR_oldfstat 28 --#define __NR_pause 29 --#define __NR_utime 30 --#define __NR_stty 31 --#define __NR_gtty 32 --#define __NR_access 33 --#define __NR_nice 34 --#define __NR_ftime 35 --#define __NR_sync 36 --#define __NR_kill 37 --#define __NR_rename 38 --#define __NR_mkdir 39 --#define __NR_rmdir 40 --#define __NR_dup 41 --#define __NR_pipe 42 --#define __NR_times 43 --#define __NR_prof 44 --#define __NR_brk 45 --#define __NR_setgid 46 --#define __NR_getgid 47 --#define __NR_signal 48 --#define __NR_geteuid 49 --#define __NR_getegid 50 --#define __NR_acct 51 --#define __NR_umount2 52 --#define __NR_lock 53 --#define __NR_ioctl 54 --#define __NR_fcntl 55 --#define __NR_mpx 56 --#define __NR_setpgid 57 --#define __NR_ulimit 58 --#define __NR_oldolduname 59 --#define __NR_umask 60 --#define __NR_chroot 61 --#define __NR_ustat 62 --#define __NR_dup2 63 --#define __NR_getppid 64 --#define __NR_getpgrp 65 --#define __NR_setsid 66 --#define __NR_sigaction 67 --#define __NR_sgetmask 68 --#define __NR_ssetmask 69 --#define __NR_setreuid 70 --#define __NR_setregid 71 --#define __NR_sigsuspend 72 --#define __NR_sigpending 73 --#define __NR_sethostname 74 --#define __NR_setrlimit 75 --#define __NR_getrlimit 76 --#define __NR_getrusage 77 --#define __NR_gettimeofday 78 --#define __NR_settimeofday 79 --#define __NR_getgroups 80 --#define __NR_setgroups 81 --#define __NR_select 82 --#define __NR_symlink 83 --#define __NR_oldlstat 84 --#define __NR_readlink 85 --#define __NR_uselib 86 --#define __NR_swapon 87 --#define __NR_reboot 88 --#define __NR_readdir 89 --#define __NR_mmap 90 --#define __NR_munmap 91 --#define __NR_truncate 92 --#define __NR_ftruncate 93 --#define __NR_fchmod 94 --#define __NR_fchown 95 --#define __NR_getpriority 96 --#define __NR_setpriority 97 --#define __NR_profil 98 --#define __NR_statfs 99 --#define __NR_fstatfs 100 --#define __NR_ioperm 101 --#define __NR_socketcall 102 --#define __NR_syslog 103 --#define __NR_setitimer 104 --#define __NR_getitimer 105 --#define __NR_stat 106 --#define __NR_lstat 107 --#define __NR_fstat 108 --#define __NR_olduname 109 --#define __NR_iopl 110 --#define __NR_vhangup 111 --#define __NR_idle 112 --#define __NR_vm86 113 --#define __NR_wait4 114 --#define __NR_swapoff 115 --#define __NR_sysinfo 116 --#define __NR_ipc 117 --#define __NR_fsync 118 --#define __NR_sigreturn 119 --#define __NR_clone 120 --#define __NR_setdomainname 121 --#define __NR_uname 122 --#define __NR_modify_ldt 123 --#define __NR_adjtimex 124 --#define __NR_mprotect 125 --#define __NR_sigprocmask 126 --#define __NR_create_module 127 --#define __NR_init_module 128 --#define __NR_delete_module 129 --#define __NR_get_kernel_syms 130 --#define __NR_quotactl 131 --#define __NR_getpgid 132 --#define __NR_fchdir 133 --#define __NR_bdflush 134 --#define __NR_sysfs 135 --#define __NR_personality 136 --#define __NR_afs_syscall 137 /* Syscall for Andrew File System */ --#define __NR_setfsuid 138 --#define __NR_setfsgid 139 --#define __NR__llseek 140 --#define __NR_getdents 141 --#define __NR__newselect 142 --#define __NR_flock 143 --#define __NR_msync 144 --#define __NR_readv 145 --#define __NR_writev 146 --#define __NR_getsid 147 --#define __NR_fdatasync 148 --#define __NR__sysctl 149 --#define __NR_mlock 150 --#define __NR_munlock 151 --#define __NR_mlockall 152 --#define __NR_munlockall 153 --#define __NR_sched_setparam 154 --#define __NR_sched_getparam 155 --#define __NR_sched_setscheduler 156 --#define __NR_sched_getscheduler 157 --#define __NR_sched_yield 158 --#define __NR_sched_get_priority_max 159 --#define __NR_sched_get_priority_min 160 --#define __NR_sched_rr_get_interval 161 --#define __NR_nanosleep 162 --#define __NR_mremap 163 --#define __NR_setresuid 164 --#define __NR_getresuid 165 --#define __NR_query_module 166 --#define __NR_poll 167 --#define __NR_nfsservctl 168 --#define __NR_setresgid 169 --#define __NR_getresgid 170 --#define __NR_prctl 171 --#define __NR_rt_sigreturn 172 --#define __NR_rt_sigaction 173 --#define __NR_rt_sigprocmask 174 --#define __NR_rt_sigpending 175 --#define __NR_rt_sigtimedwait 176 --#define __NR_rt_sigqueueinfo 177 --#define __NR_rt_sigsuspend 178 --#define __NR_pread 179 --#define __NR_pwrite 180 --#define __NR_chown 181 --#define __NR_getcwd 182 --#define __NR_capget 183 --#define __NR_capset 184 --#define __NR_sigaltstack 185 --#define __NR_sendfile 186 --#define __NR_getpmsg 187 /* some people actually want streams */ --#define __NR_putpmsg 188 /* some people actually want streams */ --#define __NR_vfork 189 --#define __NR_ugetrlimit 190 /* SuS compliant getrlimit */ --#define __NR_readahead 191 --/* #define __NR_mmap2 192 32bit only */ --/* #define __NR_truncate64 193 32bit only */ --/* #define __NR_ftruncate64 194 32bit only */ --/* #define __NR_stat64 195 32bit only */ --/* #define __NR_lstat64 196 32bit only */ --/* #define __NR_fstat64 197 32bit only */ --#define __NR_pciconfig_read 198 --#define __NR_pciconfig_write 199 --#define __NR_pciconfig_iobase 200 --#define __NR_multiplexer 201 --#define __NR_getdents64 202 --#define __NR_pivot_root 203 --/* #define __NR_fcntl64 204 32bit only */ --#define __NR_madvise 205 --#define __NR_mincore 206 --#define __NR_gettid 207 --#define __NR_tkill 208 --#define __NR_setxattr 209 --#define __NR_lsetxattr 210 --#define __NR_fsetxattr 211 --#define __NR_getxattr 212 --#define __NR_lgetxattr 213 --#define __NR_fgetxattr 214 --#define __NR_listxattr 215 --#define __NR_llistxattr 216 --#define __NR_flistxattr 217 --#define __NR_removexattr 218 --#define __NR_lremovexattr 219 --#define __NR_fremovexattr 220 --#define __NR_futex 221 --#define __NR_sched_setaffinity 222 --#define __NR_sched_getaffinity 223 --/* 224 currently unused */ --#define __NR_tuxcall 225 --/* #define __NR_sendfile64 226 32bit only */ --#define __NR_io_setup 227 --#define __NR_io_destroy 228 --#define __NR_io_getevents 229 --#define __NR_io_submit 230 --#define __NR_io_cancel 231 --#define __NR_set_tid_address 232 --#define __NR_fadvise64 233 --#define __NR_exit_group 234 --#define __NR_lookup_dcookie 235 --#define __NR_epoll_create 236 --#define __NR_epoll_ctl 237 --#define __NR_epoll_wait 238 --#define __NR_remap_file_pages 239 --#define __NR_timer_create 240 --#define __NR_timer_settime 241 --#define __NR_timer_gettime 242 --#define __NR_timer_getoverrun 243 --#define __NR_timer_delete 244 --#define __NR_clock_settime 245 --#define __NR_clock_gettime 246 --#define __NR_clock_getres 247 --#define __NR_clock_nanosleep 248 --#define __NR_swapcontext 249 --#define __NR_tgkill 250 --#define __NR_utimes 251 --#define __NR_statfs64 252 --#define __NR_fstatfs64 253 --/* #define __NR_fadvise64_64 254 32bit only */ --#define __NR_rtas 255 --/* Number 256 is reserved for sys_debug_setcontext */ --/* Number 257 is reserved for vserver */ --/* Number 258 is reserved for new sys_remap_file_pages */ --#define __NR_mbind 259 --#define __NR_get_mempolicy 260 --#define __NR_set_mempolicy 261 --#define __NR_mq_open 262 --#define __NR_mq_unlink 263 --#define __NR_mq_timedsend 264 --#define __NR_mq_timedreceive 265 --#define __NR_mq_notify 266 --#define __NR_mq_getsetattr 267 --#define __NR_kexec_load 268 --#define __NR_add_key 269 --#define __NR_request_key 270 --#define __NR_keyctl 271 --#define __NR_waitid 272 --#define __NR_ioprio_set 273 --#define __NR_ioprio_get 274 --#define __NR_inotify_init 275 --#define __NR_inotify_add_watch 276 --#define __NR_inotify_rm_watch 277 -- -- -- --#define __diet_proto_common(sym) \ -- .section ".opd","aw"; \ -- .align 3; \ --sym: \ -- .quad .sym,.TOC.@tocbase,0; \ -- .previous; \ -- .size sym,24; \ -- .type .sym,@function -- --#define diet_proto_weak(sym) \ -- .weak sym; \ -- .weak .sym; \ -- __diet_proto_common(sym) -- --#define diet_proto(sym) \ -- .globl sym; \ -- .globl .sym; \ -- __diet_proto_common(sym) -- -- --#define syscall_weak(name,wsym,sym) \ --.text; \ --diet_proto_weak(wsym); \ --diet_proto(sym); \ --.wsym: \ --.sym: \ -- li 0,__NR_##name; \ -- b __unified_syscall -- --#define syscall(name,sym) \ --.text; \ --diet_proto(sym); \ --.sym: \ -- li 0,__NR_##name; \ -- b __unified_syscall -- -Index: dietlibc-0.30/ppc64/umount.S -=================================================================== ---- dietlibc-0.30.orig/ppc64/umount.S -+++ /dev/null -@@ -1,8 +0,0 @@ --#include "syscalls.h" -- -- .text --diet_proto(umount) --.umount: -- li 0, __NR_umount2 -- li 4, 0 -- b __unified_syscall -Index: dietlibc-0.30/ppc64/unified.S -=================================================================== ---- dietlibc-0.30.orig/ppc64/unified.S -+++ /dev/null -@@ -1,71 +0,0 @@ --#include <dietfeatures.h> --#include "syscalls.h" -- -- .text --.exit: -- .weak .exit --._exit: -- li 0,__NR_exit -- .global __unified_syscall --__unified_syscall: -- sc -- bnslr+ -- -- .global error_unified_syscall --error_unified_syscall: -- --#ifdef WANT_THREAD_SAFE -- stdu 1,-128(1) -- mflr 0 -- std 0,20(1) -- std 3,12(1) -- bl .__errno_location -- ld 0,12(1) -- stw 0,0(3) -- ld 0,20(1) -- mtlr 0 -- addi 1,1,128 --#else -- lis 9,errno@highesta -- ori 9,9,errno@highera -- sldi 9,9,32 -- oris 9,9,errno@ha -- stw 3,errno@l(9) --#endif -- li 3,-1 -- --/* here we go and "reuse" the return for weak-void functions */ --//#include "dietuglyweaks.h" --.__thread_doexit: -- .weak .__thread_doexit --.__fflush_stdin: -- .weak .__fflush_stdin --.__fflush_stdout: -- .weak .__fflush_stdout --.__fflush_stderr: -- .weak .__fflush_stderr --.flockfile: -- .weak .flockfile --.funlockfile: -- .weak .funlockfile --.__nop: -- .weak .__nop --.__you_tried_to_link_a_dietlibc_object_against_glibc: -- .weak .__you_tried_to_link_a_dietlibc_object_against_glibc -- -- blr -- .long 0 -- .byte 0,0,0,1,128,0,0,0 -- .size ._exit,.-._exit -- .size .exit,.-.exit -- --diet_proto_weak(__thread_doexit) --diet_proto_weak(__fflush_stdin) --diet_proto_weak(__fflush_stdout) --diet_proto_weak(__fflush_stderr) --diet_proto_weak(flockfile) --diet_proto_weak(funlockfile) --diet_proto_weak(__nop) --diet_proto_weak(__you_tried_to_link_a_dietlibc_object_against_glibc) --diet_proto_weak(exit) --diet_proto(_exit) -Index: dietlibc-0.30/syscalls.h -=================================================================== ---- dietlibc-0.30.orig/syscalls.h -+++ dietlibc-0.30/syscalls.h -@@ -12,10 +12,10 @@ - #endif - - #elif defined(__powerpc64__) --#include "ppc64/syscalls.h" -+#include "powerpc64/syscalls.h" - - #elif defined(__powerpc__) --#include "ppc/syscalls.h" -+#include "powerpc/syscalls.h" - - #elif defined(__mips__) - #include "mips/syscalls.h" |