mirror of git://sourceware.org/git/glibc.git
nptl: Move semi-public __pthread_get_minstack symbol into libc
No abilist updates here because it is a GLIBC_PRIVATE symbol. It's also necessary to move nptl_version into pthread_create, so that it still ends up in static binaries. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
This commit is contained in:
parent
d03511f48f
commit
b8cdc3bba7
|
|
@ -408,6 +408,7 @@ libc {
|
||||||
__pthread_disable_asynccancel;
|
__pthread_disable_asynccancel;
|
||||||
__pthread_enable_asynccancel;
|
__pthread_enable_asynccancel;
|
||||||
__pthread_force_elision;
|
__pthread_force_elision;
|
||||||
|
__pthread_get_minstack;
|
||||||
__pthread_getattr_default_np;
|
__pthread_getattr_default_np;
|
||||||
__pthread_getattr_default_np;
|
__pthread_getattr_default_np;
|
||||||
__pthread_keys;
|
__pthread_keys;
|
||||||
|
|
@ -510,7 +511,6 @@ libpthread {
|
||||||
GLIBC_PRIVATE {
|
GLIBC_PRIVATE {
|
||||||
__pthread_clock_gettime;
|
__pthread_clock_gettime;
|
||||||
__pthread_clock_settime;
|
__pthread_clock_settime;
|
||||||
__pthread_get_minstack;
|
|
||||||
__pthread_initialize_minimal;
|
__pthread_initialize_minimal;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -38,28 +38,9 @@
|
||||||
#include <pthread_mutex_conf.h>
|
#include <pthread_mutex_conf.h>
|
||||||
#include <nptl-stack.h>
|
#include <nptl-stack.h>
|
||||||
|
|
||||||
/* Version of the library, used in libthread_db to detect mismatches. */
|
|
||||||
static const char nptl_version[] __attribute_used__ = VERSION;
|
|
||||||
|
|
||||||
void
|
void
|
||||||
__pthread_initialize_minimal_internal (void)
|
__pthread_initialize_minimal_internal (void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
strong_alias (__pthread_initialize_minimal_internal,
|
strong_alias (__pthread_initialize_minimal_internal,
|
||||||
__pthread_initialize_minimal)
|
__pthread_initialize_minimal)
|
||||||
|
|
||||||
|
|
||||||
/* This function is internal (it has a GLIBC_PRIVATE) version, but it
|
|
||||||
is widely used (either via weak symbol, or dlsym) to obtain the
|
|
||||||
__static_tls_size value. This value is then used to adjust the
|
|
||||||
value of the stack size attribute, so that applications receive the
|
|
||||||
full requested stack size, not diminished by the TCB and static TLS
|
|
||||||
allocation on the stack. Once the TCB is separately allocated,
|
|
||||||
this function should be removed or renamed (if it is still
|
|
||||||
necessary at that point). */
|
|
||||||
size_t
|
|
||||||
__pthread_get_minstack (const pthread_attr_t *attr)
|
|
||||||
{
|
|
||||||
return (GLRO(dl_pagesize) + __nptl_tls_static_size_for_stack ()
|
|
||||||
+ PTHREAD_STACK_MIN);
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@
|
||||||
|
|
||||||
#include <nptl-stack.h>
|
#include <nptl-stack.h>
|
||||||
#include <ldsodefs.h>
|
#include <ldsodefs.h>
|
||||||
|
#include <pthreadP.h>
|
||||||
|
|
||||||
/* Maximum size in kB of cache. 40MiBi by default. */
|
/* Maximum size in kB of cache. 40MiBi by default. */
|
||||||
static const size_t stack_cache_maxsize = 40 * 1024 * 1024;
|
static const size_t stack_cache_maxsize = 40 * 1024 * 1024;
|
||||||
|
|
@ -128,3 +129,19 @@ __nptl_deallocate_stack (struct pthread *pd)
|
||||||
lll_unlock (GL (dl_stack_cache_lock), LLL_PRIVATE);
|
lll_unlock (GL (dl_stack_cache_lock), LLL_PRIVATE);
|
||||||
}
|
}
|
||||||
libc_hidden_def (__nptl_deallocate_stack)
|
libc_hidden_def (__nptl_deallocate_stack)
|
||||||
|
|
||||||
|
/* This function is internal (it has a GLIBC_PRIVATE) version, but it
|
||||||
|
is widely used (either via weak symbol, or dlsym) to obtain the
|
||||||
|
__static_tls_size value. This value is then used to adjust the
|
||||||
|
value of the stack size attribute, so that applications receive the
|
||||||
|
full requested stack size, not diminished by the TCB and static TLS
|
||||||
|
allocation on the stack. Once the TCB is separately allocated,
|
||||||
|
this function should be removed or renamed (if it is still
|
||||||
|
necessary at that point). */
|
||||||
|
size_t
|
||||||
|
__pthread_get_minstack (const pthread_attr_t *attr)
|
||||||
|
{
|
||||||
|
return (GLRO(dl_pagesize) + __nptl_tls_static_size_for_stack ()
|
||||||
|
+ PTHREAD_STACK_MIN);
|
||||||
|
}
|
||||||
|
libc_hidden_def (__pthread_get_minstack)
|
||||||
|
|
|
||||||
|
|
@ -343,6 +343,7 @@ extern unsigned long int __fork_generation attribute_hidden;
|
||||||
extern unsigned long int *__fork_generation_pointer attribute_hidden;
|
extern unsigned long int *__fork_generation_pointer attribute_hidden;
|
||||||
|
|
||||||
extern size_t __pthread_get_minstack (const pthread_attr_t *attr);
|
extern size_t __pthread_get_minstack (const pthread_attr_t *attr);
|
||||||
|
libc_hidden_proto (__pthread_get_minstack)
|
||||||
|
|
||||||
/* Namespace save aliases. */
|
/* Namespace save aliases. */
|
||||||
extern int __pthread_getschedparam (pthread_t thread_id, int *policy,
|
extern int __pthread_getschedparam (pthread_t thread_id, int *policy,
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@
|
||||||
#include <tls-setup.h>
|
#include <tls-setup.h>
|
||||||
#include "libioP.h"
|
#include "libioP.h"
|
||||||
#include <sys/single_threaded.h>
|
#include <sys/single_threaded.h>
|
||||||
|
#include <version.h>
|
||||||
|
|
||||||
#include <shlib-compat.h>
|
#include <shlib-compat.h>
|
||||||
|
|
||||||
|
|
@ -56,6 +57,9 @@ static struct rtld_global *__nptl_rtld_global __attribute_used__
|
||||||
= &_rtld_global;
|
= &_rtld_global;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Version of the library, used in libthread_db to detect mismatches. */
|
||||||
|
static const char nptl_version[] __attribute_used__ = VERSION;
|
||||||
|
|
||||||
/* This performs the initialization necessary when going from
|
/* This performs the initialization necessary when going from
|
||||||
single-threaded to multi-threaded mode for the first time. */
|
single-threaded to multi-threaded mode for the first time. */
|
||||||
static void
|
static void
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue