All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] minios: use NULL sentinel at end of [CD]TOR list
@ 2011-08-20  0:51 Jeremy Fitzhardinge
  0 siblings, 0 replies; only message in thread
From: Jeremy Fitzhardinge @ 2011-08-20  0:51 UTC (permalink / raw)
  To: Ian Jackson; +Cc: Samuel Thibault, xen-devel@lists.xensource.com

Use the NULL pointer at the end of the [CD]TOR list rather than relying
on a count.

I hit a linker bug where the [CD]TOR list count was being miscomputed,
but its just simpler to use a sentinel.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org>

diff -r b81c0417b901 extras/mini-os/arch/ia64/minios-ia64.lds
--- a/extras/mini-os/arch/ia64/minios-ia64.lds	Wed Aug 17 16:08:41 2011 -0700
+++ b/extras/mini-os/arch/ia64/minios-ia64.lds	Wed Aug 17 17:04:10 2011 -0700
@@ -55,7 +55,6 @@
   .ctors : AT(ADDR(.ctors) - (((5<<(61))+0x100000000) - (1 << 20)))
 	{
         __CTOR_LIST__ = .;
-        QUAD((__CTOR_END__ - __CTOR_LIST__) / 8 - 2)
         *(.ctors)
 	CONSTRUCTORS
         QUAD(0)
@@ -65,7 +64,6 @@
   .dtors : AT(ADDR(.dtors) - (((5<<(61))+0x100000000) - (1 << 20)))
         {
         __DTOR_LIST__ = .;
-        QUAD((__DTOR_END__ - __DTOR_LIST__) / 8 - 2)
         *(.dtors)
         QUAD(0)
         __DTOR_END__ = .;
diff -r b81c0417b901 extras/mini-os/arch/x86/minios-x86_32.lds
--- a/extras/mini-os/arch/x86/minios-x86_32.lds	Wed Aug 17 16:08:41 2011 -0700
+++ b/extras/mini-os/arch/x86/minios-x86_32.lds	Wed Aug 17 17:04:10 2011 -0700
@@ -30,7 +30,6 @@
 
   .ctors : {
         __CTOR_LIST__ = .;
-        LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)
         *(.ctors)
 	CONSTRUCTORS
         LONG(0)
@@ -39,7 +38,6 @@
 
   .dtors : {
         __DTOR_LIST__ = .;
-        LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)
         *(.dtors)
         LONG(0)
         __DTOR_END__ = .;
diff -r b81c0417b901 extras/mini-os/arch/x86/minios-x86_64.lds
--- a/extras/mini-os/arch/x86/minios-x86_64.lds	Wed Aug 17 16:08:41 2011 -0700
+++ b/extras/mini-os/arch/x86/minios-x86_64.lds	Wed Aug 17 17:04:10 2011 -0700
@@ -30,7 +30,6 @@
 
   .ctors : {
         __CTOR_LIST__ = .;
-        QUAD((__CTOR_END__ - __CTOR_LIST__) / 8 - 2)
         *(.ctors)
 	CONSTRUCTORS
         QUAD(0)
@@ -39,7 +38,6 @@
 
   .dtors : {
         __DTOR_LIST__ = .;
-        QUAD((__DTOR_END__ - __DTOR_LIST__) / 8 - 2)
         *(.dtors)
         QUAD(0)
         __DTOR_END__ = .;
diff -r b81c0417b901 extras/mini-os/main.c
--- a/extras/mini-os/main.c	Wed Aug 17 16:08:41 2011 -0700
+++ b/extras/mini-os/main.c	Wed Aug 17 17:04:10 2011 -0700
@@ -153,7 +153,7 @@
 
     __libc_init_array();
     environ = envp;
-    for (i = 1; i <= __CTOR_LIST__[0]; i++)
+    for (i = 0; __CTOR_LIST__[i] != 0; i++)
         ((void((*)(void)))__CTOR_LIST__[i]) ();
     tzset();
 
@@ -164,7 +164,7 @@
 {
     int i;
 
-    for (i = 1; i <= __DTOR_LIST__[0]; i++)
+    for (i = 0; __DTOR_LIST__[i] != 0; i++)
         ((void((*)(void)))__DTOR_LIST__[i]) ();
     close_all_files();
     __libc_fini_array();

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2011-08-20  0:51 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-20  0:51 [PATCH] minios: use NULL sentinel at end of [CD]TOR list Jeremy Fitzhardinge

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.