diff options
author | Florian Weimer <fweimer@redhat.com> | 2021-06-28 09:51:01 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2021-06-28 09:51:01 +0200 |
commit | 477910b83e5ef3b3aa78b11808433846989461c8 (patch) | |
tree | 48e855cdf2c9a0a92ca1aef958a38ed85ddcc833 /rt | |
parent | a1d6ed027b7f3ee603fba77c16508c7edc78d00a (diff) | |
download | glibc-477910b83e5ef3b3aa78b11808433846989461c8.zip glibc-477910b83e5ef3b3aa78b11808433846989461c8.tar.gz glibc-477910b83e5ef3b3aa78b11808433846989461c8.tar.bz2 |
Linux: Move timer_settime, __timer_settime64 from librt to libc
The symbols were moved using scripts/move-symbol-to-libc.py.
The way the ABI intransition is implemented is changed with this
commit: the implementation is now consolidated in one file with a
TIMER_T_WAS_INT_COMPAT check.
The shared librt is now empty, so this commit adds a placeholder
symbol at the base version, GLIBC_2.2, and potentially at the
GLIBC_2.3.3 version as well (the leftover from the int/timer_t ABI
transition).
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Diffstat (limited to 'rt')
-rw-r--r-- | rt/Makefile | 2 | ||||
-rw-r--r-- | rt/Versions | 8 | ||||
-rw-r--r-- | rt/librt-compat.c | 16 |
3 files changed, 16 insertions, 10 deletions
diff --git a/rt/Makefile b/rt/Makefile index 1cb2259..f8a4762 100644 --- a/rt/Makefile +++ b/rt/Makefile @@ -30,7 +30,6 @@ routines = \ librt-routines = \ librt-compat \ - timer_settime \ librt-shared-only-routines = librt-compat @@ -63,6 +62,7 @@ $(librt-routines-var) += \ timer_delete \ timer_getoverr \ timer_gettime \ + timer_settime \ tests := tst-shm tst-timer tst-timer2 \ tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \ diff --git a/rt/Versions b/rt/Versions index d1f05af..7e41bea 100644 --- a/rt/Versions +++ b/rt/Versions @@ -26,6 +26,7 @@ libc { timer_delete; timer_getoverrun; timer_gettime; + timer_settime; %endif shm_open; shm_unlink; @@ -89,6 +90,7 @@ libc { timer_delete; timer_getoverrun; timer_gettime; + timer_settime; %endif shm_open; shm_unlink; @@ -132,13 +134,15 @@ librt { %endif } GLIBC_2.2 { -%if !PTHREAD_IN_LIBC +%if PTHREAD_IN_LIBC + __librt_version_placeholder; +%else timer_create; timer_delete; timer_getoverrun; timer_gettime; -%endif timer_settime; +%endif } GLIBC_2.3.4 { %if PTHREAD_IN_LIBC diff --git a/rt/librt-compat.c b/rt/librt-compat.c index 24c2ed9..84f50c8 100644 --- a/rt/librt-compat.c +++ b/rt/librt-compat.c @@ -20,6 +20,7 @@ # include <shlib-compat.h> # include <sys/cdefs.h> +# if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_34) void attribute_compat_text_section __attribute_used__ @@ -27,25 +28,26 @@ __librt_version_placeholder_1 (void) { } -# if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_2) compat_symbol (librt, __librt_version_placeholder_1, __librt_version_placeholder, GLIBC_2_1); # endif -# if SHLIB_COMPAT (librt, GLIBC_2_4, GLIBC_2_34) \ - && ABI_librt_GLIBC_2_3_4 != ABI_librt_GLIBC_2_1 +# if SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_34) +compat_symbol (librt, __librt_version_placeholder_1, + __librt_version_placeholder, GLIBC_2_2); +# endif + +# if SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34) compat_symbol (librt, __librt_version_placeholder_1, __librt_version_placeholder, GLIBC_2_3_4); # endif -# if SHLIB_COMPAT (librt, GLIBC_2_4, GLIBC_2_34) \ - && ABI_librt_GLIBC_2_4 != ABI_librt_GLIBC_2_1 +# if SHLIB_COMPAT (librt, GLIBC_2_4, GLIBC_2_34) compat_symbol (librt, __librt_version_placeholder_1, __librt_version_placeholder, GLIBC_2_4); # endif -# if SHLIB_COMPAT (librt, GLIBC_2_7, GLIBC_2_34) \ - && ABI_librt_GLIBC_2_7 != ABI_librt_GLIBC_2_4 +# if SHLIB_COMPAT (librt, GLIBC_2_7, GLIBC_2_34) compat_symbol (librt, __librt_version_placeholder_1, __librt_version_placeholder, GLIBC_2_7); # endif |