diff options
author | Benedikt Boehm <hollow@gentoo.org> | 2006-06-22 07:17:16 +0000 |
---|---|---|
committer | Benedikt Boehm <hollow@gentoo.org> | 2006-06-22 07:17:16 +0000 |
commit | 0b0bb7d0808b6750e322f3c71df0972971675e3a (patch) | |
tree | f5fcf864601297ddba338ee85ff5e38ab35096fb /dietlibc | |
parent | Seems, I've waited too long with the other release; Bertl just updated to _rc24 (diff) | |
download | misc-0b0bb7d0808b6750e322f3c71df0972971675e3a.tar.gz misc-0b0bb7d0808b6750e322f3c71df0972971675e3a.tar.bz2 misc-0b0bb7d0808b6750e322f3c71df0972971675e3a.zip |
new cvs snapshot patches
svn path=/; revision=388
Diffstat (limited to 'dietlibc')
12 files changed, 3072 insertions, 0 deletions
diff --git a/dietlibc/patches/0.30_pre20060621-r0/00_all_custom-cflags.patch b/dietlibc/patches/0.30_pre20060621-r0/00_all_custom-cflags.patch new file mode 100644 index 0000000..f726790 --- /dev/null +++ b/dietlibc/patches/0.30_pre20060621-r0/00_all_custom-cflags.patch @@ -0,0 +1,23 @@ +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_pre20060621-r0/01_all_nostrip.patch b/dietlibc/patches/0.30_pre20060621-r0/01_all_nostrip.patch new file mode 100644 index 0000000..f5ab554 --- /dev/null +++ b/dietlibc/patches/0.30_pre20060621-r0/01_all_nostrip.patch @@ -0,0 +1,61 @@ +--- dietlibc/Makefile.orig 2006-06-21 21:18:13.000000000 +0200 ++++ dietlibc/Makefile 2006-06-21 21:35:15.252354000 +0200 +@@ -161,7 +161,6 @@ + + $(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 $@ +@@ -171,11 +170,9 @@ + + $(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 $@ -D__dietlibc__ +- $(COMMENT) -$(CROSS)strip -x -R .comment -R .note $@ + endif + + ifeq ($(shell $(CC) -v 2>&1 | grep "gcc version"),gcc version 4.0.0) +@@ -246,18 +243,15 @@ + + $(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) +@@ -306,19 +300,15 @@ + + $(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_pre20060621-r0/02_all_want-stackgap.patch b/dietlibc/patches/0.30_pre20060621-r0/02_all_want-stackgap.patch new file mode 100644 index 0000000..4a94426 --- /dev/null +++ b/dietlibc/patches/0.30_pre20060621-r0/02_all_want-stackgap.patch @@ -0,0 +1,13 @@ +Index: dietlibc-0.30_pre20060501/dietfeatures.h +=================================================================== +--- dietlibc-0.30_pre20060501.orig/dietfeatures.h ++++ dietlibc-0.30_pre20060501/dietfeatures.h +@@ -99,7 +99,7 @@ + /* WARNING: this appears to break with some binutils versions. Works + * for me with binutils 2.15. The symptom is an error message that + * `main' can not be found. */ +-/* #define WANT_STACKGAP */ ++#define WANT_STACKGAP + + /* Include support for ProPolice/SSP, calls guard_setup */ + /* ProPolice is part of gcc 4.1 and up, there were patches for earlier diff --git a/dietlibc/patches/0.30_pre20060621-r0/03_all_ppc-rename.patch b/dietlibc/patches/0.30_pre20060621-r0/03_all_ppc-rename.patch new file mode 100644 index 0000000..27d818d --- /dev/null +++ b/dietlibc/patches/0.30_pre20060621-r0/03_all_ppc-rename.patch @@ -0,0 +1,2817 @@ +diff -Nurp dietlibc.orig/diet.c dietlibc/diet.c +--- dietlibc.orig/diet.c 2006-06-21 21:44:44.287916500 +0200 ++++ dietlibc/diet.c 2006-06-21 21:39:49.665503750 +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 -Nurp dietlibc.orig/Makefile dietlibc/Makefile +--- dietlibc.orig/Makefile 2006-06-21 21:44:44.283916250 +0200 ++++ dietlibc/Makefile 2006-06-21 21:42:07.314106250 +0200 +@@ -23,11 +23,11 @@ else + ifeq ($(MYARCH),alpha) + ARCH=alpha + else +-ifeq ($(MYARCH),ppc) +-ARCH=ppc ++ifeq ($(MYARCH),powerpc) ++ARCH=powerpc + else +-ifeq ($(MYARCH),ppc64) +-ARCH=ppc64 ++ifeq ($(MYARCH),powerpc64) ++ARCH=powerpc64 + else + ifeq ($(MYARCH),arm) + ARCH=arm +@@ -296,10 +296,10 @@ $(PICODIR)/libm.so: $(DYN_LIBMATH_OBJS) + $(SYSCALLOBJ): syscalls.h + + $(OBJDIR)/elftrunc: $(OBJDIR)/diet contrib/elftrunc.c +- bin-$(MYARCH)/diet $(CROSS)$(CC) $(CFLAGS) -o $@ contrib/elftrunc.c ++ bin-$(ARCH)/diet $(CROSS)$(CC) $(CFLAGS) -o $@ contrib/elftrunc.c + + $(OBJDIR)/dnsd: $(OBJDIR)/diet contrib/dnsd.c +- bin-$(MYARCH)/diet $(CROSS)$(CC) $(CFLAGS) -o $@ contrib/dnsd.c ++ bin-$(ARCH)/diet $(CROSS)$(CC) $(CFLAGS) -o $@ contrib/dnsd.c + + VERSION=dietlibc-$(shell head -n 1 CHANGES|sed 's/://') + CURNAME=$(notdir $(shell pwd)) +@@ -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 alpha mips parisc s390 sparc64 x86_64 ia64 ppc64 s390x: ++arm sparc alpha mips parisc s390 sparc64 x86_64 ia64 powerpc64 s390x: + $(MAKE) ARCH=$@ CROSS=$@-linux- all + + i386: +@@ -398,8 +398,8 @@ else + $(MAKE) ARCH=$@ CROSS=$@-linux- all + endif + +-ppc: +-ifeq ($(MYARCH),ppc64) ++powerpc: ++ifeq ($(MYARCH),powerpc64) + $(MAKE) ARCH=$@ CC="$(CC) -m32" all + else + $(MAKE) ARCH=$@ CROSS=$@-linux- all +@@ -412,15 +412,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 -Nurp dietlibc.orig/powerpc/clone.S dietlibc/powerpc/clone.S +--- dietlibc.orig/powerpc/clone.S 1970-01-01 01:00:00.000000000 +0100 ++++ dietlibc/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 -Nurp dietlibc.orig/powerpc/__longjmp.S dietlibc/powerpc/__longjmp.S +--- dietlibc.orig/powerpc/__longjmp.S 1970-01-01 01:00:00.000000000 +0100 ++++ dietlibc/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 -Nurp dietlibc.orig/powerpc/Makefile.add dietlibc/powerpc/Makefile.add +--- dietlibc.orig/powerpc/Makefile.add 1970-01-01 01:00:00.000000000 +0100 ++++ dietlibc/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 -Nurp dietlibc.orig/powerpc/mmap.c dietlibc/powerpc/mmap.c +--- dietlibc.orig/powerpc/mmap.c 1970-01-01 01:00:00.000000000 +0100 ++++ dietlibc/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 -Nurp dietlibc.orig/powerpc/setjmp.S dietlibc/powerpc/setjmp.S +--- dietlibc.orig/powerpc/setjmp.S 1970-01-01 01:00:00.000000000 +0100 ++++ dietlibc/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 -Nurp dietlibc.orig/powerpc/start.S dietlibc/powerpc/start.S +--- dietlibc.orig/powerpc/start.S 1970-01-01 01:00:00.000000000 +0100 ++++ dietlibc/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 -Nurp dietlibc.orig/powerpc/syscalls.h dietlibc/powerpc/syscalls.h +--- dietlibc.orig/powerpc/syscalls.h 1970-01-01 01:00:00.000000000 +0100 ++++ dietlibc/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 -Nurp dietlibc.orig/powerpc/__testandset.S dietlibc/powerpc/__testandset.S +--- dietlibc.orig/powerpc/__testandset.S 1970-01-01 01:00:00.000000000 +0100 ++++ dietlibc/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 -Nurp dietlibc.orig/powerpc/unified.S dietlibc/powerpc/unified.S +--- dietlibc.orig/powerpc/unified.S 1970-01-01 01:00:00.000000000 +0100 ++++ dietlibc/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 -Nurp dietlibc.orig/powerpc64/clone.S dietlibc/powerpc64/clone.S +--- dietlibc.orig/powerpc64/clone.S 1970-01-01 01:00:00.000000000 +0100 ++++ dietlibc/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 -Nurp dietlibc.orig/powerpc64/__longjmp.S dietlibc/powerpc64/__longjmp.S +--- dietlibc.orig/powerpc64/__longjmp.S 1970-01-01 01:00:00.000000000 +0100 ++++ dietlibc/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 -Nurp dietlibc.orig/powerpc64/Makefile.add dietlibc/powerpc64/Makefile.add +--- dietlibc.orig/powerpc64/Makefile.add 1970-01-01 01:00:00.000000000 +0100 ++++ dietlibc/powerpc64/Makefile.add 2006-06-21 21:18:13.787790750 +0200 +@@ -0,0 +1,5 @@ ++ ++CFLAGS+=-Os -mpowerpc64 ++VPATH:=ppc64:syscalls.s:$(VPATH) ++ ++CC+=-m64 +diff -Nurp dietlibc.orig/powerpc64/setjmp.S dietlibc/powerpc64/setjmp.S +--- dietlibc.orig/powerpc64/setjmp.S 1970-01-01 01:00:00.000000000 +0100 ++++ dietlibc/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 -Nurp dietlibc.orig/powerpc64/start.S dietlibc/powerpc64/start.S +--- dietlibc.orig/powerpc64/start.S 1970-01-01 01:00:00.000000000 +0100 ++++ dietlibc/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 -Nurp dietlibc.orig/powerpc64/syscalls.h dietlibc/powerpc64/syscalls.h +--- dietlibc.orig/powerpc64/syscalls.h 1970-01-01 01:00:00.000000000 +0100 ++++ dietlibc/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 -Nurp dietlibc.orig/powerpc64/__testandset.S dietlibc/powerpc64/__testandset.S +--- dietlibc.orig/powerpc64/__testandset.S 1970-01-01 01:00:00.000000000 +0100 ++++ dietlibc/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 -Nurp dietlibc.orig/powerpc64/umount.S dietlibc/powerpc64/umount.S +--- dietlibc.orig/powerpc64/umount.S 1970-01-01 01:00:00.000000000 +0100 ++++ dietlibc/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 -Nurp dietlibc.orig/powerpc64/unified.S dietlibc/powerpc64/unified.S +--- dietlibc.orig/powerpc64/unified.S 1970-01-01 01:00:00.000000000 +0100 ++++ dietlibc/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 -Nurp dietlibc.orig/ppc/clone.S dietlibc/ppc/clone.S +--- dietlibc.orig/ppc/clone.S 2001-12-13 17:05:03.000000000 +0100 ++++ dietlibc/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 -Nurp dietlibc.orig/ppc/__longjmp.S dietlibc/ppc/__longjmp.S +--- dietlibc.orig/ppc/__longjmp.S 2001-01-25 18:23:36.000000000 +0100 ++++ dietlibc/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 -Nurp dietlibc.orig/ppc/Makefile.add dietlibc/ppc/Makefile.add +--- dietlibc.orig/ppc/Makefile.add 2001-01-30 16:01:20.000000000 +0100 ++++ dietlibc/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 -Nurp dietlibc.orig/ppc/mmap.c dietlibc/ppc/mmap.c +--- dietlibc.orig/ppc/mmap.c 2001-06-18 23:08:07.000000000 +0200 ++++ dietlibc/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 -Nurp dietlibc.orig/ppc/setjmp.S dietlibc/ppc/setjmp.S +--- dietlibc.orig/ppc/setjmp.S 2001-01-09 18:57:44.000000000 +0100 ++++ dietlibc/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 -Nurp dietlibc.orig/ppc/start.S dietlibc/ppc/start.S +--- dietlibc.orig/ppc/start.S 2006-04-04 07:35:14.000000000 +0200 ++++ dietlibc/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 -Nurp dietlibc.orig/ppc/syscalls.h dietlibc/ppc/syscalls.h +--- dietlibc.orig/ppc/syscalls.h 2005-09-21 09:33:08.000000000 +0200 ++++ dietlibc/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 -Nurp dietlibc.orig/ppc/__testandset.S dietlibc/ppc/__testandset.S +--- dietlibc.orig/ppc/__testandset.S 2002-09-16 13:17:01.000000000 +0200 ++++ dietlibc/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 -Nurp dietlibc.orig/ppc/unified.S dietlibc/ppc/unified.S +--- dietlibc.orig/ppc/unified.S 2002-01-21 16:55:19.000000000 +0100 ++++ dietlibc/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 -Nurp dietlibc.orig/ppc64/clone.S dietlibc/ppc64/clone.S +--- dietlibc.orig/ppc64/clone.S 2005-05-13 20:39:32.000000000 +0200 ++++ dietlibc/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 -Nurp dietlibc.orig/ppc64/__longjmp.S dietlibc/ppc64/__longjmp.S +--- dietlibc.orig/ppc64/__longjmp.S 2005-09-21 09:33:08.000000000 +0200 ++++ dietlibc/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 -Nurp dietlibc.orig/ppc64/Makefile.add dietlibc/ppc64/Makefile.add +--- dietlibc.orig/ppc64/Makefile.add 2006-06-21 21:18:13.787790000 +0200 ++++ dietlibc/ppc64/Makefile.add 1970-01-01 01:00:00.000000000 +0100 +@@ -1,5 +0,0 @@ +- +-CFLAGS+=-Os -mpowerpc64 +-VPATH:=ppc64:syscalls.s:$(VPATH) +- +-CC+=-m64 +diff -Nurp dietlibc.orig/ppc64/setjmp.S dietlibc/ppc64/setjmp.S +--- dietlibc.orig/ppc64/setjmp.S 2005-09-21 09:33:08.000000000 +0200 ++++ dietlibc/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 -Nurp dietlibc.orig/ppc64/start.S dietlibc/ppc64/start.S +--- dietlibc.orig/ppc64/start.S 2006-04-04 07:35:14.000000000 +0200 ++++ dietlibc/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 -Nurp dietlibc.orig/ppc64/syscalls.h dietlibc/ppc64/syscalls.h +--- dietlibc.orig/ppc64/syscalls.h 2005-09-21 09:33:08.000000000 +0200 ++++ dietlibc/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 -Nurp dietlibc.orig/ppc64/__testandset.S dietlibc/ppc64/__testandset.S +--- dietlibc.orig/ppc64/__testandset.S 2003-10-10 15:37:34.000000000 +0200 ++++ dietlibc/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 -Nurp dietlibc.orig/ppc64/umount.S dietlibc/ppc64/umount.S +--- dietlibc.orig/ppc64/umount.S 2004-12-17 19:47:59.000000000 +0100 ++++ dietlibc/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 -Nurp dietlibc.orig/ppc64/unified.S dietlibc/ppc64/unified.S +--- dietlibc.orig/ppc64/unified.S 2005-05-13 20:39:32.000000000 +0200 ++++ dietlibc/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 -Nurp dietlibc.orig/syscalls.h dietlibc/syscalls.h +--- dietlibc.orig/syscalls.h 2006-06-21 21:44:44.287916500 +0200 ++++ dietlibc/syscalls.h 2006-06-21 21:42:27.891392250 +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_pre20060621-r0/04_all_prefix.patch b/dietlibc/patches/0.30_pre20060621-r0/04_all_prefix.patch new file mode 100644 index 0000000..9f8aa7f --- /dev/null +++ b/dietlibc/patches/0.30_pre20060621-r0/04_all_prefix.patch @@ -0,0 +1,10 @@ +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_pre20060621-r0/20_all_dirent-prototype.patch b/dietlibc/patches/0.30_pre20060621-r0/20_all_dirent-prototype.patch new file mode 100644 index 0000000..0d229e6 --- /dev/null +++ b/dietlibc/patches/0.30_pre20060621-r0/20_all_dirent-prototype.patch @@ -0,0 +1,15 @@ +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_pre20060621-r0/21_all_nice.patch b/dietlibc/patches/0.30_pre20060621-r0/21_all_nice.patch new file mode 100644 index 0000000..641e6c3 --- /dev/null +++ b/dietlibc/patches/0.30_pre20060621-r0/21_all_nice.patch @@ -0,0 +1,20 @@ +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_pre20060621-r0/40_sparc64_Makefile.patch b/dietlibc/patches/0.30_pre20060621-r0/40_sparc64_Makefile.patch new file mode 100644 index 0000000..7230687 --- /dev/null +++ b/dietlibc/patches/0.30_pre20060621-r0/40_sparc64_Makefile.patch @@ -0,0 +1,13 @@ +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_pre20060621-r0/42_arm_waitpid.patch b/dietlibc/patches/0.30_pre20060621-r0/42_arm_waitpid.patch new file mode 100644 index 0000000..c0f9835 --- /dev/null +++ b/dietlibc/patches/0.30_pre20060621-r0/42_arm_waitpid.patch @@ -0,0 +1,13 @@ +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_pre20060621-r0/43_ia64_no-fno-omit-frame-pointer.patch b/dietlibc/patches/0.30_pre20060621-r0/43_ia64_no-fno-omit-frame-pointer.patch new file mode 100644 index 0000000..9c3a929 --- /dev/null +++ b/dietlibc/patches/0.30_pre20060621-r0/43_ia64_no-fno-omit-frame-pointer.patch @@ -0,0 +1,16 @@ +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_pre20060621-r0/44_ia64_proc-endp.patch b/dietlibc/patches/0.30_pre20060621-r0/44_ia64_proc-endp.patch new file mode 100644 index 0000000..aee3eaf --- /dev/null +++ b/dietlibc/patches/0.30_pre20060621-r0/44_ia64_proc-endp.patch @@ -0,0 +1,58 @@ +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_pre20060621-r0/45_parisc_iitlbp.patch b/dietlibc/patches/0.30_pre20060621-r0/45_parisc_iitlbp.patch new file mode 100644 index 0000000..b1f86a9 --- /dev/null +++ b/dietlibc/patches/0.30_pre20060621-r0/45_parisc_iitlbp.patch @@ -0,0 +1,13 @@ +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 ! */ |