about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--elf/tst-array1.c6
-rw-r--r--elf/tst-array2dep.c6
3 files changed, 14 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index fb21238ecf..8b980c14ab 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2012-11-16  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf/tst-array1.c (init): Set constructor priority to 1000.
+	(fini): Set destructor priority to 1000.
+	* elf/tst-array2dep.c: Likewise.
+
 2012-11-16  Siddhesh Poyarekar  <siddhesh@redhat.com>
 
 	[BZ #11741]
diff --git a/elf/tst-array1.c b/elf/tst-array1.c
index ca9bdf4079..e998932b36 100644
--- a/elf/tst-array1.c
+++ b/elf/tst-array1.c
@@ -1,6 +1,7 @@
 #include <unistd.h>
 
-static void init (void) __attribute__ ((constructor));
+/* Give init non-default priority so that it runs before init_array.  */
+static void init (void) __attribute__ ((constructor (1000)));
 
 static void
 init (void)
@@ -8,7 +9,8 @@ init (void)
   write (STDOUT_FILENO, "init\n", 5);
 }
 
-static void fini (void) __attribute__ ((destructor));
+/* Give fini the same priority as init.  */
+static void fini (void) __attribute__ ((destructor (1000)));
 
 static void
 fini (void)
diff --git a/elf/tst-array2dep.c b/elf/tst-array2dep.c
index 2812761a09..2f920cdc8d 100644
--- a/elf/tst-array2dep.c
+++ b/elf/tst-array2dep.c
@@ -1,6 +1,7 @@
 #include <unistd.h>
 
-static void init (void) __attribute__ ((constructor));
+/* Give init non-default priority so that it runs before init_array.  */
+static void init (void) __attribute__ ((constructor (1000)));
 
 static void
 init (void)
@@ -8,7 +9,8 @@ init (void)
   write (STDOUT_FILENO, "DSO init\n", 9);
 }
 
-static void fini (void) __attribute__ ((destructor));
+/* Give fini the same priority as init.  */
+static void fini (void) __attribute__ ((destructor (1000)));
 
 static void
 fini (void)