minios: use NULL sentinel at end of [CD]TOR list
PATCH 1/1 minios: use NULL sentinel at end of [CD]TOR list
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 <[email protected]>
Acked-by Samuel Thibault <[email protected]>
extras/mini-os/arch/ia64/minios-ia64.lds +0 -2
@@ -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__ = .;
extras/mini-os/arch/x86/minios-x86_32.lds +0 -2
@@ -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__ = .;
extras/mini-os/arch/x86/minios-x86_64.lds +0 -2
@@ -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__ = .;
extras/mini-os/main.c +2 -2
@@ -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 ();