nptl: Move call_once into libc

The symbol was moved using scripts/move-symbol-to-libc.py.

This change also turns __pthread_once into a compatibility symbol
because after the call_once move, an internal call to __pthread_once
can be used.  This an adjustment to __libc_once: Outside libc (e.g.,
in nscd), it has to call pthread_once.  With __pthread_once as a
compatibility symbol, it is no longer to add a new GLIBC_2.34
version after the move from libpthread, and this commit removes
the new __pthread_once@@GLIBC_2.34 version.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
This commit is contained in:
Florian Weimer 2021-05-03 08:12:11 +02:00
parent ad201afe5c
commit 575295fc83
66 changed files with 88 additions and 69 deletions

View File

@ -126,6 +126,7 @@ libc {
}
# C11 thread symbols.
GLIBC_2.28 {
call_once;
thrd_current;
thrd_equal;
thrd_sleep;
@ -153,8 +154,8 @@ libc {
__pthread_mutex_unlock;
__pthread_mutexattr_init;
__pthread_mutexattr_settype;
__pthread_once;
__pthread_setspecific;
call_once;
pthread_cond_clockwait;
pthread_condattr_getclock;
pthread_condattr_getpshared;
@ -373,7 +374,6 @@ libpthread {
# C11 thread symbols.
GLIBC_2.28 {
call_once;
cnd_broadcast;
cnd_destroy;
cnd_init;

View File

@ -143,8 +143,10 @@ ___pthread_once (pthread_once_t *once_control, void (*init_routine) (void))
else
return __pthread_once_slow (once_control, init_routine);
}
versioned_symbol (libc, ___pthread_once, __pthread_once, GLIBC_2_34);
libc_hidden_ver (___pthread_once, __pthread_once)
#ifndef SHARED
strong_alias (___pthread_once, __pthread_once)
#endif
versioned_symbol (libc, ___pthread_once, pthread_once, GLIBC_2_34);
#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_34)

View File

@ -210,9 +210,15 @@ _Static_assert (LLL_LOCK_INITIALIZER == 0, "LLL_LOCK_INITIALIZER != 0");
CLASS pthread_once_t NAME = PTHREAD_ONCE_INIT
#endif
/* Call handler iff the first call. */
#define __libc_once(ONCE_CONTROL, INIT_FUNCTION) \
/* Call handler iff the first call. Use a local call in libc, but the
global pthread_once symbol elsewhere. */
#if IS_IN (libc)
# define __libc_once(ONCE_CONTROL, INIT_FUNCTION) \
__pthread_once (&(ONCE_CONTROL), INIT_FUNCTION)
#else
# define __libc_once(ONCE_CONTROL, INIT_FUNCTION) \
pthread_once (&(ONCE_CONTROL), INIT_FUNCTION)
#endif
/* Get once control variable. */
#define __libc_once_get(ONCE_CONTROL) ((ONCE_CONTROL) != PTHREAD_ONCE_INIT)

View File

@ -32,7 +32,6 @@ headers += threads.h
routines += thrd_current thrd_equal thrd_sleep thrd_yield
libpthread-routines += thrd_create thrd_detach thrd_exit thrd_join \
call_once \
mtx_destroy mtx_init mtx_lock mtx_timedlock \
mtx_trylock mtx_unlock \
cnd_broadcast \
@ -40,7 +39,7 @@ libpthread-routines += thrd_create thrd_detach thrd_exit thrd_join \
tss_create tss_delete tss_get tss_set
$(libpthread-routines-var) += \
call_once \
tests += tst-cnd-basic tst-mtx-trylock tst-cnd-broadcast \
tst-cnd-timedwait tst-thrd-detach tst-mtx-basic tst-thrd-sleep \

View File

@ -17,11 +17,12 @@
<https://www.gnu.org/licenses/>. */
#include <stdalign.h>
#include <shlib-compat.h>
#include "thrd_priv.h"
void
call_once (once_flag *flag, void (*func)(void))
__call_once (once_flag *flag, void (*func)(void))
{
_Static_assert (sizeof (once_flag) == sizeof (pthread_once_t),
"sizeof (once_flag) != sizeof (pthread_once_t)");
@ -29,3 +30,11 @@ call_once (once_flag *flag, void (*func)(void))
"alignof (once_flag) != alignof (pthread_once_t)");
__pthread_once ((pthread_once_t *) flag, func);
}
#if PTHREAD_IN_LIBC
versioned_symbol (libc, __call_once, call_once, GLIBC_2_34);
# if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_28, GLIBC_2_34)
compat_symbol (libpthread, __call_once, call_once, GLIBC_2_28);
# endif
#else /* !PTHREAD_IN_LIBC */
strong_alias (__call_once, call_once)
#endif

View File

@ -2198,6 +2198,7 @@ GLIBC_2.27 wcstof64 F
GLIBC_2.27 wcstof64_l F
GLIBC_2.27 wcstof64x F
GLIBC_2.27 wcstof64x_l F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
@ -2247,9 +2248,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -69,7 +69,6 @@ GLIBC_2.17 sem_unlink F
GLIBC_2.17 sem_wait F
GLIBC_2.18 pthread_getattr_default_np F
GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
GLIBC_2.28 cnd_init F

View File

@ -2091,6 +2091,7 @@ GLIBC_2.27 wcstof64 F
GLIBC_2.27 wcstof64_l F
GLIBC_2.27 wcstof64x F
GLIBC_2.27 wcstof64x_l F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
@ -2328,9 +2329,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -69,7 +69,6 @@ GLIBC_2.2 pthread_yield F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
GLIBC_2.28 cnd_init F

View File

@ -593,6 +593,7 @@ GLIBC_2.32 bzero F
GLIBC_2.32 c16rtomb F
GLIBC_2.32 c32rtomb F
GLIBC_2.32 cacheflush F
GLIBC_2.32 call_once F
GLIBC_2.32 calloc F
GLIBC_2.32 canonicalize_file_name F
GLIBC_2.32 capget F
@ -2006,9 +2007,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -10,7 +10,6 @@ GLIBC_2.32 __pthread_rwlock_tryrdlock F
GLIBC_2.32 __pthread_rwlock_trywrlock F
GLIBC_2.32 __pthread_unregister_cancel F
GLIBC_2.32 __pthread_unregister_cancel_restore F
GLIBC_2.32 call_once F
GLIBC_2.32 cnd_broadcast F
GLIBC_2.32 cnd_destroy F
GLIBC_2.32 cnd_init F

View File

@ -118,6 +118,7 @@ GLIBC_2.27 wcstof32x F
GLIBC_2.27 wcstof32x_l F
GLIBC_2.27 wcstof64 F
GLIBC_2.27 wcstof64_l F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
@ -171,9 +172,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -3,7 +3,6 @@ GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_setname_np F
GLIBC_2.18 pthread_getattr_default_np F
GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
GLIBC_2.28 cnd_init F

View File

@ -118,6 +118,7 @@ GLIBC_2.27 wcstof32x F
GLIBC_2.27 wcstof32x_l F
GLIBC_2.27 wcstof64 F
GLIBC_2.27 wcstof64_l F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
@ -168,9 +169,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -3,7 +3,6 @@ GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_setname_np F
GLIBC_2.18 pthread_getattr_default_np F
GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
GLIBC_2.28 cnd_init F

View File

@ -613,6 +613,7 @@ GLIBC_2.29 bzero F
GLIBC_2.29 c16rtomb F
GLIBC_2.29 c32rtomb F
GLIBC_2.29 cacheflush F
GLIBC_2.29 call_once F
GLIBC_2.29 calloc F
GLIBC_2.29 callrpc F
GLIBC_2.29 canonicalize_file_name F
@ -2190,9 +2191,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -10,7 +10,6 @@ GLIBC_2.29 __pthread_rwlock_tryrdlock F
GLIBC_2.29 __pthread_rwlock_trywrlock F
GLIBC_2.29 __pthread_unregister_cancel F
GLIBC_2.29 __pthread_unregister_cancel_restore F
GLIBC_2.29 call_once F
GLIBC_2.29 cnd_broadcast F
GLIBC_2.29 cnd_destroy F
GLIBC_2.29 cnd_init F

View File

@ -1929,6 +1929,7 @@ GLIBC_2.27 wcstof32x F
GLIBC_2.27 wcstof32x_l F
GLIBC_2.27 wcstof64 F
GLIBC_2.27 wcstof64_l F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
@ -2141,9 +2142,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -61,7 +61,6 @@ GLIBC_2.2 sem_unlink F
GLIBC_2.2 sem_wait F
GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
GLIBC_2.28 cnd_init F

View File

@ -2103,6 +2103,7 @@ GLIBC_2.27 wcstof64 F
GLIBC_2.27 wcstof64_l F
GLIBC_2.27 wcstof64x F
GLIBC_2.27 wcstof64x_l F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
@ -2318,9 +2319,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -69,7 +69,6 @@ GLIBC_2.2 pthread_yield F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
GLIBC_2.28 cnd_init F

View File

@ -1965,6 +1965,7 @@ GLIBC_2.27 wcstof64 F
GLIBC_2.27 wcstof64_l F
GLIBC_2.27 wcstof64x F
GLIBC_2.27 wcstof64x_l F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
@ -2175,9 +2176,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -61,7 +61,6 @@ GLIBC_2.2 sem_unlink F
GLIBC_2.2 sem_wait F
GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
GLIBC_2.28 cnd_init F

View File

@ -119,6 +119,7 @@ GLIBC_2.27 wcstof32x F
GLIBC_2.27 wcstof32x_l F
GLIBC_2.27 wcstof64 F
GLIBC_2.27 wcstof64_l F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
@ -172,9 +173,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -3,7 +3,6 @@ GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_setname_np F
GLIBC_2.18 pthread_getattr_default_np F
GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
GLIBC_2.28 cnd_init F

View File

@ -2046,6 +2046,7 @@ GLIBC_2.27 wcstof32x F
GLIBC_2.27 wcstof32x_l F
GLIBC_2.27 wcstof64 F
GLIBC_2.27 wcstof64_l F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
@ -2261,9 +2262,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -69,7 +69,6 @@ GLIBC_2.2 pthread_yield F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
GLIBC_2.28 cnd_init F

View File

@ -2188,6 +2188,7 @@ GLIBC_2.27 wcstof32x F
GLIBC_2.27 wcstof32x_l F
GLIBC_2.27 wcstof64 F
GLIBC_2.27 wcstof64_l F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
@ -2241,9 +2242,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -69,7 +69,6 @@ GLIBC_2.18 sem_timedwait F
GLIBC_2.18 sem_trywait F
GLIBC_2.18 sem_unlink F
GLIBC_2.18 sem_wait F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
GLIBC_2.28 cnd_init F

View File

@ -2188,6 +2188,7 @@ GLIBC_2.27 wcstof32x F
GLIBC_2.27 wcstof32x_l F
GLIBC_2.27 wcstof64 F
GLIBC_2.27 wcstof64_l F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
@ -2238,9 +2239,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -69,7 +69,6 @@ GLIBC_2.18 sem_timedwait F
GLIBC_2.18 sem_trywait F
GLIBC_2.18 sem_unlink F
GLIBC_2.18 sem_wait F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
GLIBC_2.28 cnd_init F

View File

@ -2016,6 +2016,7 @@ GLIBC_2.27 wcstof32x F
GLIBC_2.27 wcstof32x_l F
GLIBC_2.27 wcstof64 F
GLIBC_2.27 wcstof64_l F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
@ -2224,9 +2225,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -68,7 +68,6 @@ GLIBC_2.2 sem_unlink F
GLIBC_2.2 sem_wait F
GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
GLIBC_2.28 cnd_init F

View File

@ -2014,6 +2014,7 @@ GLIBC_2.27 wcstof32x F
GLIBC_2.27 wcstof32x_l F
GLIBC_2.27 wcstof64 F
GLIBC_2.27 wcstof64_l F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
@ -2222,9 +2223,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -68,7 +68,6 @@ GLIBC_2.2 sem_unlink F
GLIBC_2.2 sem_wait F
GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
GLIBC_2.28 cnd_init F

View File

@ -2022,6 +2022,7 @@ GLIBC_2.27 wcstof64 F
GLIBC_2.27 wcstof64_l F
GLIBC_2.27 wcstof64x F
GLIBC_2.27 wcstof64x_l F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
@ -2230,9 +2231,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -2018,6 +2018,7 @@ GLIBC_2.27 wcstof64 F
GLIBC_2.27 wcstof64_l F
GLIBC_2.27 wcstof64x F
GLIBC_2.27 wcstof64x_l F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
@ -2224,9 +2225,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -2230,6 +2230,7 @@ GLIBC_2.27 wcstof32x F
GLIBC_2.27 wcstof32x_l F
GLIBC_2.27 wcstof64 F
GLIBC_2.27 wcstof64_l F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
@ -2280,9 +2281,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -69,7 +69,6 @@ GLIBC_2.21 sem_timedwait F
GLIBC_2.21 sem_trywait F
GLIBC_2.21 sem_unlink F
GLIBC_2.21 sem_wait F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
GLIBC_2.28 cnd_init F

View File

@ -2050,6 +2050,7 @@ GLIBC_2.27 wcstof32x F
GLIBC_2.27 wcstof32x_l F
GLIBC_2.27 wcstof64 F
GLIBC_2.27 wcstof64_l F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
@ -2288,9 +2289,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -69,7 +69,6 @@ GLIBC_2.2 pthread_yield F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
GLIBC_2.28 cnd_init F

View File

@ -2054,6 +2054,7 @@ GLIBC_2.27 wcstof32x F
GLIBC_2.27 wcstof32x_l F
GLIBC_2.27 wcstof64 F
GLIBC_2.27 wcstof64_l F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
@ -2321,9 +2322,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -119,6 +119,7 @@ GLIBC_2.27 wcstof32x F
GLIBC_2.27 wcstof32x_l F
GLIBC_2.27 wcstof64 F
GLIBC_2.27 wcstof64_l F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
@ -2142,9 +2143,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -3,7 +3,6 @@ GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_setname_np F
GLIBC_2.18 pthread_getattr_default_np F
GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
GLIBC_2.28 cnd_init F

View File

@ -2288,6 +2288,7 @@ GLIBC_2.27 wcstof64 F
GLIBC_2.27 wcstof64_l F
GLIBC_2.27 wcstof64x F
GLIBC_2.27 wcstof64x_l F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
@ -2443,9 +2444,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -69,7 +69,6 @@ GLIBC_2.17 sem_unlink F
GLIBC_2.17 sem_wait F
GLIBC_2.18 pthread_getattr_default_np F
GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
GLIBC_2.28 cnd_init F

View File

@ -586,6 +586,7 @@ GLIBC_2.33 btowc F
GLIBC_2.33 bzero F
GLIBC_2.33 c16rtomb F
GLIBC_2.33 c32rtomb F
GLIBC_2.33 call_once F
GLIBC_2.33 calloc F
GLIBC_2.33 canonicalize_file_name F
GLIBC_2.33 capget F
@ -2008,9 +2009,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -10,7 +10,6 @@ GLIBC_2.33 __pthread_rwlock_tryrdlock F
GLIBC_2.33 __pthread_rwlock_trywrlock F
GLIBC_2.33 __pthread_unregister_cancel F
GLIBC_2.33 __pthread_unregister_cancel_restore F
GLIBC_2.33 call_once F
GLIBC_2.33 cnd_broadcast F
GLIBC_2.33 cnd_destroy F
GLIBC_2.33 cnd_init F

View File

@ -2159,6 +2159,7 @@ GLIBC_2.27 xdrstdio_create F
GLIBC_2.27 xencrypt F
GLIBC_2.27 xprt_register F
GLIBC_2.27 xprt_unregister F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
@ -2208,9 +2209,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -69,7 +69,6 @@ GLIBC_2.27 sem_timedwait F
GLIBC_2.27 sem_trywait F
GLIBC_2.27 sem_unlink F
GLIBC_2.27 sem_wait F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
GLIBC_2.28 cnd_init F

View File

@ -2059,6 +2059,7 @@ GLIBC_2.27 wcstof64 F
GLIBC_2.27 wcstof64_l F
GLIBC_2.27 wcstof64x F
GLIBC_2.27 wcstof64x_l F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
@ -2286,9 +2287,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -70,7 +70,6 @@ GLIBC_2.2 pthread_yield F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
GLIBC_2.28 cnd_init F

View File

@ -1957,6 +1957,7 @@ GLIBC_2.27 wcstof64 F
GLIBC_2.27 wcstof64_l F
GLIBC_2.27 wcstof64x F
GLIBC_2.27 wcstof64x_l F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
@ -2179,9 +2180,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -62,7 +62,6 @@ GLIBC_2.2 sem_unlink F
GLIBC_2.2 sem_wait F
GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
GLIBC_2.28 cnd_init F

View File

@ -1933,6 +1933,7 @@ GLIBC_2.27 wcstof32x F
GLIBC_2.27 wcstof32x_l F
GLIBC_2.27 wcstof64 F
GLIBC_2.27 wcstof64_l F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
@ -2148,9 +2149,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -61,7 +61,6 @@ GLIBC_2.2 sem_unlink F
GLIBC_2.2 sem_wait F
GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
GLIBC_2.28 cnd_init F

View File

@ -1933,6 +1933,7 @@ GLIBC_2.27 wcstof32x F
GLIBC_2.27 wcstof32x_l F
GLIBC_2.27 wcstof64 F
GLIBC_2.27 wcstof64_l F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
@ -2145,9 +2146,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -61,7 +61,6 @@ GLIBC_2.2 sem_unlink F
GLIBC_2.2 sem_wait F
GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
GLIBC_2.28 cnd_init F

View File

@ -2053,6 +2053,7 @@ GLIBC_2.27 wcstof64 F
GLIBC_2.27 wcstof64_l F
GLIBC_2.27 wcstof64x F
GLIBC_2.27 wcstof64x_l F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
@ -2277,9 +2278,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -69,7 +69,6 @@ GLIBC_2.2 pthread_yield F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
GLIBC_2.28 cnd_init F

View File

@ -1987,6 +1987,7 @@ GLIBC_2.27 wcstof64 F
GLIBC_2.27 wcstof64_l F
GLIBC_2.27 wcstof64x F
GLIBC_2.27 wcstof64x_l F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
@ -2196,9 +2197,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -61,7 +61,6 @@ GLIBC_2.2 sem_unlink F
GLIBC_2.2 sem_wait F
GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
GLIBC_2.28 cnd_init F

View File

@ -1946,6 +1946,7 @@ GLIBC_2.27 wcstof64 F
GLIBC_2.27 wcstof64_l F
GLIBC_2.27 wcstof64x F
GLIBC_2.27 wcstof64x_l F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
@ -2157,9 +2158,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -60,7 +60,6 @@ GLIBC_2.2.5 sem_trywait F
GLIBC_2.2.5 sem_unlink F
GLIBC_2.2.5 sem_wait F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
GLIBC_2.28 cnd_init F

View File

@ -2211,6 +2211,7 @@ GLIBC_2.27 wcstof64 F
GLIBC_2.27 wcstof64_l F
GLIBC_2.27 wcstof64x F
GLIBC_2.27 wcstof64x_l F
GLIBC_2.28 call_once F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
@ -2262,9 +2263,9 @@ GLIBC_2.34 __pthread_mutex_trylock F
GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_mutexattr_init F
GLIBC_2.34 __pthread_mutexattr_settype F
GLIBC_2.34 __pthread_once F
GLIBC_2.34 __pthread_setspecific F
GLIBC_2.34 __pthread_unwind_next F
GLIBC_2.34 call_once F
GLIBC_2.34 pthread_cond_clockwait F
GLIBC_2.34 pthread_condattr_getclock F
GLIBC_2.34 pthread_condattr_getpshared F

View File

@ -69,7 +69,6 @@ GLIBC_2.16 sem_unlink F
GLIBC_2.16 sem_wait F
GLIBC_2.18 pthread_getattr_default_np F
GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
GLIBC_2.28 cnd_init F