diff --git a/dietlibc-0.31-pagesize.patch b/dietlibc-0.31-pagesize.patch index 7a9f71e..62a0790 100644 --- a/dietlibc-0.31-pagesize.patch +++ b/dietlibc-0.31-pagesize.patch @@ -129,12 +129,13 @@ register size_t idx=0; --- dietlibc-0.31.20080409/ppc/start.S.pagesize +++ dietlibc-0.31.20080409/ppc/start.S -@@ -31,6 +31,14 @@ _start: +@@ -31,6 +31,15 @@ _start: lis 14,environ@ha stw 5,environ@l(14) +#ifdef WANT_ELFINFO -+1: lwzu 15,4(5) ++1: lwzu 15,0(5) ++ addi 5, 5, 4 + cmpwi 15,0 + bne 1b + @@ -355,7 +356,7 @@ +} --- dietlibc-0.31.20080409/libcruft/getpagesize.c.pagesize +++ dietlibc-0.31.20080409/libcruft/getpagesize.c -@@ -2,14 +2,23 @@ +@@ -2,14 +2,22 @@ #include #include @@ -373,8 +374,7 @@ + + if (__unlikely(pgsz==0)) { + __diet_elf_addr_t *v = __get_elf_aux_value(AT_PAGESZ); -+ if (__likely(v)) -+ pgsz = *v; ++ pgsz = *v; /* causes segfault when 'v==NULL' */ + } + + return pgsz; @@ -675,12 +675,13 @@ } --- dietlibc-0.31.20080409/ppc64/start.S.pagesize +++ dietlibc-0.31.20080409/ppc64/start.S -@@ -58,6 +58,14 @@ _start: +@@ -58,6 +58,15 @@ _start: oris 14,14,environ@ha std 5,environ@l(14) +#ifdef WANT_ELFINFO -+1: ldu 15,8(5) ++1: ldu 15,0(5) ++ addi 5, 5, 8 + cmpdi 15,0 + bne 1b +