libc_init_static: apply relro earlier.

The dynamic linker applies relro before the preinit and init
arrays are executed, so we should be consistent for statically
linked executables.

Change-Id: Ia0a49d0e981a6e8791f74eed00280edf576ba139
This commit is contained in:
Nick Kralevich 2013-01-11 18:38:26 -08:00
parent 2c5153b043
commit 9fb48ac257

View File

@ -101,6 +101,8 @@ __noreturn void __libc_init(uintptr_t *elfdata,
/* Initialize the C runtime environment */
__libc_init_common(elfdata);
apply_gnu_relro();
/* Several Linux ABIs don't pass the onexit pointer, and the ones that
* do never use it. Therefore, we ignore it.
*/
@ -122,6 +124,5 @@ __noreturn void __libc_init(uintptr_t *elfdata,
if (structors->fini_array)
__cxa_atexit(__libc_fini,structors->fini_array,NULL);
apply_gnu_relro();
exit(slingshot(argc, argv, envp));
}