about summary refs log tree commit diff
path: root/rt
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2021-06-28 09:51:01 +0200
committerFlorian Weimer <fweimer@redhat.com>2021-06-28 09:51:01 +0200
commit477910b83e5ef3b3aa78b11808433846989461c8 (patch)
tree48e855cdf2c9a0a92ca1aef958a38ed85ddcc833 /rt
parenta1d6ed027b7f3ee603fba77c16508c7edc78d00a (diff)
downloadglibc-477910b83e5ef3b3aa78b11808433846989461c8.tar.gz
glibc-477910b83e5ef3b3aa78b11808433846989461c8.tar.xz
glibc-477910b83e5ef3b3aa78b11808433846989461c8.zip
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/Makefile2
-rw-r--r--rt/Versions8
-rw-r--r--rt/librt-compat.c16
3 files changed, 16 insertions, 10 deletions
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 <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