From 1f3ed1e0c8ede2ec0aa8b5913de7abc6791c986f Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Wed, 21 Apr 2021 19:49:51 +0200 Subject: [PATCH] pthread: Introduce __pthread_early_init This function is called from __libc_early_init to initialize the pthread subsystem. Reviewed-by: Adhemerval Zanella --- elf/libc_early_init.c | 3 +++ sysdeps/pthread/pthread_early_init.h | 29 ++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 sysdeps/pthread/pthread_early_init.h diff --git a/elf/libc_early_init.c b/elf/libc_early_init.c index 9b1901a706..525edf1e7d 100644 --- a/elf/libc_early_init.c +++ b/elf/libc_early_init.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #ifdef SHARED @@ -40,6 +41,8 @@ __libc_early_init (_Bool initial) __libc_initial = initial; #endif + __pthread_early_init (); + #if ENABLE_ELISION_SUPPORT __lll_elision_init (); #endif diff --git a/sysdeps/pthread/pthread_early_init.h b/sysdeps/pthread/pthread_early_init.h new file mode 100644 index 0000000000..9888839744 --- /dev/null +++ b/sysdeps/pthread/pthread_early_init.h @@ -0,0 +1,29 @@ +/* pthread initialization called from __libc_early_init. Generic version. + Copyright (C) 2021 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef _PTHREAD_EARLY_INIT_H +#define _PTHREAD_EARLY_INIT_H 1 + +static inline void +__pthread_early_init (void) +{ + /* The generic version does not require any additional + initialization. */ +} + +#endif /* _PTHREAD_EARLY_INIT_H */