mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-13 00:30:07 +00:00
310e59e64c
The symbol was moved using scripts/move-symbol-to-libc.py. __libpthread_version_placeholder@@GLIBC_2.2 is needed by this change; the Versions entry for GLIBC_2.2 in libpthread had leftover symbols due to an error in a previous conflict resolution. The condition for the placeholder symbol is complicated because some architectures have earlier symbols at the GLIBC_2.2 symbol versions, so the placeholder is not required there (yet). Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
93 lines
3.6 KiB
C
93 lines
3.6 KiB
C
/* Placeholder definitions to pull in removed symbol versions.
|
|
Copyright (C) 2019-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
|
|
<https://www.gnu.org/licenses/>. */
|
|
|
|
#include <sys/cdefs.h>
|
|
#include <shlib-compat.h>
|
|
|
|
#ifdef SHARED
|
|
void
|
|
attribute_compat_text_section
|
|
__attribute_used__
|
|
__libpthread_version_placeholder_1 (void)
|
|
{
|
|
}
|
|
#endif
|
|
|
|
/* This is an unused compatibility symbol definition, to prevent ld
|
|
from creating a weak version definition for GLIBC_2.1.2. (__vfork
|
|
used to be defined at that version, but it is now provided by libc,
|
|
and there are no versions left in libpthread for that symbol
|
|
version.) If the ABI baseline for glibc is the GLIBC_2.2 symbol
|
|
version or later, the placeholder symbol is not needed because
|
|
there are plenty of other symbols which populate those later
|
|
versions. */
|
|
#if (SHLIB_COMPAT (libpthread, GLIBC_2_1_1, GLIBC_2_1_2))
|
|
compat_symbol (libpthread, __libpthread_version_placeholder_1,
|
|
__libpthread_version_placeholder, GLIBC_2_1_1);
|
|
#endif
|
|
#if (SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_2))
|
|
compat_symbol (libpthread, __libpthread_version_placeholder_1,
|
|
__libpthread_version_placeholder, GLIBC_2_1_2);
|
|
#endif
|
|
|
|
/* Do not create the placeholder symbol version if there are other
|
|
symbols left that keep the version around (because GLIBC_2.0 got
|
|
promoted to GLIBC_2.2). */
|
|
#if SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_2_3) \
|
|
&& ABI_libpthread_GLIBC_2_2 != ABI_libpthread_GLIBC_2_0 \
|
|
&& ABI_libpthread_GLIBC_2_2 != ABI_libpthread_GLIBC_2_1_3
|
|
compat_symbol (libpthread, __libpthread_version_placeholder_1,
|
|
__libpthread_version_placeholder, GLIBC_2_2);
|
|
#endif
|
|
|
|
#if (SHLIB_COMPAT (libpthread, GLIBC_2_2_3, GLIBC_2_2_4))
|
|
compat_symbol (libpthread, __libpthread_version_placeholder_1,
|
|
__libpthread_version_placeholder, GLIBC_2_2_3);
|
|
#endif
|
|
|
|
#if (SHLIB_COMPAT (libpthread, GLIBC_2_2_6, GLIBC_2_3))
|
|
compat_symbol (libpthread, __libpthread_version_placeholder_1,
|
|
__libpthread_version_placeholder, GLIBC_2_2_6);
|
|
#endif
|
|
|
|
#if (SHLIB_COMPAT (libpthread, GLIBC_2_3_2, GLIBC_2_3_4))
|
|
compat_symbol (libpthread, __libpthread_version_placeholder_1,
|
|
__libpthread_version_placeholder, GLIBC_2_3_2);
|
|
#endif
|
|
|
|
#if (SHLIB_COMPAT (libpthread, GLIBC_2_4, GLIBC_2_5))
|
|
compat_symbol (libpthread, __libpthread_version_placeholder_1,
|
|
__libpthread_version_placeholder, GLIBC_2_4);
|
|
#endif
|
|
|
|
#if SHLIB_COMPAT (libpthread, GLIBC_2_18, GLIBC_2_19) \
|
|
&& ABI_libpthread_GLIBC_2_18 != ABI_libpthread_GLIBC_2_0
|
|
compat_symbol (libpthread, __libpthread_version_placeholder_1,
|
|
__libpthread_version_placeholder, GLIBC_2_18);
|
|
#endif
|
|
|
|
#if (SHLIB_COMPAT (libpthread, GLIBC_2_30, GLIBC_2_31))
|
|
compat_symbol (libpthread, __libpthread_version_placeholder_1,
|
|
__libpthread_version_placeholder, GLIBC_2_30);
|
|
#endif
|
|
|
|
#if (SHLIB_COMPAT (libpthread, GLIBC_2_31, GLIBC_2_32))
|
|
compat_symbol (libpthread, __libpthread_version_placeholder_1,
|
|
__libpthread_version_placeholder, GLIBC_2_31);
|
|
#endif
|