diff -NurpP dietlibc-0.30-execstack/diet.c dietlibc-0.30-ppc-rename/diet.c --- dietlibc-0.30-execstack/diet.c 2006-04-04 05:47:21.000000000 +0200 +++ dietlibc-0.30-ppc-rename/diet.c 2006-09-07 12:32:01.080419500 +0200 @@ -35,7 +35,7 @@ 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, + "powerpc","-Os","-fomit-frame-pointer","-mpowerpc-gpopt","-mpowerpc-gfxopt",0, "ppc64","-Os","-fomit-frame-pointer","-mpowerpc-gpopt","-mpowerpc-gfxopt",0, "s390","-Os","-fomit-frame-pointer",0, "s390x","-Os","-fomit-frame-pointer",0, @@ -151,7 +151,7 @@ int main(int argc,char *argv[]) { #endif #endif #ifdef __powerpc__ - shortplatform="ppc"; + shortplatform="powerpc"; #endif #ifdef __powerpc64__ shortplatform="ppc64"; diff -NurpP dietlibc-0.30-execstack/Makefile dietlibc-0.30-ppc-rename/Makefile --- dietlibc-0.30-execstack/Makefile 2006-06-18 20:32:28.000000000 +0200 +++ dietlibc-0.30-ppc-rename/Makefile 2006-09-07 12:44:19.878766750 +0200 @@ -24,7 +24,11 @@ ifeq ($(MYARCH),alpha) ARCH=alpha else ifeq ($(MYARCH),ppc) -ARCH=ppc +ARCH=powerpc +MYARCH=powerpc +else +ifeq ($(MYARCH),powerpc) +ARCH=powerpc else ifeq ($(MYARCH),ppc64) ARCH=ppc64 @@ -80,6 +84,7 @@ endif endif endif endif +endif # ARCH=$(MYARCH) @@ -385,7 +390,7 @@ 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: sparc powerpc mips arm alpha i386 parisc mipsel powerpc s390 sparc64 .PHONY: x86_64 ia64 ppc64 s390x arm sparc alpha mips parisc s390 sparc64 x86_64 ia64 ppc64 s390x: @@ -398,7 +403,7 @@ else $(MAKE) ARCH=$@ CROSS=$@-linux- all endif -ppc: +powerpc: ifeq ($(MYARCH),ppc64) $(MAKE) ARCH=$@ CC="$(CC) -m32" all else @@ -412,15 +417,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)) diff -NurpP dietlibc-0.30-execstack/powerpc/clone.S dietlibc-0.30-ppc-rename/powerpc/clone.S --- dietlibc-0.30-execstack/powerpc/clone.S 1970-01-01 01:00:00.000000000 +0100 +++ dietlibc-0.30-ppc-rename/powerpc/clone.S 2006-09-07 12:24:13.119173000 +0200 @@ -0,0 +1,52 @@ +#include +#include "syscalls.h" +#include + +.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 + +#ifdef __ELF__ +.section .note.GNU-stack,"",%progbits +#endif diff -NurpP dietlibc-0.30-execstack/powerpc/__longjmp.S dietlibc-0.30-ppc-rename/powerpc/__longjmp.S --- dietlibc-0.30-execstack/powerpc/__longjmp.S 1970-01-01 01:00:00.000000000 +0100 +++ dietlibc-0.30-ppc-rename/powerpc/__longjmp.S 2006-09-07 12:24:13.119173000 +0200 @@ -0,0 +1,63 @@ +#include + + +#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 + + +#ifdef __ELF__ +.section .note.GNU-stack,"",%progbits +#endif diff -NurpP dietlibc-0.30-execstack/powerpc/Makefile.add dietlibc-0.30-ppc-rename/powerpc/Makefile.add --- dietlibc-0.30-execstack/powerpc/Makefile.add 1970-01-01 01:00:00.000000000 +0100 +++ dietlibc-0.30-ppc-rename/powerpc/Makefile.add 2001-01-30 16:01:20.000000000 +0100 @@ -0,0 +1,3 @@ + +CFLAGS+=-mpowerpc-gpopt -mpowerpc-gfxopt -Os +VPATH:=ppc:syscalls.s:$(VPATH) diff -NurpP dietlibc-0.30-execstack/powerpc/mmap.c dietlibc-0.30-ppc-rename/powerpc/mmap.c --- dietlibc-0.30-execstack/powerpc/mmap.c 1970-01-01 01:00:00.000000000 +0100 +++ dietlibc-0.30-ppc-rename/powerpc/mmap.c 2001-06-18 23:08:07.000000000 +0200 @@ -0,0 +1,40 @@ +#include "dietfeatures.h" +#include +#include +#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; +} diff -NurpP dietlibc-0.30-execstack/powerpc/setjmp.S dietlibc-0.30-ppc-rename/powerpc/setjmp.S --- dietlibc-0.30-execstack/powerpc/setjmp.S 1970-01-01 01:00:00.000000000 +0100 +++ dietlibc-0.30-ppc-rename/powerpc/setjmp.S 2006-09-07 12:24:13.119173000 +0200 @@ -0,0 +1,60 @@ +#include + +#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 + +#ifdef __ELF__ +.section .note.GNU-stack,"",%progbits +#endif diff -NurpP dietlibc-0.30-execstack/powerpc/start.S dietlibc-0.30-ppc-rename/powerpc/start.S --- dietlibc-0.30-execstack/powerpc/start.S 1970-01-01 01:00:00.000000000 +0100 +++ dietlibc-0.30-ppc-rename/powerpc/start.S 2006-09-07 12:24:13.119173000 +0200 @@ -0,0 +1,56 @@ +#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 + + +#ifdef __ELF__ +.section .note.GNU-stack,"",%progbits +#endif diff -NurpP dietlibc-0.30-execstack/powerpc/syscalls.h dietlibc-0.30-ppc-rename/powerpc/syscalls.h --- dietlibc-0.30-execstack/powerpc/syscalls.h 1970-01-01 01:00:00.000000000 +0100 +++ dietlibc-0.30-ppc-rename/powerpc/syscalls.h 2005-09-21 09:33:08.000000000 +0200 @@ -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 + diff -NurpP dietlibc-0.30-execstack/powerpc/__testandset.S dietlibc-0.30-ppc-rename/powerpc/__testandset.S --- dietlibc-0.30-execstack/powerpc/__testandset.S 1970-01-01 01:00:00.000000000 +0100 +++ dietlibc-0.30-ppc-rename/powerpc/__testandset.S 2006-09-07 12:24:13.119173000 +0200 @@ -0,0 +1,16 @@ +.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 + + +#ifdef __ELF__ +.section .note.GNU-stack,"",%progbits +#endif diff -NurpP dietlibc-0.30-execstack/powerpc/unified.S dietlibc-0.30-ppc-rename/powerpc/unified.S --- dietlibc-0.30-execstack/powerpc/unified.S 1970-01-01 01:00:00.000000000 +0100 +++ dietlibc-0.30-ppc-rename/powerpc/unified.S 2006-09-07 12:24:13.119173000 +0200 @@ -0,0 +1,44 @@ +#include +#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 + + +#ifdef __ELF__ +.section .note.GNU-stack,"",%progbits +#endif diff -NurpP dietlibc-0.30-execstack/ppc/clone.S dietlibc-0.30-ppc-rename/ppc/clone.S --- dietlibc-0.30-execstack/ppc/clone.S 2006-09-07 12:24:13.119173750 +0200 +++ dietlibc-0.30-ppc-rename/ppc/clone.S 1970-01-01 01:00:00.000000000 +0100 @@ -1,52 +0,0 @@ -#include -#include "syscalls.h" -#include - -.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 - -#ifdef __ELF__ -.section .note.GNU-stack,"",%progbits -#endif diff -NurpP dietlibc-0.30-execstack/ppc/__longjmp.S dietlibc-0.30-ppc-rename/ppc/__longjmp.S --- dietlibc-0.30-execstack/ppc/__longjmp.S 2006-09-07 12:24:13.119173750 +0200 +++ dietlibc-0.30-ppc-rename/ppc/__longjmp.S 1970-01-01 01:00:00.000000000 +0100 @@ -1,63 +0,0 @@ -#include - - -#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 - - -#ifdef __ELF__ -.section .note.GNU-stack,"",%progbits -#endif diff -NurpP dietlibc-0.30-execstack/ppc/Makefile.add dietlibc-0.30-ppc-rename/ppc/Makefile.add --- dietlibc-0.30-execstack/ppc/Makefile.add 2001-01-30 16:01:20.000000000 +0100 +++ dietlibc-0.30-ppc-rename/ppc/Makefile.add 1970-01-01 01:00:00.000000000 +0100 @@ -1,3 +0,0 @@ - -CFLAGS+=-mpowerpc-gpopt -mpowerpc-gfxopt -Os -VPATH:=ppc:syscalls.s:$(VPATH) diff -NurpP dietlibc-0.30-execstack/ppc/mmap.c dietlibc-0.30-ppc-rename/ppc/mmap.c --- dietlibc-0.30-execstack/ppc/mmap.c 2001-06-18 23:08:07.000000000 +0200 +++ dietlibc-0.30-ppc-rename/ppc/mmap.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,40 +0,0 @@ -#include "dietfeatures.h" -#include -#include -#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; -} diff -NurpP dietlibc-0.30-execstack/ppc/setjmp.S dietlibc-0.30-ppc-rename/ppc/setjmp.S --- dietlibc-0.30-execstack/ppc/setjmp.S 2006-09-07 12:24:13.119173750 +0200 +++ dietlibc-0.30-ppc-rename/ppc/setjmp.S 1970-01-01 01:00:00.000000000 +0100 @@ -1,60 +0,0 @@ -#include - -#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 - -#ifdef __ELF__ -.section .note.GNU-stack,"",%progbits -#endif diff -NurpP dietlibc-0.30-execstack/ppc/start.S dietlibc-0.30-ppc-rename/ppc/start.S --- dietlibc-0.30-execstack/ppc/start.S 2006-09-07 12:24:13.119173750 +0200 +++ dietlibc-0.30-ppc-rename/ppc/start.S 1970-01-01 01:00:00.000000000 +0100 @@ -1,56 +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 - - -#ifdef __ELF__ -.section .note.GNU-stack,"",%progbits -#endif diff -NurpP dietlibc-0.30-execstack/ppc/syscalls.h dietlibc-0.30-ppc-rename/ppc/syscalls.h --- dietlibc-0.30-execstack/ppc/syscalls.h 2005-09-21 09:33:08.000000000 +0200 +++ dietlibc-0.30-ppc-rename/ppc/syscalls.h 1970-01-01 01:00:00.000000000 +0100 @@ -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 - diff -NurpP dietlibc-0.30-execstack/ppc/__testandset.S dietlibc-0.30-ppc-rename/ppc/__testandset.S --- dietlibc-0.30-execstack/ppc/__testandset.S 2006-09-07 12:24:13.119173750 +0200 +++ dietlibc-0.30-ppc-rename/ppc/__testandset.S 1970-01-01 01:00:00.000000000 +0100 @@ -1,16 +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 - - -#ifdef __ELF__ -.section .note.GNU-stack,"",%progbits -#endif diff -NurpP dietlibc-0.30-execstack/ppc/unified.S dietlibc-0.30-ppc-rename/ppc/unified.S --- dietlibc-0.30-execstack/ppc/unified.S 2006-09-07 12:24:13.119173750 +0200 +++ dietlibc-0.30-ppc-rename/ppc/unified.S 1970-01-01 01:00:00.000000000 +0100 @@ -1,44 +0,0 @@ -#include -#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 - - -#ifdef __ELF__ -.section .note.GNU-stack,"",%progbits -#endif diff -NurpP dietlibc-0.30-execstack/syscalls.h dietlibc-0.30-ppc-rename/syscalls.h --- dietlibc-0.30-execstack/syscalls.h 2005-03-15 09:51:22.000000000 +0100 +++ dietlibc-0.30-ppc-rename/syscalls.h 2006-09-07 12:28:54.384751750 +0200 @@ -15,7 +15,7 @@ #include "ppc64/syscalls.h" #elif defined(__powerpc__) -#include "ppc/syscalls.h" +#include "powerpc/syscalls.h" #elif defined(__mips__) #include "mips/syscalls.h"