diff options
author | 2006-05-02 15:19:29 +0000 | |
---|---|---|
committer | 2006-05-02 15:19:29 +0000 | |
commit | 3b79c71678f600a35b21ef23933cd2b168e81c00 (patch) | |
tree | 6f4ce5fd9812e0676462ef96fa268d660fc6251a /dietlibc | |
parent | Starting -r1 patch series for the cvs snapshot, that should fix my diet.ld.co... (diff) | |
download | misc-3b79c71678f600a35b21ef23933cd2b168e81c00.tar.gz misc-3b79c71678f600a35b21ef23933cd2b168e81c00.tar.bz2 misc-3b79c71678f600a35b21ef23933cd2b168e81c00.zip |
Bah, too fast (think before you act ..)
svn path=/; revision=353
Diffstat (limited to 'dietlibc')
15 files changed, 0 insertions, 3322 deletions
diff --git a/dietlibc/patches/0.30_pre20060501-r1/00_all_custom-cflags.patch b/dietlibc/patches/0.30_pre20060501-r1/00_all_custom-cflags.patch deleted file mode 100644 index f726790..0000000 --- a/dietlibc/patches/0.30_pre20060501-r1/00_all_custom-cflags.patch +++ /dev/null @@ -1,23 +0,0 @@ -Index: dietlibc-0.30_pre20060501/Makefile -=================================================================== ---- dietlibc-0.30_pre20060501.orig/Makefile -+++ dietlibc-0.30_pre20060501/Makefile -@@ -100,7 +100,6 @@ all: $(WHAT) - - profiling: $(OBJDIR)/libgmon.a $(OBJDIR)/pstart.o - --CFLAGS=-pipe -nostdinc - CROSS= - - CC=gcc -@@ -132,10 +131,6 @@ include $(ARCH)/Makefile.add - - LIBMATHOBJ=$(patsubst %,$(OBJDIR)/%,$(LIBMATH)) - --ifeq ($(CFLAGS),-pipe -nostdinc) --CFLAGS+=-O -fomit-frame-pointer --endif -- - ifneq ($(DEBUG),) - CFLAGS = -g - COMMENT = : diff --git a/dietlibc/patches/0.30_pre20060501-r1/01_all_nostrip.patch b/dietlibc/patches/0.30_pre20060501-r1/01_all_nostrip.patch deleted file mode 100644 index 6d2bc2d..0000000 --- a/dietlibc/patches/0.30_pre20060501-r1/01_all_nostrip.patch +++ /dev/null @@ -1,75 +0,0 @@ -Index: dietlibc-0.30_pre20060501/libpthread/Makefile -=================================================================== ---- dietlibc-0.30_pre20060501.orig/libpthread/Makefile -+++ dietlibc-0.30_pre20060501/libpthread/Makefile -@@ -45,7 +45,6 @@ PWD=$(shell pwd) - - %.o: %.c - $(CROSS)$(CC) -I. -Iinclude $(CFLAGS) -c $< --# $(CROSS)strip -x -R .comment -R .note $@ - - libpthread.a: $(PTHREAD_OBJS) - $(CROSS)ar cr $@ $^ -Index: dietlibc-0.30_pre20060501/Makefile -=================================================================== ---- dietlibc-0.30_pre20060501.orig/Makefile -+++ dietlibc-0.30_pre20060501/Makefile -@@ -156,7 +156,6 @@ $(OBJDIR)/%.o: %.S $(ARCH)/syscalls.h - - $(OBJDIR)/%.o: %.c - tcc -I. -Iinclude -c $< -o $@ -- $(COMMENT) -$(CROSS)strip -x -R .comment -R .note $@ - else - $(OBJDIR)/pstart.o: start.S - $(CROSS)$(CC) $(INC) $(CFLAGS) -DPROFILING -c $< -o $@ -@@ -166,11 +165,9 @@ $(OBJDIR)/%.o: %.S $(ARCH)/syscalls.h - - $(OBJDIR)/pthread_%.o: libpthread/pthread_%.c - $(CROSS)$(CC) $(INC) $(CFLAGS) -c $< -o $@ -- $(COMMENT) -$(CROSS)strip -x -R .comment -R .note $@ - - $(OBJDIR)/%.o: %.c - $(CROSS)$(CC) $(INC) $(CFLAGS) -c $< -o $@ -- $(COMMENT) -$(CROSS)strip -x -R .comment -R .note $@ - endif - - ifeq ($(shell $(CC) -v 2>&1 | grep "gcc version"),gcc version 4.0.0) -@@ -241,18 +238,15 @@ $(PICODIR)/%.o: %.S $(ARCH)/syscalls.h - - $(PICODIR)/pthread_%.o: libpthread/pthread_%.c - $(CROSS)$(CC) $(INC) $(CFLAGS) -fPIC -D__DYN_LIB -c $< -o $@ -- $(COMMENT) $(CROSS)strip -x -R .comment -R .note $@ - - $(PICODIR)/%.o: %.c - $(CROSS)$(CC) $(INC) $(CFLAGS) -fPIC -D__DYN_LIB -c $< -o $@ -- $(COMMENT) $(CROSS)strip -x -R .comment -R .note $@ - - $(PICODIR)/dstart.o: start.S - $(CROSS)$(CC) $(INC) $(CFLAGS) -fPIC -D__DYN_LIB -c $< -o $@ - - $(PICODIR)/dyn_so_start.o: dyn_start.c - $(CROSS)$(CC) $(INC) $(CFLAGS) -fPIC -D__DYN_LIB -D__DYN_LIB_SHARED -c $< -o $@ -- $(COMMENT) $(CROSS)strip -x -R .comment -R .note $@ - - DYN_LIBC_PIC = $(LIBOBJ) $(LIBSTDIOOBJ) $(LIBUGLYOBJ) \ - $(LIBCRUFTOBJ) $(LIBCRYPTOBJ) $(LIBSHELLOBJ) $(LIBREGEXOBJ) -@@ -301,19 +295,15 @@ CURNAME=$(notdir $(shell pwd)) - - $(OBJDIR)/diet: $(OBJDIR)/start.o $(OBJDIR)/dyn_start.o diet.c $(OBJDIR)/dietlibc.a $(OBJDIR)/dyn_stop.o - $(CROSS)$(CC) -isystem include $(CFLAGS) -nostdlib -o $@ $^ -DDIETHOME=\"$(HOME)\" -DVERSION=\"$(VERSION)\" -lgcc -- $(CROSS)strip -R .comment -R .note $@ - - $(OBJDIR)/diet-i: $(OBJDIR)/start.o $(OBJDIR)/dyn_start.o diet.c $(OBJDIR)/dietlibc.a $(OBJDIR)/dyn_stop.o - $(CROSS)$(CC) -isystem include $(CFLAGS) -nostdlib -o $@ $^ -DDIETHOME=\"$(prefix)\" -DVERSION=\"$(VERSION)\" -DINSTALLVERSION -lgcc -- $(CROSS)strip -R .comment -R .note $@ - - $(PICODIR)/diet-dyn: $(PICODIR)/start.o $(PICODIR)/dyn_start.o diet.c - $(LD_UNSET) $(CROSS)$(CC) -isystem include $(CFLAGS) -fPIC -nostdlib -o $@ $^ -DDIETHOME=\"$(HOME)\" -D__DYN_LIB -DVERSION=\"$(VERSION)\" -L$(PICODIR) -lc -lgcc $(PICODIR)/dyn_stop.o -Wl,-dynamic-linker=$(HOME)/$(PICODIR)/libdl.so -- $(CROSS)strip -R .command -R .note $@ - - $(PICODIR)/diet-dyn-i: $(PICODIR)/start.o $(PICODIR)/dyn_start.o diet.c - $(LD_UNSET) $(CROSS)$(CC) -isystem include $(CFLAGS) -fPIC -nostdlib -o $@ $^ -DDIETHOME=\"$(prefix)\" -D__DYN_LIB -DVERSION=\"$(VERSION)\" -L$(PICODIR) -lc -lgcc $(PICODIR)/dyn_stop.o -Wl,-dynamic-linker=$(ILIBDIR)/libdl.so -DINSTALLVERSION -- $(CROSS)strip -R .command -R .note $@ - - $(OBJDIR)/djb: $(OBJDIR)/compile $(OBJDIR)/load - diff --git a/dietlibc/patches/0.30_pre20060501-r1/02_all_diet-ldconf.patch b/dietlibc/patches/0.30_pre20060501-r1/02_all_diet-ldconf.patch deleted file mode 100644 index c04a2c7..0000000 --- a/dietlibc/patches/0.30_pre20060501-r1/02_all_diet-ldconf.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: dietlibc-0.30_pre20060501/Makefile -=================================================================== ---- dietlibc-0.30_pre20060501.orig/Makefile -+++ dietlibc-0.30_pre20060501/Makefile -@@ -359,7 +359,7 @@ endif - -$(INSTALL) $(PICODIR)/dyn_stop.o $(DESTDIR)$(ILIBDIR)/dyn_dstop.o - -$(INSTALL) $(PICODIR)/dstart.o $(PICODIR)/dyn_so_start.o $(DESTDIR)$(ILIBDIR) - $(INSTALL) -m 644 diet.1 $(DESTDIR)$(MAN1DIR)/diet.1 -- if test -f $(PICODIR)/libc.so -a ! -f $(DESTDIR)/etc/diet.ld.conf; then echo "$(ILIBDIR)" > $(DESTDIR)/etc/diet.ld.conf; fi -+ if test -f $(PICODIR)/libc.so -a ! -f $(DESTDIR)/etc/diet.ld.conf; then mkdir $(DESTDIR)/etc; echo "$(ILIBDIR)" > $(DESTDIR)/etc/diet.ld.conf; fi - for i in `find include -name \*.h`; do install -m 644 -D $$i $(DESTDIR)$(prefix)/$$i; done - - uninstall: diff --git a/dietlibc/patches/0.30_pre20060501-r1/03_all_ppc-rename.patch b/dietlibc/patches/0.30_pre20060501-r1/03_all_ppc-rename.patch deleted file mode 100644 index e03fcf2..0000000 --- a/dietlibc/patches/0.30_pre20060501-r1/03_all_ppc-rename.patch +++ /dev/null @@ -1,2786 +0,0 @@ -diff -NurpP dietlibc-0.30_pre20060501.orig/diet.c dietlibc-0.30_pre20060501-ppc-rename/diet.c ---- dietlibc-0.30_pre20060501.orig/diet.c 2006-04-04 05:47:21.000000000 +0200 -+++ dietlibc-0.30_pre20060501-ppc-rename/diet.c 2006-05-01 12:22:21.566468000 +0200 -@@ -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"; -diff -NurpP dietlibc-0.30_pre20060501.orig/Makefile dietlibc-0.30_pre20060501-ppc-rename/Makefile ---- dietlibc-0.30_pre20060501.orig/Makefile 2006-04-04 07:35:14.000000000 +0200 -+++ dietlibc-0.30_pre20060501-ppc-rename/Makefile 2006-05-01 12:22:21.566468000 +0200 -@@ -24,10 +24,10 @@ ifeq ($(MYARCH),alpha) - ARCH=alpha - else - ifeq ($(MYARCH),ppc) --ARCH=ppc -+ARCH=powerpc - else - ifeq ($(MYARCH),ppc64) --ARCH=ppc64 -+ARCH=powerpc64 - else - ifeq ($(MYARCH),arm) - ARCH=arm -@@ -385,10 +385,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 ppc alpha mips parisc s390 sparc64 x86_64 ia64 ppc64 s390x: -+arm sparc powerpc alpha mips parisc s390 sparc64 x86_64 ia64 powerpc64 s390x: - $(MAKE) ARCH=$@ CROSS=$@-linux- all - - i386: -@@ -405,15 +405,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_pre20060501.orig/powerpc/clone.S dietlibc-0.30_pre20060501-ppc-rename/powerpc/clone.S ---- dietlibc-0.30_pre20060501.orig/powerpc/clone.S 1970-01-01 01:00:00.000000000 +0100 -+++ dietlibc-0.30_pre20060501-ppc-rename/powerpc/clone.S 2001-12-13 17:05:03.000000000 +0100 -@@ -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 -diff -NurpP dietlibc-0.30_pre20060501.orig/powerpc/__longjmp.S dietlibc-0.30_pre20060501-ppc-rename/powerpc/__longjmp.S ---- dietlibc-0.30_pre20060501.orig/powerpc/__longjmp.S 1970-01-01 01:00:00.000000000 +0100 -+++ dietlibc-0.30_pre20060501-ppc-rename/powerpc/__longjmp.S 2001-01-25 18:23:36.000000000 +0100 -@@ -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 -+ -diff -NurpP dietlibc-0.30_pre20060501.orig/powerpc/Makefile.add dietlibc-0.30_pre20060501-ppc-rename/powerpc/Makefile.add ---- dietlibc-0.30_pre20060501.orig/powerpc/Makefile.add 1970-01-01 01:00:00.000000000 +0100 -+++ dietlibc-0.30_pre20060501-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_pre20060501.orig/powerpc/mmap.c dietlibc-0.30_pre20060501-ppc-rename/powerpc/mmap.c ---- dietlibc-0.30_pre20060501.orig/powerpc/mmap.c 1970-01-01 01:00:00.000000000 +0100 -+++ dietlibc-0.30_pre20060501-ppc-rename/powerpc/mmap.c 2001-06-18 23:08:07.000000000 +0200 -@@ -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; -+} -diff -NurpP dietlibc-0.30_pre20060501.orig/powerpc/setjmp.S dietlibc-0.30_pre20060501-ppc-rename/powerpc/setjmp.S ---- dietlibc-0.30_pre20060501.orig/powerpc/setjmp.S 1970-01-01 01:00:00.000000000 +0100 -+++ dietlibc-0.30_pre20060501-ppc-rename/powerpc/setjmp.S 2001-01-09 18:57:44.000000000 +0100 -@@ -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 -diff -NurpP dietlibc-0.30_pre20060501.orig/powerpc/start.S dietlibc-0.30_pre20060501-ppc-rename/powerpc/start.S ---- dietlibc-0.30_pre20060501.orig/powerpc/start.S 1970-01-01 01:00:00.000000000 +0100 -+++ dietlibc-0.30_pre20060501-ppc-rename/powerpc/start.S 2006-04-04 07:35:14.000000000 +0200 -@@ -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 -+ -diff -NurpP dietlibc-0.30_pre20060501.orig/powerpc/syscalls.h dietlibc-0.30_pre20060501-ppc-rename/powerpc/syscalls.h ---- dietlibc-0.30_pre20060501.orig/powerpc/syscalls.h 1970-01-01 01:00:00.000000000 +0100 -+++ dietlibc-0.30_pre20060501-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_pre20060501.orig/powerpc/__testandset.S dietlibc-0.30_pre20060501-ppc-rename/powerpc/__testandset.S ---- dietlibc-0.30_pre20060501.orig/powerpc/__testandset.S 1970-01-01 01:00:00.000000000 +0100 -+++ dietlibc-0.30_pre20060501-ppc-rename/powerpc/__testandset.S 2002-09-16 13:17:01.000000000 +0200 -@@ -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 -+ -diff -NurpP dietlibc-0.30_pre20060501.orig/powerpc/unified.S dietlibc-0.30_pre20060501-ppc-rename/powerpc/unified.S ---- dietlibc-0.30_pre20060501.orig/powerpc/unified.S 1970-01-01 01:00:00.000000000 +0100 -+++ dietlibc-0.30_pre20060501-ppc-rename/powerpc/unified.S 2002-01-21 16:55:19.000000000 +0100 -@@ -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 -+ -diff -NurpP dietlibc-0.30_pre20060501.orig/powerpc64/clone.S dietlibc-0.30_pre20060501-ppc-rename/powerpc64/clone.S ---- dietlibc-0.30_pre20060501.orig/powerpc64/clone.S 1970-01-01 01:00:00.000000000 +0100 -+++ dietlibc-0.30_pre20060501-ppc-rename/powerpc64/clone.S 2005-05-13 20:39:32.000000000 +0200 -@@ -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 -diff -NurpP dietlibc-0.30_pre20060501.orig/powerpc64/__longjmp.S dietlibc-0.30_pre20060501-ppc-rename/powerpc64/__longjmp.S ---- dietlibc-0.30_pre20060501.orig/powerpc64/__longjmp.S 1970-01-01 01:00:00.000000000 +0100 -+++ dietlibc-0.30_pre20060501-ppc-rename/powerpc64/__longjmp.S 2005-09-21 09:33:08.000000000 +0200 -@@ -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 -diff -NurpP dietlibc-0.30_pre20060501.orig/powerpc64/Makefile.add dietlibc-0.30_pre20060501-ppc-rename/powerpc64/Makefile.add ---- dietlibc-0.30_pre20060501.orig/powerpc64/Makefile.add 1970-01-01 01:00:00.000000000 +0100 -+++ dietlibc-0.30_pre20060501-ppc-rename/powerpc64/Makefile.add 2003-10-10 15:37:34.000000000 +0200 -@@ -0,0 +1,3 @@ -+ -+CFLAGS+=-Os -mpowerpc64 -+VPATH:=ppc64:syscalls.s:$(VPATH) -diff -NurpP dietlibc-0.30_pre20060501.orig/powerpc64/setjmp.S dietlibc-0.30_pre20060501-ppc-rename/powerpc64/setjmp.S ---- dietlibc-0.30_pre20060501.orig/powerpc64/setjmp.S 1970-01-01 01:00:00.000000000 +0100 -+++ dietlibc-0.30_pre20060501-ppc-rename/powerpc64/setjmp.S 2005-09-21 09:33:08.000000000 +0200 -@@ -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 -diff -NurpP dietlibc-0.30_pre20060501.orig/powerpc64/start.S dietlibc-0.30_pre20060501-ppc-rename/powerpc64/start.S ---- dietlibc-0.30_pre20060501.orig/powerpc64/start.S 1970-01-01 01:00:00.000000000 +0100 -+++ dietlibc-0.30_pre20060501-ppc-rename/powerpc64/start.S 2006-04-04 07:35:14.000000000 +0200 -@@ -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 -+ -diff -NurpP dietlibc-0.30_pre20060501.orig/powerpc64/syscalls.h dietlibc-0.30_pre20060501-ppc-rename/powerpc64/syscalls.h ---- dietlibc-0.30_pre20060501.orig/powerpc64/syscalls.h 1970-01-01 01:00:00.000000000 +0100 -+++ dietlibc-0.30_pre20060501-ppc-rename/powerpc64/syscalls.h 2005-09-21 09:33:08.000000000 +0200 -@@ -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 -+ -diff -NurpP dietlibc-0.30_pre20060501.orig/powerpc64/__testandset.S dietlibc-0.30_pre20060501-ppc-rename/powerpc64/__testandset.S ---- dietlibc-0.30_pre20060501.orig/powerpc64/__testandset.S 1970-01-01 01:00:00.000000000 +0100 -+++ dietlibc-0.30_pre20060501-ppc-rename/powerpc64/__testandset.S 2003-10-10 15:37:34.000000000 +0200 -@@ -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 -+ -diff -NurpP dietlibc-0.30_pre20060501.orig/powerpc64/umount.S dietlibc-0.30_pre20060501-ppc-rename/powerpc64/umount.S ---- dietlibc-0.30_pre20060501.orig/powerpc64/umount.S 1970-01-01 01:00:00.000000000 +0100 -+++ dietlibc-0.30_pre20060501-ppc-rename/powerpc64/umount.S 2004-12-17 19:47:59.000000000 +0100 -@@ -0,0 +1,8 @@ -+#include "syscalls.h" -+ -+ .text -+diet_proto(umount) -+.umount: -+ li 0, __NR_umount2 -+ li 4, 0 -+ b __unified_syscall -diff -NurpP dietlibc-0.30_pre20060501.orig/powerpc64/unified.S dietlibc-0.30_pre20060501-ppc-rename/powerpc64/unified.S ---- dietlibc-0.30_pre20060501.orig/powerpc64/unified.S 1970-01-01 01:00:00.000000000 +0100 -+++ dietlibc-0.30_pre20060501-ppc-rename/powerpc64/unified.S 2005-05-13 20:39:32.000000000 +0200 -@@ -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) -diff -NurpP dietlibc-0.30_pre20060501.orig/ppc/clone.S dietlibc-0.30_pre20060501-ppc-rename/ppc/clone.S ---- dietlibc-0.30_pre20060501.orig/ppc/clone.S 2001-12-13 17:05:03.000000000 +0100 -+++ dietlibc-0.30_pre20060501-ppc-rename/ppc/clone.S 1970-01-01 01:00:00.000000000 +0100 -@@ -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 -diff -NurpP dietlibc-0.30_pre20060501.orig/ppc/__longjmp.S dietlibc-0.30_pre20060501-ppc-rename/ppc/__longjmp.S ---- dietlibc-0.30_pre20060501.orig/ppc/__longjmp.S 2001-01-25 18:23:36.000000000 +0100 -+++ dietlibc-0.30_pre20060501-ppc-rename/ppc/__longjmp.S 1970-01-01 01:00:00.000000000 +0100 -@@ -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 -- -diff -NurpP dietlibc-0.30_pre20060501.orig/ppc/Makefile.add dietlibc-0.30_pre20060501-ppc-rename/ppc/Makefile.add ---- dietlibc-0.30_pre20060501.orig/ppc/Makefile.add 2001-01-30 16:01:20.000000000 +0100 -+++ dietlibc-0.30_pre20060501-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_pre20060501.orig/ppc/mmap.c dietlibc-0.30_pre20060501-ppc-rename/ppc/mmap.c ---- dietlibc-0.30_pre20060501.orig/ppc/mmap.c 2001-06-18 23:08:07.000000000 +0200 -+++ dietlibc-0.30_pre20060501-ppc-rename/ppc/mmap.c 1970-01-01 01:00:00.000000000 +0100 -@@ -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; --} -diff -NurpP dietlibc-0.30_pre20060501.orig/ppc/setjmp.S dietlibc-0.30_pre20060501-ppc-rename/ppc/setjmp.S ---- dietlibc-0.30_pre20060501.orig/ppc/setjmp.S 2001-01-09 18:57:44.000000000 +0100 -+++ dietlibc-0.30_pre20060501-ppc-rename/ppc/setjmp.S 1970-01-01 01:00:00.000000000 +0100 -@@ -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 -diff -NurpP dietlibc-0.30_pre20060501.orig/ppc/start.S dietlibc-0.30_pre20060501-ppc-rename/ppc/start.S ---- dietlibc-0.30_pre20060501.orig/ppc/start.S 2006-04-04 07:35:14.000000000 +0200 -+++ dietlibc-0.30_pre20060501-ppc-rename/ppc/start.S 1970-01-01 01:00:00.000000000 +0100 -@@ -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 -- -diff -NurpP dietlibc-0.30_pre20060501.orig/ppc/syscalls.h dietlibc-0.30_pre20060501-ppc-rename/ppc/syscalls.h ---- dietlibc-0.30_pre20060501.orig/ppc/syscalls.h 2005-09-21 09:33:08.000000000 +0200 -+++ dietlibc-0.30_pre20060501-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_pre20060501.orig/ppc/__testandset.S dietlibc-0.30_pre20060501-ppc-rename/ppc/__testandset.S ---- dietlibc-0.30_pre20060501.orig/ppc/__testandset.S 2002-09-16 13:17:01.000000000 +0200 -+++ dietlibc-0.30_pre20060501-ppc-rename/ppc/__testandset.S 1970-01-01 01:00:00.000000000 +0100 -@@ -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 -- -diff -NurpP dietlibc-0.30_pre20060501.orig/ppc/unified.S dietlibc-0.30_pre20060501-ppc-rename/ppc/unified.S ---- dietlibc-0.30_pre20060501.orig/ppc/unified.S 2002-01-21 16:55:19.000000000 +0100 -+++ dietlibc-0.30_pre20060501-ppc-rename/ppc/unified.S 1970-01-01 01:00:00.000000000 +0100 -@@ -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 -- -diff -NurpP dietlibc-0.30_pre20060501.orig/ppc64/clone.S dietlibc-0.30_pre20060501-ppc-rename/ppc64/clone.S ---- dietlibc-0.30_pre20060501.orig/ppc64/clone.S 2005-05-13 20:39:32.000000000 +0200 -+++ dietlibc-0.30_pre20060501-ppc-rename/ppc64/clone.S 1970-01-01 01:00:00.000000000 +0100 -@@ -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 -diff -NurpP dietlibc-0.30_pre20060501.orig/ppc64/__longjmp.S dietlibc-0.30_pre20060501-ppc-rename/ppc64/__longjmp.S ---- dietlibc-0.30_pre20060501.orig/ppc64/__longjmp.S 2005-09-21 09:33:08.000000000 +0200 -+++ dietlibc-0.30_pre20060501-ppc-rename/ppc64/__longjmp.S 1970-01-01 01:00:00.000000000 +0100 -@@ -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 -diff -NurpP dietlibc-0.30_pre20060501.orig/ppc64/Makefile.add dietlibc-0.30_pre20060501-ppc-rename/ppc64/Makefile.add ---- dietlibc-0.30_pre20060501.orig/ppc64/Makefile.add 2003-10-10 15:37:34.000000000 +0200 -+++ dietlibc-0.30_pre20060501-ppc-rename/ppc64/Makefile.add 1970-01-01 01:00:00.000000000 +0100 -@@ -1,3 +0,0 @@ -- --CFLAGS+=-Os -mpowerpc64 --VPATH:=ppc64:syscalls.s:$(VPATH) -diff -NurpP dietlibc-0.30_pre20060501.orig/ppc64/setjmp.S dietlibc-0.30_pre20060501-ppc-rename/ppc64/setjmp.S ---- dietlibc-0.30_pre20060501.orig/ppc64/setjmp.S 2005-09-21 09:33:08.000000000 +0200 -+++ dietlibc-0.30_pre20060501-ppc-rename/ppc64/setjmp.S 1970-01-01 01:00:00.000000000 +0100 -@@ -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 -diff -NurpP dietlibc-0.30_pre20060501.orig/ppc64/start.S dietlibc-0.30_pre20060501-ppc-rename/ppc64/start.S ---- dietlibc-0.30_pre20060501.orig/ppc64/start.S 2006-04-04 07:35:14.000000000 +0200 -+++ dietlibc-0.30_pre20060501-ppc-rename/ppc64/start.S 1970-01-01 01:00:00.000000000 +0100 -@@ -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 -- -diff -NurpP dietlibc-0.30_pre20060501.orig/ppc64/syscalls.h dietlibc-0.30_pre20060501-ppc-rename/ppc64/syscalls.h ---- dietlibc-0.30_pre20060501.orig/ppc64/syscalls.h 2005-09-21 09:33:08.000000000 +0200 -+++ dietlibc-0.30_pre20060501-ppc-rename/ppc64/syscalls.h 1970-01-01 01:00:00.000000000 +0100 -@@ -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 -- -diff -NurpP dietlibc-0.30_pre20060501.orig/ppc64/__testandset.S dietlibc-0.30_pre20060501-ppc-rename/ppc64/__testandset.S ---- dietlibc-0.30_pre20060501.orig/ppc64/__testandset.S 2003-10-10 15:37:34.000000000 +0200 -+++ dietlibc-0.30_pre20060501-ppc-rename/ppc64/__testandset.S 1970-01-01 01:00:00.000000000 +0100 -@@ -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 -- -diff -NurpP dietlibc-0.30_pre20060501.orig/ppc64/umount.S dietlibc-0.30_pre20060501-ppc-rename/ppc64/umount.S ---- dietlibc-0.30_pre20060501.orig/ppc64/umount.S 2004-12-17 19:47:59.000000000 +0100 -+++ dietlibc-0.30_pre20060501-ppc-rename/ppc64/umount.S 1970-01-01 01:00:00.000000000 +0100 -@@ -1,8 +0,0 @@ --#include "syscalls.h" -- -- .text --diet_proto(umount) --.umount: -- li 0, __NR_umount2 -- li 4, 0 -- b __unified_syscall -diff -NurpP dietlibc-0.30_pre20060501.orig/ppc64/unified.S dietlibc-0.30_pre20060501-ppc-rename/ppc64/unified.S ---- dietlibc-0.30_pre20060501.orig/ppc64/unified.S 2005-05-13 20:39:32.000000000 +0200 -+++ dietlibc-0.30_pre20060501-ppc-rename/ppc64/unified.S 1970-01-01 01:00:00.000000000 +0100 -@@ -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) -diff -NurpP dietlibc-0.30_pre20060501.orig/syscalls.h dietlibc-0.30_pre20060501-ppc-rename/syscalls.h ---- dietlibc-0.30_pre20060501.orig/syscalls.h 2005-03-15 09:51:22.000000000 +0100 -+++ dietlibc-0.30_pre20060501-ppc-rename/syscalls.h 2006-05-01 12:22:21.566468000 +0200 -@@ -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" diff --git a/dietlibc/patches/0.30_pre20060501-r1/04_all_prefix.patch b/dietlibc/patches/0.30_pre20060501-r1/04_all_prefix.patch deleted file mode 100644 index 9f8aa7f..0000000 --- a/dietlibc/patches/0.30_pre20060501-r1/04_all_prefix.patch +++ /dev/null @@ -1,10 +0,0 @@ -diff -NurpP dietlibc-0.30_pre20060501.orig/Makefile dietlibc-0.30_pre20060501/Makefile ---- dietlibc-0.30_pre20060501.orig/Makefile 2006-04-04 07:35:14.000000000 +0200 -+++ dietlibc-0.30_pre20060501/Makefile 2006-05-01 13:03:31.816974500 +0200 -@@ -1,5 +1,5 @@ - INSTALL=install --prefix?=/opt/diet -+prefix=/usr/diet - # Set the following to install to a different root - #DESTDIR=/tmp/fefix - # Use "make DEBUG=1" to compile a debug version. diff --git a/dietlibc/patches/0.30_pre20060501-r1/05_all_diet.ld.conf.patch b/dietlibc/patches/0.30_pre20060501-r1/05_all_diet.ld.conf.patch deleted file mode 100644 index 027c32e..0000000 --- a/dietlibc/patches/0.30_pre20060501-r1/05_all_diet.ld.conf.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: dietlibc-0.30_pre20060501/Makefile -=================================================================== ---- dietlibc-0.30_pre20060501/Makefile -+++ dietlibc-0.30_pre20060501/Makefile -@@ -359,7 +359,7 @@ endif - -$(INSTALL) $(PICODIR)/dyn_stop.o $(DESTDIR)$(ILIBDIR)/dyn_dstop.o - -$(INSTALL) $(PICODIR)/dstart.o $(PICODIR)/dyn_so_start.o $(DESTDIR)$(ILIBDIR) - $(INSTALL) -m 644 diet.1 $(DESTDIR)$(MAN1DIR)/diet.1 -- if test -f $(PICODIR)/libc.so -a ! -f $(DESTDIR)/etc/diet.ld.conf; then mkdir $(DESTDIR)/etc; echo "$(ILIBDIR)" > $(DESTDIR)/etc/diet.ld.conf; fi -+ if test -f $(PICODIR)/libc.so -a ! -f $(DESTDIR)/etc/diet.ld.conf; then mkdir $(DESTDIR)/etc; echo "$(ILIBDIR)-$(ARCH)" > $(DESTDIR)/etc/diet.ld.conf; fi - for i in `find include -name \*.h`; do install -m 644 -D $$i $(DESTDIR)$(prefix)/$$i; done - - uninstall: diff --git a/dietlibc/patches/0.30_pre20060501-r1/20_all_dirent-prototype.patch b/dietlibc/patches/0.30_pre20060501-r1/20_all_dirent-prototype.patch deleted file mode 100644 index 0d229e6..0000000 --- a/dietlibc/patches/0.30_pre20060501-r1/20_all_dirent-prototype.patch +++ /dev/null @@ -1,15 +0,0 @@ -Index: dietlibc-0.29/include/dirent.h -=================================================================== ---- dietlibc-0.29.orig/include/dirent.h -+++ dietlibc-0.29/include/dirent.h -@@ -37,8 +37,8 @@ int closedir (DIR *__dirp) __THROW; - struct dirent *readdir (DIR *__dirp) __THROW; - struct dirent64 *readdir64 (DIR *__dirp) __THROW; - void rewinddir (DIR *__dirp) __THROW; --void seekdir (DIR *__dirp, long int __pos) __THROW; --long int telldir (DIR *__dirp) __THROW; -+void seekdir (DIR *__dirp, off_t __pos) __THROW; -+off_t telldir (DIR *__dirp) __THROW; - - int scandir(const char *dir, struct dirent ***namelist, - int (*selection)(const struct dirent *), diff --git a/dietlibc/patches/0.30_pre20060501-r1/21_all_nice.patch b/dietlibc/patches/0.30_pre20060501-r1/21_all_nice.patch deleted file mode 100644 index 641e6c3..0000000 --- a/dietlibc/patches/0.30_pre20060501-r1/21_all_nice.patch +++ /dev/null @@ -1,20 +0,0 @@ -Index: dietlibc-0.29/lib/__nice.c -=================================================================== ---- dietlibc-0.29.orig/lib/__nice.c -+++ dietlibc-0.29/lib/__nice.c -@@ -1,9 +1,14 @@ - #include "syscalls.h" - #include <sys/time.h> - #include <sys/resource.h> -+#include <errno.h> - - #ifndef __NR_nice - int nice(int i) { -- return setpriority(PRIO_PROCESS,0,getpriority(PRIO_PROCESS,0)+i); -+ if (setpriority(PRIO_PROCESS,0,getpriority(PRIO_PROCESS,0)+i) == -1) { -+ errno=EPERM; -+ return -1; -+ } -+ return getpriority(PRIO_PROCESS,0); - } - #endif diff --git a/dietlibc/patches/0.30_pre20060501-r1/40_sparc64_Makefile.patch b/dietlibc/patches/0.30_pre20060501-r1/40_sparc64_Makefile.patch deleted file mode 100644 index 7230687..0000000 --- a/dietlibc/patches/0.30_pre20060501-r1/40_sparc64_Makefile.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: dietlibc-0.30_pre20060501/Makefile -=================================================================== ---- dietlibc-0.30_pre20060501.orig/Makefile -+++ dietlibc-0.30_pre20060501/Makefile -@@ -8,7 +8,7 @@ LIBDIR=${prefix}/lib - BINDIR=${prefix}/bin - MAN1DIR=${prefix}/man/man1 - --MYARCH:=$(shell uname -m | sed -e 's/i[4-9]86/i386/' -e 's/armv[3-6]t\?e\?[lb]/arm/') -+MYARCH:=$(shell uname -m | sed -e 's/i[4-9]86/i386/' -e 's/armv[3-6]t\?e\?[lb]/arm/' -e 's/sparc64/sparc/') - - # This extra-ugly cruft is here so make will not run uname and sed each - # time it looks at $(OBJDIR). This alone sped up running make when diff --git a/dietlibc/patches/0.30_pre20060501-r1/41_sparc_termios.patch b/dietlibc/patches/0.30_pre20060501-r1/41_sparc_termios.patch deleted file mode 100644 index e2ff4cf..0000000 --- a/dietlibc/patches/0.30_pre20060501-r1/41_sparc_termios.patch +++ /dev/null @@ -1,15 +0,0 @@ -Index: dietlibc-0.29/include/termios.h -=================================================================== ---- dietlibc-0.29.orig/include/termios.h -+++ dietlibc-0.29/include/termios.h -@@ -202,8 +202,8 @@ struct termios { - #define VDISCARD 13 - #define VWERASE 14 - #define VLNEXT 15 --#define VMIN 16 --#define VTIME 17 -+#define VMIN VEOF -+#define VTIME VEOL - #else /* arm, i386, parisc, s390, x86_64 */ - #define VINTR 0 - #define VQUIT 1 diff --git a/dietlibc/patches/0.30_pre20060501-r1/42_arm_waitpid.patch b/dietlibc/patches/0.30_pre20060501-r1/42_arm_waitpid.patch deleted file mode 100644 index c0f9835..0000000 --- a/dietlibc/patches/0.30_pre20060501-r1/42_arm_waitpid.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: dietlibc-0.29/arm/syscalls.h -=================================================================== ---- dietlibc-0.29.orig/arm/syscalls.h -+++ dietlibc-0.29/arm/syscalls.h -@@ -6,7 +6,7 @@ - #define __NR_write (__NR_SYSCALL_BASE+ 4) - #define __NR_open (__NR_SYSCALL_BASE+ 5) - #define __NR_close (__NR_SYSCALL_BASE+ 6) -- /* 7 was sys_waitpid */ -+#define __NR_waitpid (__NR_SYSCALL_BASE+ 7) - #define __NR_creat (__NR_SYSCALL_BASE+ 8) - #define __NR_link (__NR_SYSCALL_BASE+ 9) - #define __NR_unlink (__NR_SYSCALL_BASE+ 10) diff --git a/dietlibc/patches/0.30_pre20060501-r1/43_ia64_no-fno-omit-frame-pointer.patch b/dietlibc/patches/0.30_pre20060501-r1/43_ia64_no-fno-omit-frame-pointer.patch deleted file mode 100644 index 9c3a929..0000000 --- a/dietlibc/patches/0.30_pre20060501-r1/43_ia64_no-fno-omit-frame-pointer.patch +++ /dev/null @@ -1,16 +0,0 @@ -Index: diet.c -=================================================================== -RCS file: /cvs/dietlibc/diet.c,v -retrieving revision 1.60 -diff -u -r1.60 diet.c ---- diet.c 17 Dec 2004 18:47:58 -0000 1.60 -+++ diet.c 23 Dec 2004 09:20:56 -0000 -@@ -40,7 +40,7 @@ - "s390","-Os","-fomit-frame-pointer",0, - "s390x","-Os","-fomit-frame-pointer",0, - "sh","-Os","-fomit-frame-pointer",0, -- "ia64","-Os","-fno-omit-frame-pointer",0, -+ "ia64","-Os",0, - "x86_64","-Os","-fstrict-aliasing","-momit-leaf-frame-pointer","-mfancy-math-387",0, - 0}; - diff --git a/dietlibc/patches/0.30_pre20060501-r1/44_ia64_proc-endp.patch b/dietlibc/patches/0.30_pre20060501-r1/44_ia64_proc-endp.patch deleted file mode 100644 index aee3eaf..0000000 --- a/dietlibc/patches/0.30_pre20060501-r1/44_ia64_proc-endp.patch +++ /dev/null @@ -1,58 +0,0 @@ -Index: ia64/clone.S -=================================================================== -RCS file: /cvs/dietlibc/ia64/clone.S,v -retrieving revision 1.1 -diff -u -r1.1 clone.S ---- ia64/clone.S 13 May 2002 15:55:50 -0000 1.1 -+++ ia64/clone.S 12 Aug 2005 17:51:49 -0000 -@@ -37,5 +37,4 @@ - br.call.dptk.few b0=__error_unified_syscall - br.ret.sptk.few b0 - .endp __clone --.endp __clone2 - .size __clone, . - __clone -Index: ia64/unified.S -=================================================================== -RCS file: /cvs/dietlibc/ia64/unified.S,v -retrieving revision 1.2 -diff -u -r1.2 unified.S ---- ia64/unified.S 24 Jul 2002 12:47:33 -0000 1.2 -+++ ia64/unified.S 12 Aug 2005 17:51:49 -0000 -@@ -16,9 +16,7 @@ - .text - - .globl __unified_syscall --.proc __unified_syscall - .globl __error_unified_syscall --.proc __error_unified_syscall - .globl _exit - .proc _exit - -@@ -27,11 +25,18 @@ - .endp _exit - .size _exit, . - _exit - -+.proc __unified_syscall -+ - __unified_syscall: - break.i 0x100000 - movl r2=errno - cmp.eq p6,p0=-1,r10 - ;; -+.endp __unified_syscall -+.size __unified_syscall, . - __unified_syscall -+ -+.proc __error_unified_syscall -+ - __error_unified_syscall: - (p6) st4 [r2]=r8 - (p6) mov r8=-1 -@@ -39,8 +44,5 @@ - #include "dietuglyweaks.h" - - br.ret.sptk.few rp -- --.endp __unified_syscall - .endp __error_unified_syscall --.size __unified_syscall, __error_unified_syscall - __unified_syscall - .size __error_unified_syscall, . - __error_unified_syscall diff --git a/dietlibc/patches/0.30_pre20060501-r1/45_parisc_iitlbp.patch b/dietlibc/patches/0.30_pre20060501-r1/45_parisc_iitlbp.patch deleted file mode 100644 index b1f86a9..0000000 --- a/dietlibc/patches/0.30_pre20060501-r1/45_parisc_iitlbp.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: parisc/clone.S -=================================================================== -RCS file: /cvs/dietlibc/parisc/clone.S,v -retrieving revision 1.2 -diff -u -r1.2 clone.S ---- parisc/clone.S 20 Jul 2002 13:29:26 -0000 1.2 -+++ parisc/clone.S 16 Oct 2005 18:28:55 -0000 -@@ -37,4 +37,4 @@ - bl _exit,%r2 /* exit thread */ - copy %r28,%r26 /* return -> arg0 */ - -- iitlbp %r0,(%r0) /* DIE ! DIE ! */ -+ iitlbp %r0,(%sr0,%r0) /* DIE ! DIE ! */ diff --git a/dietlibc/patches/0.30_pre20060501-r1/60_all_ssp.patch b/dietlibc/patches/0.30_pre20060501-r1/60_all_ssp.patch deleted file mode 100644 index a43fdb1..0000000 --- a/dietlibc/patches/0.30_pre20060501-r1/60_all_ssp.patch +++ /dev/null @@ -1,239 +0,0 @@ -Index: dietlibc-0.30_pre20060501/i386/start.S -=================================================================== ---- dietlibc-0.30_pre20060501.orig/i386/start.S -+++ dietlibc-0.30_pre20060501/i386/start.S -@@ -50,7 +50,9 @@ _start: - PUT_VAR %edi, __vsyscall, %edx - 1: - #endif -- -+#ifdef __dietlibc__ -+ call __guard_setup -+#endif - #ifdef WANT_DYNAMIC - call _dyn_start - #else -Index: dietlibc-0.30_pre20060501/lib/ssp.c -=================================================================== ---- /dev/null -+++ dietlibc-0.30_pre20060501/lib/ssp.c -@@ -0,0 +1,129 @@ -+/* -+ * Distributed under the terms of the GNU General Public License v2 -+ * $Header: /var/cvsroot/gentoo-x86/dev-libs/dietlibc/files/ssp.c,v 1.2 2004/12/05 19:25:40 solar Exp $ -+ * -+ * This is a modified version of Hiroaki Etoh's stack smashing routines -+ * implemented for glibc. -+ * -+ * The following people have contributed input to this code. -+ * Ned Ludd - <solar[@]gentoo.org> -+ * Alexander Gabert - <pappy[@]gentoo.org> -+ * The PaX Team - <pageexec[@]freemail.hu> -+ * Peter S. Mazinger - <ps.m[@]gmx.net> -+ * Yoann Vandoorselaere - <yoann[@]prelude-ids.org> -+ * Robert Connolly - <robert[@]linuxfromscratch.org> -+ * Cory Visi <cory@visi.name> -+ * -+ */ -+ -+#ifdef HAVE_CONFIG_H -+# include <config.h> -+#endif -+ -+#include <stdio.h> -+#include <string.h> -+#include <fcntl.h> -+#include <unistd.h> -+#include <signal.h> -+#include <sys/types.h> -+#include <sys/socket.h> -+#include <sys/un.h> -+#include <sys/time.h> -+ -+#ifdef __PROPOLICE_BLOCK_SEGV__ -+#define SSP_SIGTYPE SIGSEGV -+#elif __PROPOLICE_BLOCK_KILL__ -+#define SSP_SIGTYPE SIGKILL -+#else -+#define SSP_SIGTYPE SIGABRT -+#endif -+ -+unsigned long __guard = 0UL; -+ -+void -+__guard_setup (void) -+{ -+ size_t size; -+ if (__guard != 0UL) -+ return; -+ -+#ifndef __SSP_QUICK_CANARY__ -+ /* -+ * Attempt to open kernel pseudo random device if one exists before -+ * opening urandom to avoid system entropy depletion. -+ */ -+ { -+ int fd; -+#ifdef HAVE_DEV_ERANDOM -+ if ((fd = open ("/dev/erandom", O_RDONLY)) == (-1)) -+#endif -+ fd = open ("/dev/urandom", O_RDONLY); -+ if (fd != (-1)) -+ { -+ size = read (fd, (char *) &__guard, sizeof (__guard)); -+ close (fd); -+ if (size == sizeof (__guard)) -+ return; -+ } -+ } -+#endif -+ -+ /* If sysctl was unsuccessful, use the "terminator canary". */ -+ __guard = 0xFF0A0D00UL; -+ -+ { -+ /* Everything failed? Or we are using a weakened model of the -+ * terminator canary */ -+ struct timeval tv; -+ -+ gettimeofday (&tv, NULL); -+ __guard ^= tv.tv_usec ^ tv.tv_sec; -+ } -+} -+ -+void -+__stack_smash_handler (char func[], int damaged) -+{ -+ struct sigaction sa; -+ const char message[] = ": stack smashing attack in function "; -+ int bufsz, len; -+ char buf[512]; -+ static char *__progname = "dietapp"; -+ -+ sigset_t mask; -+ sigfillset (&mask); -+ -+ sigdelset (&mask, SSP_SIGTYPE); /* Block all signal handlers */ -+ sigprocmask (SIG_BLOCK, &mask, NULL); /* except SIGABRT */ -+ -+ bufsz = sizeof (buf); -+ strcpy (buf, "<2>"); -+ len = 3; -+ -+ strncat (buf, __progname, sizeof (buf) - 4); -+ len = strlen (buf); -+ -+ if (bufsz > len) -+ { -+ strncat (buf, message, bufsz - len - 1); -+ len = strlen (buf); -+ } -+ if (bufsz > len) -+ { -+ strncat (buf, func, bufsz - len - 1); -+ len = strlen (buf); -+ } -+ -+ /* print error message */ -+ write (STDERR_FILENO, buf + 3, len - 3); -+ write (STDERR_FILENO, "()\n", 3); -+ -+ /* Make sure the default handler is associated with the our signal handler */ -+ memset (&sa, 0, sizeof (struct sigaction)); -+ sigfillset (&sa.sa_mask); /* Block all signals */ -+ sa.sa_flags = 0; -+ sa.sa_handler = SIG_DFL; -+ sigaction (SSP_SIGTYPE, &sa, NULL); -+ (void) kill (getpid (), SSP_SIGTYPE); -+ _exit (127); -+} -Index: dietlibc-0.30_pre20060501/sparc/start.S -=================================================================== ---- dietlibc-0.30_pre20060501.orig/sparc/start.S -+++ dietlibc-0.30_pre20060501/sparc/start.S -@@ -31,6 +31,9 @@ _start: - be NULL. */ - - /* Let libc do the rest of the initialization, and call main. */ -+#if 0 /* FIXME: __dietlibc__ */ -+ call __guard_setup -+#endif - #ifdef WANT_DYNAMIC - call _dyn_start - #else -Index: dietlibc-0.30_pre20060501/sparc64/start.S -=================================================================== ---- dietlibc-0.30_pre20060501.orig/sparc64/start.S -+++ dietlibc-0.30_pre20060501/sparc64/start.S -@@ -31,6 +31,9 @@ _start: - be NULL. */ - - /* Let libc do the rest of the initialization, and call main. */ -+#if 0 /* FIXME: __dietlibc__ */ -+ call __guard_setup -+#endif - #ifdef WANT_DYNAMIC - call _dyn_start - #else -Index: dietlibc-0.30_pre20060501/x86_64/start.S -=================================================================== ---- dietlibc-0.30_pre20060501.orig/x86_64/start.S -+++ dietlibc-0.30_pre20060501/x86_64/start.S -@@ -35,6 +35,10 @@ _start: - popq %rdi - #endif - -+#if 0 /* FIXME: __dietlibc__ */ -+ call __guard_setup -+#endif -+ - #ifdef WANT_DYNAMIC - call _dyn_start - #else -Index: dietlibc-0.30_pre20060501/lib/stack_smash_handler2.c -=================================================================== ---- dietlibc-0.30_pre20060501.orig/lib/stack_smash_handler2.c -+++ /dev/null -@@ -1,12 +0,0 @@ --#include <unistd.h> --#include <write12.h> -- --void __stack_chk_fail(void); -- --/* earlier versions of ProPolice actually gave the address and function -- * name as arguments to the handler, so it could print some useful -- * diagnostics. No more. :-( */ --void __stack_chk_fail(void) { -- __write2("smashed stack detected, program terminated.\n"); -- _exit(127); --} -Index: dietlibc-0.30_pre20060501/lib/stack_smash_handler.c -=================================================================== ---- dietlibc-0.30_pre20060501.orig/lib/stack_smash_handler.c -+++ /dev/null -@@ -1,25 +0,0 @@ --#include <write12.h> --#include <unistd.h> -- --/* this is only used with ProPolice in gcc 3.x */ -- --void __stack_smash_handler(char* func,unsigned int damaged); --void __stack_smash_handler(char* func,unsigned int damaged) { -- char buf[sizeof(char*)*2+1]; -- int i; -- for (i=0; i<(int)sizeof(buf)-1; ++i) { -- char c=damaged&0xf; -- c+=c<10?'0':'a'; -- buf[sizeof(buf)-2-i]=c; -- damaged>>=4; -- } -- buf[sizeof(buf)-1]=0; -- __write2("stack smashed in "); -- __write2(func); -- __write2(" (value 0x"); -- __write2(buf); -- __write2(")\n"); -- _exit(127); --} -- -- |