[dietlibc] updated pagesize patch

ensc ensc at fedoraproject.org
Sun Jan 9 13:46:54 UTC 2011


commit c42d5c855044e64b3f5cf2ca402dd63cfffdf2e2
Author: Enrico Scholz <enrico.scholz at informatik.tu-chemnitz.de>
Date:   Sun Jan 9 14:39:48 2011 +0100

    updated pagesize patch

 dietlibc-0.31-pagesize.patch |   41 +++++++++++++++++++++++++++++++----------
 1 files changed, 31 insertions(+), 10 deletions(-)
---
diff --git a/dietlibc-0.31-pagesize.patch b/dietlibc-0.31-pagesize.patch
index 7bba7fb..5091c59 100644
--- a/dietlibc-0.31-pagesize.patch
+++ b/dietlibc-0.31-pagesize.patch
@@ -1,7 +1,7 @@
-From abcbc90e768b431ce4e063de8a47ab236feeacf5 Mon Sep 17 00:00:00 2001
+From 537a231d89113170b9f761f8a490389f8b1c5cee Mon Sep 17 00:00:00 2001
 From: Enrico Scholz <enrico.scholz at informatik.tu-chemnitz.de>
 Date: Sat, 19 Apr 2008 17:35:14 +0200
-Subject: [PATCH 11/18] Support for dynamic PAGE_SIZE
+Subject: [PATCH 13/20] Support for dynamic PAGE_SIZE
 
 This patch adds support for dynamic PAGE_SIZE values. It
 is a little bit invasive in several aspects:
@@ -66,7 +66,7 @@ auxilary elf-info table. Now, this is not available anymore and I
 use a type derived from __WORD_SIZE.
 ---
  alpha/start.S             |    9 +++++
- arm/start.S               |   13 +++++++-
+ arm/start.S               |   27 ++++++++++++++-
  dietdirent.h              |    6 +++-
  dietelfinfo.h             |   20 +++++++++++
  dietfeatures.h            |   14 ++++++++
@@ -99,7 +99,7 @@ use a type derived from __WORD_SIZE.
  test/runtests.sh          |    2 +-
  test/sysconf.c            |   80 +++++++++++++++++++++++++++++++++++++++++++++
  x86_64/start.S            |   16 +++++++++
- 34 files changed, 403 insertions(+), 51 deletions(-)
+ 34 files changed, 417 insertions(+), 51 deletions(-)
  create mode 100644 dietelfinfo.h
  create mode 100644 dietpagesize.h
  create mode 100644 lib/__get_elf_aux_value.c
@@ -126,10 +126,28 @@ index 7e7cf9b..b13c9c9 100644
  /* in v0 ($0) is the ld.so _fini pointer */
  	mov	 $0, $19	/* mov v0(dynload) to a3 */
 diff --git a/arm/start.S b/arm/start.S
-index ccbac48..c9cee01 100644
+index d68d49d..765021b 100644
 --- a/arm/start.S
 +++ b/arm/start.S
-@@ -59,11 +59,22 @@ _start:
+@@ -25,6 +25,17 @@ _start:
+ 	add	a3, a2, a1, lsl #2	@ &argv[argc]
+ 	add	a3, a3, #4		@ envp	
+ 	str	a3, [ip, #0]		@ environ = envp
++
++#ifdef WANT_ELFINFO
++	mov	r6, a3			@ work on a copy of a3 so that common
++					@ 'main(argc, argv, envp)' function
++					@ stays valid
++1:	ldr	r5, [r6], #4		@ load *envp and increment it
++	cmp	r5, #0			@ read value==0?
++	bne	1b
++	str	r6, [ip, #4]		@ __elfinfo = envp
++#endif
++
+ 	bl	main
+ 		
+ @
+@@ -59,11 +70,25 @@ _start:
  #ifdef __DYN_LIB
  	ldr	sl, .L4
  1:	add	sl, pc, sl
@@ -140,13 +158,16 @@ index ccbac48..c9cee01 100644
  #endif
  
 +#ifdef WANT_ELFINFO
-+1:	ldr	r5, [a3], #4		@ load *envp and increment it
++	mov	r6, a3			@ work on a copy of a3 so that common
++					@ 'main(argc, argv, envp)' function
++					@ stays valid
++1:	ldr	r5, [r6], #4		@ load *envp and increment it
 +	cmp	r5, #0			@ read value==0?
 +	bne	1b
 +#ifdef __DYN_LIB
-+	str	a3, [ip, sl]		@ __elfinfo = envp
++	str	r6, [ip, sl]		@ __elfinfo = envp
 +#else
-+	str	a3, [ip, #4]		@ __elfinfo = envp
++	str	r6, [ip, #4]		@ __elfinfo = envp
 +#endif
 +#endif
 +
@@ -1050,5 +1071,5 @@ index adc461a..8b4f3c9 100644
  #ifdef PROFILING
  	pushq	%rdi			/* save reg args */
 -- 
-1.7.3.3
+1.7.3.4
 


More information about the scm-commits mailing list