mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-28 00:21:52 +03:00
Replace __libc_multiple_libcs with __libc_initial flag
Change sbrk to fail for !__libc_initial (in the generic implementation). As a result, sbrk is (relatively) safe to use for the __libc_initial case (from the main libc). It is therefore no longer necessary to avoid using it in that case (or updating the brk cache), and the __libc_initial flag does not need to be updated as part of dlmopen or static dlopen. As before, direct brk system calls on Linux may lead to memory corruption. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
This commit is contained in:
@ -141,8 +141,6 @@ LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL),
|
||||
/* Result of the 'main' function. */
|
||||
int result;
|
||||
|
||||
__libc_multiple_libcs = &_dl_starting_up && !_dl_starting_up;
|
||||
|
||||
#ifndef SHARED
|
||||
_dl_relocate_static_pie ();
|
||||
|
||||
@ -213,12 +211,11 @@ LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL),
|
||||
# endif
|
||||
|
||||
# ifdef DL_SYSDEP_OSCHECK
|
||||
if (!__libc_multiple_libcs)
|
||||
{
|
||||
/* This needs to run to initiliaze _dl_osversion before TLS
|
||||
setup might check it. */
|
||||
DL_SYSDEP_OSCHECK (__libc_fatal);
|
||||
}
|
||||
{
|
||||
/* This needs to run to initiliaze _dl_osversion before TLS
|
||||
setup might check it. */
|
||||
DL_SYSDEP_OSCHECK (__libc_fatal);
|
||||
}
|
||||
# endif
|
||||
|
||||
/* Initialize libpthread if linked in. */
|
||||
|
Reference in New Issue
Block a user