aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2020-05-15 22:48:42 +0200
committerFlorian Weimer <fweimer@redhat.com>2020-05-20 20:28:24 +0200
commit3699ef99de0d69284cdd28c3cc5e1aa89e398443 (patch)
treedd28aaf7364caee047bd5c0a44731dcb1c3ebd7e
parent07a73d521988a7fdea1bb3c3b5bbb2b23a0da2e1 (diff)
downloadglibc-3699ef99de0d69284cdd28c3cc5e1aa89e398443.zip
glibc-3699ef99de0d69284cdd28c3cc5e1aa89e398443.tar.gz
glibc-3699ef99de0d69284cdd28c3cc5e1aa89e398443.tar.bz2
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>
-rw-r--r--nptl/Versions1
-rw-r--r--nptl/pthreadP.h4
-rw-r--r--nptl/pthread_attr_destroy.c3
-rw-r--r--nptl/pthread_attr_init.c5
4 files changed, 9 insertions, 4 deletions
diff --git a/nptl/Versions b/nptl/Versions
index ce08076..65f0c07 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -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;
}
}
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index ac01354..f218b01 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -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,
diff --git a/nptl/pthread_attr_destroy.c b/nptl/pthread_attr_destroy.c
index d20f209..21f8026 100644
--- a/nptl/pthread_attr_destroy.c
+++ b/nptl/pthread_attr_destroy.c
@@ -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)
diff --git a/nptl/pthread_attr_init.c b/nptl/pthread_attr_init.c
index f15ccca..acc22c6 100644
--- a/nptl/pthread_attr_init.c
+++ b/nptl/pthread_attr_init.c
@@ -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)