diff --git a/include/mqueue.h b/include/mqueue.h
index 2c40c1e3fc..8243a637d2 100644
--- a/include/mqueue.h
+++ b/include/mqueue.h
@@ -1,20 +1,22 @@
 #include <rt/mqueue.h>
 
 #ifndef _ISOMAC
+extern __typeof (mq_timedreceive) __mq_timedreceive __nonnull ((2, 5));
+
 # if IS_IN (librt)
 hidden_proto (mq_timedsend)
 extern __typeof (mq_timedsend) __mq_timedsend __nonnull ((2, 5));
 hidden_proto (__mq_timedsend)
-hidden_proto (mq_timedreceive)
-extern __typeof (mq_timedreceive) __mq_timedreceive __nonnull ((2, 5));
-hidden_proto (__mq_timedreceive)
 #  if !PTHREAD_IN_LIBC
 hidden_proto (mq_setattr)
+hidden_proto (mq_timedreceive)
+hidden_proto (__mq_timedreceive)
 #  endif
 # endif /* IS_IN (librt) */
 
 # if PTHREAD_IN_LIBC
 libc_hidden_proto (mq_setattr)
+libc_hidden_proto (__mq_timedreceive)
 
 /* Called from fork so that the new subprocess re-creates the
    notification thread if necessary.  */
@@ -36,6 +38,10 @@ extern ssize_t __mq_timedreceive_time64 (mqd_t mqdes,
                                          unsigned int *__restrict msg_prio,
                                          const struct __timespec64 *__restrict
                                          abs_timeout);
+#  if PTHREAD_IN_LIBC
+libc_hidden_proto (__mq_timedreceive_time64)
+#  else
 librt_hidden_proto (__mq_timedreceive_time64)
+#  endif
 #endif
 #endif
diff --git a/rt/Makefile b/rt/Makefile
index f0b13b27ba..a3182ac459 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -30,9 +30,7 @@ routines = \
 
 librt-routines = \
   librt-compat \
-  mq_receive \
   mq_send \
-  mq_timedreceive \
   mq_timedsend \
   mq_unlink \
   timer_create \
@@ -62,7 +60,9 @@ $(librt-routines-var) += \
   mq_getattr \
   mq_notify \
   mq_open \
+  mq_receive \
   mq_setattr \
+  mq_timedreceive \
 
 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 d28a7f6979..541106632e 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -30,7 +30,9 @@ libc {
     mq_getattr;
     mq_notify;
     mq_open;
+    mq_receive;
     mq_setattr;
+    mq_timedreceive;
 %endif
   }
   GLIBC_2.4 {
@@ -68,7 +70,9 @@ libc {
     mq_getattr;
     mq_notify;
     mq_open;
+    mq_receive;
     mq_setattr;
+    mq_timedreceive;
 %endif
     shm_open;
     shm_unlink;
@@ -124,11 +128,11 @@ librt {
     mq_getattr;
     mq_notify;
     mq_open;
+    mq_receive;
     mq_setattr;
+    mq_timedreceive;
 %endif
-    mq_receive;
     mq_send;
-    mq_timedreceive;
     mq_timedsend;
     mq_unlink;
   }
diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
index f246a389e1..cce7c56652 100644
--- a/sysdeps/unix/sysv/linux/Versions
+++ b/sysdeps/unix/sysv/linux/Versions
@@ -226,6 +226,7 @@ libc {
     __lstat64_time64;
     __lutimes64;
     __mktime64;
+    __mq_timedreceive_time64;
     __msgctl64;
     __mtx_timedlock64;
     __nanosleep64;
@@ -296,7 +297,6 @@ librt {
 %ifdef TIME64_NON_DEFAULT
     # 64-bit time_t support
     __mq_timedsend_time64;
-    __mq_timedreceive_time64;
     __timer_gettime64;
     __timer_settime64;
 %endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 07f77027fc..cd9d4d91c5 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1362,7 +1362,9 @@ GLIBC_2.17 mq_close F
 GLIBC_2.17 mq_getattr F
 GLIBC_2.17 mq_notify F
 GLIBC_2.17 mq_open F
+GLIBC_2.17 mq_receive F
 GLIBC_2.17 mq_setattr F
+GLIBC_2.17 mq_timedreceive F
 GLIBC_2.17 mrand48 F
 GLIBC_2.17 mrand48_r F
 GLIBC_2.17 mremap F
@@ -2410,7 +2412,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
index 32327b9d62..1c3c05932e 100644
--- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
@@ -1,6 +1,4 @@
-GLIBC_2.17 mq_receive F
 GLIBC_2.17 mq_send F
-GLIBC_2.17 mq_timedreceive F
 GLIBC_2.17 mq_timedsend F
 GLIBC_2.17 mq_unlink F
 GLIBC_2.17 timer_create F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 683b320ddc..7a894d983e 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2396,7 +2396,9 @@ GLIBC_2.3.4 mq_close F
 GLIBC_2.3.4 mq_getattr F
 GLIBC_2.3.4 mq_notify F
 GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2504,7 +2506,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index bd9a4111f3..6eae7e9482 100644
--- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
@@ -10,9 +10,7 @@ GLIBC_2.3.3 timer_delete F
 GLIBC_2.3.3 timer_getoverrun F
 GLIBC_2.3.3 timer_gettime F
 GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 mq_timedsend F
 GLIBC_2.3.4 mq_unlink F
 GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 0d73e4cf7a..e3769a67f5 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1293,7 +1293,9 @@ GLIBC_2.32 mq_close F
 GLIBC_2.32 mq_getattr F
 GLIBC_2.32 mq_notify F
 GLIBC_2.32 mq_open F
+GLIBC_2.32 mq_receive F
 GLIBC_2.32 mq_setattr F
+GLIBC_2.32 mq_timedreceive F
 GLIBC_2.32 mrand48 F
 GLIBC_2.32 mrand48_r F
 GLIBC_2.32 mremap F
@@ -2169,7 +2171,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
index 1ed03be8c1..7a861b1e76 100644
--- a/sysdeps/unix/sysv/linux/arc/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
@@ -1,6 +1,4 @@
-GLIBC_2.32 mq_receive F
 GLIBC_2.32 mq_send F
-GLIBC_2.32 mq_timedreceive F
 GLIBC_2.32 mq_timedsend F
 GLIBC_2.32 mq_unlink F
 GLIBC_2.32 timer_create F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 351bba9289..74ff1bc808 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -227,6 +227,7 @@ GLIBC_2.34 __lstat64_time64 F
 GLIBC_2.34 __lutimes64 F
 GLIBC_2.34 __mktime64 F
 GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __msgctl64 F
 GLIBC_2.34 __mtx_timedlock64 F
 GLIBC_2.34 __nanosleep64 F
@@ -318,7 +319,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
@@ -1736,7 +1739,9 @@ GLIBC_2.4 mq_close F
 GLIBC_2.4 mq_getattr F
 GLIBC_2.4 mq_notify F
 GLIBC_2.4 mq_open F
+GLIBC_2.4 mq_receive F
 GLIBC_2.4 mq_setattr F
+GLIBC_2.4 mq_timedreceive F
 GLIBC_2.4 mrand48 F
 GLIBC_2.4 mrand48_r F
 GLIBC_2.4 mremap F
diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
index ecdfd60cdd..ea840d42d1 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,10 +1,7 @@
-GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __mq_timedsend_time64 F
 GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 mq_receive F
 GLIBC_2.4 mq_send F
-GLIBC_2.4 mq_timedreceive F
 GLIBC_2.4 mq_timedsend F
 GLIBC_2.4 mq_unlink F
 GLIBC_2.4 timer_create F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 803e1a8bf9..04692b0d98 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -224,6 +224,7 @@ GLIBC_2.34 __lstat64_time64 F
 GLIBC_2.34 __lutimes64 F
 GLIBC_2.34 __mktime64 F
 GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __msgctl64 F
 GLIBC_2.34 __mtx_timedlock64 F
 GLIBC_2.34 __nanosleep64 F
@@ -315,7 +316,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
@@ -1733,7 +1736,9 @@ GLIBC_2.4 mq_close F
 GLIBC_2.4 mq_getattr F
 GLIBC_2.4 mq_notify F
 GLIBC_2.4 mq_open F
+GLIBC_2.4 mq_receive F
 GLIBC_2.4 mq_setattr F
+GLIBC_2.4 mq_timedreceive F
 GLIBC_2.4 mrand48 F
 GLIBC_2.4 mrand48_r F
 GLIBC_2.4 mremap F
diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
index ecdfd60cdd..ea840d42d1 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,10 +1,7 @@
-GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __mq_timedsend_time64 F
 GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 mq_receive F
 GLIBC_2.4 mq_send F
-GLIBC_2.4 mq_timedreceive F
 GLIBC_2.4 mq_timedsend F
 GLIBC_2.4 mq_unlink F
 GLIBC_2.4 timer_create F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 5a257c5f7f..e25f2637b6 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1348,7 +1348,9 @@ GLIBC_2.29 mq_close F
 GLIBC_2.29 mq_getattr F
 GLIBC_2.29 mq_notify F
 GLIBC_2.29 mq_open F
+GLIBC_2.29 mq_receive F
 GLIBC_2.29 mq_setattr F
+GLIBC_2.29 mq_timedreceive F
 GLIBC_2.29 mrand48 F
 GLIBC_2.29 mrand48_r F
 GLIBC_2.29 mremap F
@@ -2339,6 +2341,7 @@ GLIBC_2.34 __lstat64_time64 F
 GLIBC_2.34 __lutimes64 F
 GLIBC_2.34 __mktime64 F
 GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __msgctl64 F
 GLIBC_2.34 __mtx_timedlock64 F
 GLIBC_2.34 __nanosleep64 F
@@ -2430,7 +2433,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
index 8e8822b999..dadd5b921b 100644
--- a/sysdeps/unix/sysv/linux/csky/librt.abilist
+++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
@@ -1,6 +1,4 @@
-GLIBC_2.29 mq_receive F
 GLIBC_2.29 mq_send F
-GLIBC_2.29 mq_timedreceive F
 GLIBC_2.29 mq_timedsend F
 GLIBC_2.29 mq_unlink F
 GLIBC_2.29 timer_create F
@@ -8,7 +6,6 @@ GLIBC_2.29 timer_delete F
 GLIBC_2.29 timer_getoverrun F
 GLIBC_2.29 timer_gettime F
 GLIBC_2.29 timer_settime F
-GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __mq_timedsend_time64 F
 GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 1d859308d7..7ef275ce02 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2210,7 +2210,9 @@ GLIBC_2.3.4 mq_close F
 GLIBC_2.3.4 mq_getattr F
 GLIBC_2.3.4 mq_notify F
 GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2292,6 +2294,7 @@ GLIBC_2.34 __lstat64_time64 F
 GLIBC_2.34 __lutimes64 F
 GLIBC_2.34 __mktime64 F
 GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __msgctl64 F
 GLIBC_2.34 __mtx_timedlock64 F
 GLIBC_2.34 __nanosleep64 F
@@ -2383,7 +2386,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
index bb9c1f9659..9d26b1298c 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -4,12 +4,9 @@ GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
 GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
-GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 mq_timedsend F
 GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __mq_timedsend_time64 F
 GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 9b4f57689b..a584865427 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2391,7 +2391,9 @@ GLIBC_2.3.4 mq_close F
 GLIBC_2.3.4 mq_getattr F
 GLIBC_2.3.4 mq_notify F
 GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2476,6 +2478,7 @@ GLIBC_2.34 __lstat64_time64 F
 GLIBC_2.34 __lutimes64 F
 GLIBC_2.34 __mktime64 F
 GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __msgctl64 F
 GLIBC_2.34 __mtx_timedlock64 F
 GLIBC_2.34 __nanosleep64 F
@@ -2567,7 +2570,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
index bb9c1f9659..9d26b1298c 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -4,12 +4,9 @@ GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
 GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
-GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 mq_timedsend F
 GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __mq_timedsend_time64 F
 GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 9575d82f33..6e22d91a7f 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2245,7 +2245,9 @@ GLIBC_2.3.4 mq_close F
 GLIBC_2.3.4 mq_getattr F
 GLIBC_2.3.4 mq_notify F
 GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2342,7 +2344,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
index 8ecf898b30..eb4a5080e2 100644
--- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
@@ -9,9 +9,7 @@ GLIBC_2.3.3 timer_delete F
 GLIBC_2.3.3 timer_getoverrun F
 GLIBC_2.3.3 timer_gettime F
 GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 mq_timedsend F
 GLIBC_2.3.4 mq_unlink F
 GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 94903e9ff0..c6e168754f 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -228,6 +228,7 @@ GLIBC_2.34 __lstat64_time64 F
 GLIBC_2.34 __lutimes64 F
 GLIBC_2.34 __mktime64 F
 GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __msgctl64 F
 GLIBC_2.34 __mtx_timedlock64 F
 GLIBC_2.34 __nanosleep64 F
@@ -319,7 +320,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
@@ -1720,7 +1723,9 @@ GLIBC_2.4 mq_close F
 GLIBC_2.4 mq_getattr F
 GLIBC_2.4 mq_notify F
 GLIBC_2.4 mq_open F
+GLIBC_2.4 mq_receive F
 GLIBC_2.4 mq_setattr F
+GLIBC_2.4 mq_timedreceive F
 GLIBC_2.4 mrand48 F
 GLIBC_2.4 mrand48_r F
 GLIBC_2.4 mremap F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
index ecdfd60cdd..ea840d42d1 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,10 +1,7 @@
-GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __mq_timedsend_time64 F
 GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 mq_receive F
 GLIBC_2.4 mq_send F
-GLIBC_2.4 mq_timedreceive F
 GLIBC_2.4 mq_timedsend F
 GLIBC_2.4 mq_unlink F
 GLIBC_2.4 timer_create F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index f2dddac46b..ba3a4ace7b 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2334,7 +2334,9 @@ GLIBC_2.3.4 mq_close F
 GLIBC_2.3.4 mq_getattr F
 GLIBC_2.3.4 mq_notify F
 GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2419,6 +2421,7 @@ GLIBC_2.34 __lstat64_time64 F
 GLIBC_2.34 __lutimes64 F
 GLIBC_2.34 __mktime64 F
 GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __msgctl64 F
 GLIBC_2.34 __mtx_timedlock64 F
 GLIBC_2.34 __nanosleep64 F
@@ -2510,7 +2513,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index bb9c1f9659..9d26b1298c 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -4,12 +4,9 @@ GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
 GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
-GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 mq_timedsend F
 GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __mq_timedsend_time64 F
 GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 3c8638ef87..1350543bce 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1364,7 +1364,9 @@ GLIBC_2.18 mq_close F
 GLIBC_2.18 mq_getattr F
 GLIBC_2.18 mq_notify F
 GLIBC_2.18 mq_open F
+GLIBC_2.18 mq_receive F
 GLIBC_2.18 mq_setattr F
+GLIBC_2.18 mq_timedreceive F
 GLIBC_2.18 mrand48 F
 GLIBC_2.18 mrand48_r F
 GLIBC_2.18 mremap F
@@ -2390,6 +2392,7 @@ GLIBC_2.34 __lstat64_time64 F
 GLIBC_2.34 __lutimes64 F
 GLIBC_2.34 __mktime64 F
 GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __msgctl64 F
 GLIBC_2.34 __mtx_timedlock64 F
 GLIBC_2.34 __nanosleep64 F
@@ -2481,7 +2484,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
index ce332a362d..8ddbc3a272 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
@@ -1,6 +1,4 @@
-GLIBC_2.18 mq_receive F
 GLIBC_2.18 mq_send F
-GLIBC_2.18 mq_timedreceive F
 GLIBC_2.18 mq_timedsend F
 GLIBC_2.18 mq_unlink F
 GLIBC_2.18 timer_create F
@@ -8,7 +6,6 @@ GLIBC_2.18 timer_delete F
 GLIBC_2.18 timer_getoverrun F
 GLIBC_2.18 timer_gettime F
 GLIBC_2.18 timer_settime F
-GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __mq_timedsend_time64 F
 GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 8eb98598cc..10151508d3 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1364,7 +1364,9 @@ GLIBC_2.18 mq_close F
 GLIBC_2.18 mq_getattr F
 GLIBC_2.18 mq_notify F
 GLIBC_2.18 mq_open F
+GLIBC_2.18 mq_receive F
 GLIBC_2.18 mq_setattr F
+GLIBC_2.18 mq_timedreceive F
 GLIBC_2.18 mrand48 F
 GLIBC_2.18 mrand48_r F
 GLIBC_2.18 mremap F
@@ -2387,6 +2389,7 @@ GLIBC_2.34 __lstat64_time64 F
 GLIBC_2.34 __lutimes64 F
 GLIBC_2.34 __mktime64 F
 GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __msgctl64 F
 GLIBC_2.34 __mtx_timedlock64 F
 GLIBC_2.34 __nanosleep64 F
@@ -2478,7 +2481,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index ce332a362d..8ddbc3a272 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
@@ -1,6 +1,4 @@
-GLIBC_2.18 mq_receive F
 GLIBC_2.18 mq_send F
-GLIBC_2.18 mq_timedreceive F
 GLIBC_2.18 mq_timedsend F
 GLIBC_2.18 mq_unlink F
 GLIBC_2.18 timer_create F
@@ -8,7 +6,6 @@ GLIBC_2.18 timer_delete F
 GLIBC_2.18 timer_getoverrun F
 GLIBC_2.18 timer_gettime F
 GLIBC_2.18 timer_settime F
-GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __mq_timedsend_time64 F
 GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index fd796ad952..e3ebc66ae0 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2302,7 +2302,9 @@ GLIBC_2.3.4 mq_close F
 GLIBC_2.3.4 mq_getattr F
 GLIBC_2.3.4 mq_notify F
 GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2384,6 +2386,7 @@ GLIBC_2.34 __lstat64_time64 F
 GLIBC_2.34 __lutimes64 F
 GLIBC_2.34 __mktime64 F
 GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __msgctl64 F
 GLIBC_2.34 __mtx_timedlock64 F
 GLIBC_2.34 __nanosleep64 F
@@ -2475,7 +2478,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
index 84b5002e71..2cd12115d9 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
@@ -3,12 +3,9 @@ GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
 GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
-GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 mq_timedsend F
 GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __mq_timedsend_time64 F
 GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 6b9092d313..e8d041106d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2300,7 +2300,9 @@ GLIBC_2.3.4 mq_close F
 GLIBC_2.3.4 mq_getattr F
 GLIBC_2.3.4 mq_notify F
 GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2382,6 +2384,7 @@ GLIBC_2.34 __lstat64_time64 F
 GLIBC_2.34 __lutimes64 F
 GLIBC_2.34 __mktime64 F
 GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __msgctl64 F
 GLIBC_2.34 __mtx_timedlock64 F
 GLIBC_2.34 __nanosleep64 F
@@ -2473,7 +2476,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 2be1e7d2dd..b596c529c4 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2308,7 +2308,9 @@ GLIBC_2.3.4 mq_close F
 GLIBC_2.3.4 mq_getattr F
 GLIBC_2.3.4 mq_notify F
 GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2390,6 +2392,7 @@ GLIBC_2.34 __lstat64_time64 F
 GLIBC_2.34 __lutimes64 F
 GLIBC_2.34 __mktime64 F
 GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __msgctl64 F
 GLIBC_2.34 __mtx_timedlock64 F
 GLIBC_2.34 __nanosleep64 F
@@ -2481,7 +2484,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
index 84b5002e71..2cd12115d9 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
@@ -3,12 +3,9 @@ GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
 GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
-GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 mq_timedsend F
 GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __mq_timedsend_time64 F
 GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 9569c4d8e7..af99fdad9c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2302,7 +2302,9 @@ GLIBC_2.3.4 mq_close F
 GLIBC_2.3.4 mq_getattr F
 GLIBC_2.3.4 mq_notify F
 GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2398,7 +2400,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
index 8862820283..b5796aadb3 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
@@ -3,9 +3,7 @@ GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
 GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
-GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 mq_timedsend F
 GLIBC_2.3.4 mq_unlink F
 GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mq_receive.c b/sysdeps/unix/sysv/linux/mq_receive.c
index dd43d3a8e7..e9375a4cbc 100644
--- a/sysdeps/unix/sysv/linux/mq_receive.c
+++ b/sysdeps/unix/sysv/linux/mq_receive.c
@@ -17,14 +17,19 @@
 
 #include <errno.h>
 #include <mqueue.h>
+#include <shlib-compat.h>
 #include <stddef.h>
 #include <sysdep.h>
 
 /* Receive the oldest from highest priority messages in message queue
    MQDES.  */
 ssize_t
-mq_receive (mqd_t mqdes, char *msg_ptr, size_t msg_len,
-	    unsigned int *msg_prio)
+__mq_receive (mqd_t mqdes, char *msg_ptr, size_t msg_len,
+	      unsigned int *msg_prio)
 {
   return __mq_timedreceive (mqdes, msg_ptr, msg_len, msg_prio, NULL);
 }
+versioned_symbol (libc, __mq_receive, mq_receive, GLIBC_2_34);
+#if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
+compat_symbol (librt, __mq_receive, mq_receive, GLIBC_2_3_4);
+#endif
diff --git a/sysdeps/unix/sysv/linux/mq_timedreceive.c b/sysdeps/unix/sysv/linux/mq_timedreceive.c
index eb948ccc18..14dcdde3e4 100644
--- a/sysdeps/unix/sysv/linux/mq_timedreceive.c
+++ b/sysdeps/unix/sysv/linux/mq_timedreceive.c
@@ -18,11 +18,12 @@
 
 #include <mqueue.h>
 #include <sysdep-cancel.h>
+#include <shlib-compat.h>
 
 /* Receive the oldest from highest priority messages in message queue
    MQDES, stop waiting if ABS_TIMEOUT expires.  */
 ssize_t
-__mq_timedreceive_time64 (mqd_t mqdes, char *__restrict msg_ptr, size_t msg_len,
+___mq_timedreceive_time64 (mqd_t mqdes, char *__restrict msg_ptr, size_t msg_len,
                           unsigned int *__restrict msg_prio,
                           const struct __timespec64 *__restrict abs_timeout)
 {
@@ -55,13 +56,25 @@ __mq_timedreceive_time64 (mqd_t mqdes, char *__restrict msg_ptr, size_t msg_len,
   return ret;
 }
 
-#if __TIMESIZE != 64
-librt_hidden_def (__mq_timedreceive_time64)
+#if __TIMESIZE == 64
+versioned_symbol (libc, ___mq_timedreceive_time64, mq_timedreceive, GLIBC_2_34);
+libc_hidden_ver (___mq_timedreceive_time64, __mq_timedreceive)
+# ifndef SHARED
+strong_alias (___mq_timedreceive_time64, __mq_timedreceive)
+# endif
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
+compat_symbol (librt, ___mq_timedreceive_time64, mq_timedreceive, GLIBC_2_3_4);
+# endif
+
+#else /* __TIMESIZE != 64 */
+libc_hidden_ver (___mq_timedreceive_time64, __mq_timedreceive_time64)
+versioned_symbol (libc, ___mq_timedreceive_time64, __mq_timedreceive_time64,
+		  GLIBC_2_34);
 
 ssize_t
-__mq_timedreceive (mqd_t mqdes, char *__restrict msg_ptr, size_t msg_len,
-                   unsigned int *__restrict msg_prio,
-                   const struct timespec *__restrict abs_timeout)
+___mq_timedreceive (mqd_t mqdes, char *__restrict msg_ptr, size_t msg_len,
+		    unsigned int *__restrict msg_prio,
+		    const struct timespec *__restrict abs_timeout)
 {
   struct __timespec64 ts64;
   if (abs_timeout != NULL)
@@ -70,8 +83,13 @@ __mq_timedreceive (mqd_t mqdes, char *__restrict msg_ptr, size_t msg_len,
   return __mq_timedreceive_time64 (mqdes, msg_ptr, msg_len, msg_prio,
                                    abs_timeout != NULL ? &ts64 : NULL);
 }
-#endif
+versioned_symbol (libc, ___mq_timedreceive, mq_timedreceive, GLIBC_2_34);
+libc_hidden_ver (___mq_timedreceive, __mq_timedreceive)
+# ifndef SHARED
+strong_alias (___mq_timedreceive, __mq_timedreceive)
+# endif
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_4, GLIBC_2_34)
+compat_symbol (librt, ___mq_timedreceive, mq_timedreceive, GLIBC_2_3_4);
+# endif
 
-hidden_def (__mq_timedreceive)
-weak_alias (__mq_timedreceive, mq_timedreceive)
-hidden_weak (mq_timedreceive)
+#endif /* __TIMESIZE != 64 */
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index e9ed0ba4f7..0c07cf2e80 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1407,7 +1407,9 @@ GLIBC_2.21 mq_close F
 GLIBC_2.21 mq_getattr F
 GLIBC_2.21 mq_notify F
 GLIBC_2.21 mq_open F
+GLIBC_2.21 mq_receive F
 GLIBC_2.21 mq_setattr F
+GLIBC_2.21 mq_timedreceive F
 GLIBC_2.21 mrand48 F
 GLIBC_2.21 mrand48_r F
 GLIBC_2.21 mremap F
@@ -2429,6 +2431,7 @@ GLIBC_2.34 __lstat64_time64 F
 GLIBC_2.34 __lutimes64 F
 GLIBC_2.34 __mktime64 F
 GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __msgctl64 F
 GLIBC_2.34 __mtx_timedlock64 F
 GLIBC_2.34 __nanosleep64 F
@@ -2520,7 +2523,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
index 8139d54618..7ea7b0a8f3 100644
--- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
@@ -1,6 +1,4 @@
-GLIBC_2.21 mq_receive F
 GLIBC_2.21 mq_send F
-GLIBC_2.21 mq_timedreceive F
 GLIBC_2.21 mq_timedsend F
 GLIBC_2.21 mq_unlink F
 GLIBC_2.21 timer_create F
@@ -8,7 +6,6 @@ GLIBC_2.21 timer_delete F
 GLIBC_2.21 timer_getoverrun F
 GLIBC_2.21 timer_gettime F
 GLIBC_2.21 timer_settime F
-GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __mq_timedsend_time64 F
 GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 4ca163edbf..4b3b448927 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2348,7 +2348,9 @@ GLIBC_2.3.4 mq_close F
 GLIBC_2.3.4 mq_getattr F
 GLIBC_2.3.4 mq_notify F
 GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2446,6 +2448,7 @@ GLIBC_2.34 __lstat64_time64 F
 GLIBC_2.34 __lutimes64 F
 GLIBC_2.34 __mktime64 F
 GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __msgctl64 F
 GLIBC_2.34 __mtx_timedlock64 F
 GLIBC_2.34 __nanosleep64 F
@@ -2537,7 +2540,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
index bb9c1f9659..9d26b1298c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -4,12 +4,9 @@ GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
 GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
-GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 mq_timedsend F
 GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __mq_timedsend_time64 F
 GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index ad4c8c6eb2..b3b90b8136 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2381,7 +2381,9 @@ GLIBC_2.3.4 mq_close F
 GLIBC_2.3.4 mq_getattr F
 GLIBC_2.3.4 mq_notify F
 GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2479,6 +2481,7 @@ GLIBC_2.34 __lstat64_time64 F
 GLIBC_2.34 __lutimes64 F
 GLIBC_2.34 __mktime64 F
 GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __msgctl64 F
 GLIBC_2.34 __mtx_timedlock64 F
 GLIBC_2.34 __nanosleep64 F
@@ -2570,7 +2573,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index dd3459a50a..1720d4da88 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2194,7 +2194,9 @@ GLIBC_2.3.4 mq_close F
 GLIBC_2.3.4 mq_getattr F
 GLIBC_2.3.4 mq_notify F
 GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2306,7 +2308,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
index 11d78aed63..3968e8e7cb 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
@@ -8,9 +8,7 @@ GLIBC_2.3.3 timer_delete F
 GLIBC_2.3.3 timer_getoverrun F
 GLIBC_2.3.3 timer_gettime F
 GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 mq_timedsend F
 GLIBC_2.3.4 mq_unlink F
 GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 10293edbdc..9a7d510295 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1450,7 +1450,9 @@ GLIBC_2.17 mq_close F
 GLIBC_2.17 mq_getattr F
 GLIBC_2.17 mq_notify F
 GLIBC_2.17 mq_open F
+GLIBC_2.17 mq_receive F
 GLIBC_2.17 mq_setattr F
+GLIBC_2.17 mq_timedreceive F
 GLIBC_2.17 mrand48 F
 GLIBC_2.17 mrand48_r F
 GLIBC_2.17 mremap F
@@ -2606,7 +2608,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
index 32327b9d62..1c3c05932e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
@@ -1,6 +1,4 @@
-GLIBC_2.17 mq_receive F
 GLIBC_2.17 mq_send F
-GLIBC_2.17 mq_timedreceive F
 GLIBC_2.17 mq_timedsend F
 GLIBC_2.17 mq_unlink F
 GLIBC_2.17 timer_create F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index eca2d49a2a..80fea20f51 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1295,7 +1295,9 @@ GLIBC_2.33 mq_close F
 GLIBC_2.33 mq_getattr F
 GLIBC_2.33 mq_notify F
 GLIBC_2.33 mq_open F
+GLIBC_2.33 mq_receive F
 GLIBC_2.33 mq_setattr F
+GLIBC_2.33 mq_timedreceive F
 GLIBC_2.33 mrand48 F
 GLIBC_2.33 mrand48_r F
 GLIBC_2.33 mremap F
@@ -2171,7 +2173,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
index 8d0013bd08..02e6e0d513 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
@@ -1,6 +1,4 @@
-GLIBC_2.33 mq_receive F
 GLIBC_2.33 mq_send F
-GLIBC_2.33 mq_timedreceive F
 GLIBC_2.33 mq_timedsend F
 GLIBC_2.33 mq_unlink F
 GLIBC_2.33 timer_create F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 46300e450e..b3ed38d911 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1345,7 +1345,9 @@ GLIBC_2.27 mq_close F
 GLIBC_2.27 mq_getattr F
 GLIBC_2.27 mq_notify F
 GLIBC_2.27 mq_open F
+GLIBC_2.27 mq_receive F
 GLIBC_2.27 mq_setattr F
+GLIBC_2.27 mq_timedreceive F
 GLIBC_2.27 mrand48 F
 GLIBC_2.27 mrand48_r F
 GLIBC_2.27 mremap F
@@ -2371,7 +2373,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
index 19f0d73de7..7cd66b1ff6 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
@@ -1,6 +1,4 @@
-GLIBC_2.27 mq_receive F
 GLIBC_2.27 mq_send F
-GLIBC_2.27 mq_timedreceive F
 GLIBC_2.27 mq_timedsend F
 GLIBC_2.27 mq_unlink F
 GLIBC_2.27 timer_create F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index b80a760c40..d9e415fa6d 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2347,7 +2347,9 @@ GLIBC_2.3.4 mq_close F
 GLIBC_2.3.4 mq_getattr F
 GLIBC_2.3.4 mq_notify F
 GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2444,6 +2446,7 @@ GLIBC_2.34 __lstat64_time64 F
 GLIBC_2.34 __lutimes64 F
 GLIBC_2.34 __mktime64 F
 GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __msgctl64 F
 GLIBC_2.34 __mtx_timedlock64 F
 GLIBC_2.34 __nanosleep64 F
@@ -2535,7 +2538,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
index bb9c1f9659..9d26b1298c 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -4,12 +4,9 @@ GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
 GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
-GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 mq_timedsend F
 GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __mq_timedsend_time64 F
 GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 093f116bc6..dec539716c 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2235,7 +2235,9 @@ GLIBC_2.3.4 mq_close F
 GLIBC_2.3.4 mq_getattr F
 GLIBC_2.3.4 mq_notify F
 GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2343,7 +2345,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
index c6cf36504c..acaafa5f29 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
@@ -8,9 +8,7 @@ GLIBC_2.3.3 timer_delete F
 GLIBC_2.3.3 timer_getoverrun F
 GLIBC_2.3.3 timer_gettime F
 GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 mq_timedsend F
 GLIBC_2.3.4 mq_unlink F
 GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 63ac43ca18..ddc4e08f79 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2214,7 +2214,9 @@ GLIBC_2.3.4 mq_close F
 GLIBC_2.3.4 mq_getattr F
 GLIBC_2.3.4 mq_notify F
 GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2299,6 +2301,7 @@ GLIBC_2.34 __lstat64_time64 F
 GLIBC_2.34 __lutimes64 F
 GLIBC_2.34 __mktime64 F
 GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __msgctl64 F
 GLIBC_2.34 __mtx_timedlock64 F
 GLIBC_2.34 __nanosleep64 F
@@ -2390,7 +2393,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
index bb9c1f9659..9d26b1298c 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -4,12 +4,9 @@ GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
 GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
-GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 mq_timedsend F
 GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __mq_timedsend_time64 F
 GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 483e612001..553574f741 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2214,7 +2214,9 @@ GLIBC_2.3.4 mq_close F
 GLIBC_2.3.4 mq_getattr F
 GLIBC_2.3.4 mq_notify F
 GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2296,6 +2298,7 @@ GLIBC_2.34 __lstat64_time64 F
 GLIBC_2.34 __lutimes64 F
 GLIBC_2.34 __mktime64 F
 GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __msgctl64 F
 GLIBC_2.34 __mtx_timedlock64 F
 GLIBC_2.34 __nanosleep64 F
@@ -2387,7 +2390,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
index bb9c1f9659..9d26b1298c 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -4,12 +4,9 @@ GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
 GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
-GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 mq_timedsend F
 GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __mq_timedsend_time64 F
 GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 9679915508..3e68e78ca2 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2345,7 +2345,9 @@ GLIBC_2.3.4 mq_close F
 GLIBC_2.3.4 mq_getattr F
 GLIBC_2.3.4 mq_notify F
 GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2439,6 +2441,7 @@ GLIBC_2.34 __lstat64_time64 F
 GLIBC_2.34 __lutimes64 F
 GLIBC_2.34 __mktime64 F
 GLIBC_2.34 __mq_open_2 F
+GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __msgctl64 F
 GLIBC_2.34 __mtx_timedlock64 F
 GLIBC_2.34 __nanosleep64 F
@@ -2530,7 +2533,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
index 3d08073063..ca31f9805a 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -5,12 +5,9 @@ GLIBC_2.2 timer_getoverrun F
 GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
 GLIBC_2.3 __librt_version_placeholder F
-GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 mq_timedsend F
 GLIBC_2.3.4 mq_unlink F
-GLIBC_2.34 __mq_timedreceive_time64 F
 GLIBC_2.34 __mq_timedsend_time64 F
 GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 59d1d2beef..5d21d25fb9 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2269,7 +2269,9 @@ GLIBC_2.3.4 mq_close F
 GLIBC_2.3.4 mq_getattr F
 GLIBC_2.3.4 mq_notify F
 GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2365,7 +2367,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index bd9a4111f3..6eae7e9482 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
@@ -10,9 +10,7 @@ GLIBC_2.3.3 timer_delete F
 GLIBC_2.3.3 timer_getoverrun F
 GLIBC_2.3.3 timer_gettime F
 GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 mq_timedsend F
 GLIBC_2.3.4 mq_unlink F
 GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 699ddbb78d..08422b301d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2223,7 +2223,9 @@ GLIBC_2.3.4 mq_close F
 GLIBC_2.3.4 mq_getattr F
 GLIBC_2.3.4 mq_notify F
 GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
@@ -2321,7 +2323,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
index 161a731b3e..f61e3e7428 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
@@ -8,9 +8,7 @@ GLIBC_2.3.3 timer_delete F
 GLIBC_2.3.3 timer_getoverrun F
 GLIBC_2.3.3 timer_gettime F
 GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_receive F
 GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_timedreceive F
 GLIBC_2.3.4 mq_timedsend F
 GLIBC_2.3.4 mq_unlink F
 GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 6e069e92a6..38f4c2105d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1369,7 +1369,9 @@ GLIBC_2.16 mq_close F
 GLIBC_2.16 mq_getattr F
 GLIBC_2.16 mq_notify F
 GLIBC_2.16 mq_open F
+GLIBC_2.16 mq_receive F
 GLIBC_2.16 mq_setattr F
+GLIBC_2.16 mq_timedreceive F
 GLIBC_2.16 mrand48 F
 GLIBC_2.16 mrand48_r F
 GLIBC_2.16 mremap F
@@ -2425,7 +2427,9 @@ GLIBC_2.34 mq_close F
 GLIBC_2.34 mq_getattr F
 GLIBC_2.34 mq_notify F
 GLIBC_2.34 mq_open F
+GLIBC_2.34 mq_receive F
 GLIBC_2.34 mq_setattr F
+GLIBC_2.34 mq_timedreceive F
 GLIBC_2.34 mtx_destroy F
 GLIBC_2.34 mtx_init F
 GLIBC_2.34 mtx_lock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
index 643cd58e36..7e39929d27 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
@@ -1,6 +1,4 @@
-GLIBC_2.16 mq_receive F
 GLIBC_2.16 mq_send F
-GLIBC_2.16 mq_timedreceive F
 GLIBC_2.16 mq_timedsend F
 GLIBC_2.16 mq_unlink F
 GLIBC_2.16 timer_create F
