From 477910b83e5ef3b3aa78b11808433846989461c8 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Mon, 28 Jun 2021 09:51:01 +0200 Subject: 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 --- rt/Makefile | 2 +- rt/Versions | 8 ++++++-- rt/librt-compat.c | 16 +++++++++------- 3 files changed, 16 insertions(+), 10 deletions(-) (limited to 'rt') diff --git a/rt/Makefile b/rt/Makefile index 1cb2259629..f8a47622d0 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 d1f05af013..7e41beae06 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 24c2ed9db4..84f50c82a9 100644 --- a/rt/librt-compat.c +++ b/rt/librt-compat.c @@ -20,6 +20,7 @@ # include # include +# 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 -- cgit 1.4.1