Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--newlib/ChangeLog5
-rw-r--r--newlib/libc/misc/init.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index 26723d491..6ca41c09d 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -1,3 +1,8 @@
+2009-04-16 Jeff johnston <jjohnstn@redhat.com>
+
+ * libc/misc/init.c (__libc_fini_array): Process fini_array in
+ reverse order as compliant with the ELF specification.
+
2009-04-16 Ken Werner <ken.werner@de.ibm.com>
* libc/machine/spu/Makefile.am: Add new File.
diff --git a/newlib/libc/misc/init.c b/newlib/libc/misc/init.c
index 539fbefed..50bac50c7 100644
--- a/newlib/libc/misc/init.c
+++ b/newlib/libc/misc/init.c
@@ -52,8 +52,8 @@ __libc_fini_array (void)
size_t i;
count = __fini_array_end - __fini_array_start;
- for (i = 0; i < count; i++)
- __fini_array_start[i] ();
+ for (i = count; i > 0; i--)
+ __fini_array_start[i-1] ();
_fini ();
}