nptl: Make __pthread_attr_init, __pthread_attr_destroy available internally

pthread_attr_destroy needs to be a weak alias to avoid future
linknamespace failures.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
This commit is contained in:
Florian Weimer 2020-05-15 22:48:42 +02:00
parent 07a73d5219
commit 3699ef99de
4 changed files with 9 additions and 4 deletions

View File

@ -59,6 +59,7 @@ libc {
# Used by the C11 threads implementation.
__pthread_cond_destroy; __pthread_cond_init;
__pthread_attr_setaffinity_np;
__pthread_attr_init; __pthread_attr_destroy;
}
}

View File

@ -347,7 +347,8 @@ extern int __pthread_create_2_1 (pthread_t *newthread,
extern int __pthread_create_2_0 (pthread_t *newthread,
const pthread_attr_t *attr,
void *(*start_routine) (void *), void *arg);
extern int __pthread_attr_init_2_1 (pthread_attr_t *attr);
extern int __pthread_attr_init (pthread_attr_t *attr);
libc_hidden_proto (__pthread_attr_init)
extern int __pthread_attr_init_2_0 (pthread_attr_t *attr);
@ -403,6 +404,7 @@ extern int __pthread_mutexattr_init (pthread_mutexattr_t *attr);
extern int __pthread_mutexattr_destroy (pthread_mutexattr_t *attr);
extern int __pthread_mutexattr_settype (pthread_mutexattr_t *attr, int kind);
extern int __pthread_attr_destroy (pthread_attr_t *attr);
libc_hidden_proto (__pthread_attr_destroy)
extern int __pthread_attr_getdetachstate (const pthread_attr_t *attr,
int *detachstate);
extern int __pthread_attr_setdetachstate (pthread_attr_t *attr,

View File

@ -39,4 +39,5 @@ __pthread_attr_destroy (pthread_attr_t *attr)
return 0;
}
strong_alias (__pthread_attr_destroy, pthread_attr_destroy)
libc_hidden_def (__pthread_attr_destroy)
weak_alias (__pthread_attr_destroy, pthread_attr_destroy)

View File

@ -29,7 +29,7 @@ int __attr_list_lock = LLL_LOCK_INITIALIZER;
int
__pthread_attr_init_2_1 (pthread_attr_t *attr)
__pthread_attr_init (pthread_attr_t *attr)
{
struct pthread_attr *iattr;
@ -48,7 +48,8 @@ __pthread_attr_init_2_1 (pthread_attr_t *attr)
return 0;
}
versioned_symbol (libc, __pthread_attr_init_2_1, pthread_attr_init, GLIBC_2_1);
libc_hidden_def (__pthread_attr_init)
versioned_symbol (libc, __pthread_attr_init, pthread_attr_init, GLIBC_2_1);
#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_1)