mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-23 17:53:37 +08:00
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_enable_asynccancel;
|
||||
__pthread_force_elision;
|
||||
__pthread_get_minstack;
|
||||
__pthread_getattr_default_np;
|
||||
__pthread_getattr_default_np;
|
||||
__pthread_keys;
|
||||
@ -510,7 +511,6 @@ libpthread {
|
||||
GLIBC_PRIVATE {
|
||||
__pthread_clock_gettime;
|
||||
__pthread_clock_settime;
|
||||
__pthread_get_minstack;
|
||||
__pthread_initialize_minimal;
|
||||
}
|
||||
}
|
||||
|
@ -38,28 +38,9 @@
|
||||
#include <pthread_mutex_conf.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
|
||||
__pthread_initialize_minimal_internal (void)
|
||||
{
|
||||
}
|
||||
strong_alias (__pthread_initialize_minimal_internal,
|
||||
__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 <ldsodefs.h>
|
||||
#include <pthreadP.h>
|
||||
|
||||
/* Maximum size in kB of cache. 40MiBi by default. */
|
||||
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);
|
||||
}
|
||||
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 size_t __pthread_get_minstack (const pthread_attr_t *attr);
|
||||
libc_hidden_proto (__pthread_get_minstack)
|
||||
|
||||
/* Namespace save aliases. */
|
||||
extern int __pthread_getschedparam (pthread_t thread_id, int *policy,
|
||||
|
@ -36,6 +36,7 @@
|
||||
#include <tls-setup.h>
|
||||
#include "libioP.h"
|
||||
#include <sys/single_threaded.h>
|
||||
#include <version.h>
|
||||
|
||||
#include <shlib-compat.h>
|
||||
|
||||
@ -56,6 +57,9 @@ static struct rtld_global *__nptl_rtld_global __attribute_used__
|
||||
= &_rtld_global;
|
||||
#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
|
||||
single-threaded to multi-threaded mode for the first time. */
|
||||
static void
|
||||
|
Loading…
Reference in New Issue
Block a user