Эх сурвалжийг харах

Enable new FINI processing. ldso now passes a FINI function
ptr to crt. Only PowerPC and x86 support this currently.

Joakim Tjernlund 20 жил өмнө
parent
commit
df0e39281e
2 өөрчлөгдсөн 0 нэмэгдсэн , 13 устгасан
  1. 0 10
      ldso/ldso/ldso.c
  2. 0 3
      libc/stdlib/atexit.c

+ 0 - 10
ldso/ldso/ldso.c

@@ -806,16 +806,6 @@ void _dl_get_ready_to_run(struct elf_resolve *tpnt, unsigned long load_addr,
 			(*dl_elf_func) ();
 		}
 	}
-#ifndef _DL_DO_FINI_IN_LIBC
-	/* arches that have moved their ldso FINI handling should skip this part */
-	{
-		int (*_dl_atexit) (void *) = (int (*)(void *)) (intptr_t) _dl_find_hash("atexit",
-				_dl_symbol_tables, NULL, ELF_RTYPE_CLASS_PLT);
-
-		if (_dl_atexit)
-			(*_dl_atexit) (_dl_fini);
-	}
-#endif
 
 	/* Find the real malloc function and make ldso functions use that from now on */
 	 _dl_malloc_function = (void* (*)(size_t)) (intptr_t) _dl_find_hash("malloc",

+ 0 - 3
libc/stdlib/atexit.c

@@ -239,11 +239,8 @@ void exit(int rv)
 	if (__app_fini != NULL)
 		(__app_fini)();
 #endif
-#ifdef _DL_DO_FINI_IN_LIBC
-/* arches that has moved their ldso FINI handling should #define _DL_DO_FINI_IN_LIBC */
 	if (__rtld_fini != NULL)
 		(__rtld_fini)();
-#endif
 
     /* If we are using stdio, try to shut it down.  At the very least,
 	 * this will attempt to commit all buffered writes.  It may also