summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/msgctl.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/msgctl.c')
-rw-r--r--sysdeps/unix/sysv/linux/msgctl.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/sysdeps/unix/sysv/linux/msgctl.c b/sysdeps/unix/sysv/linux/msgctl.c
index c1983c6691..2b2b411af0 100644
--- a/sysdeps/unix/sysv/linux/msgctl.c
+++ b/sysdeps/unix/sysv/linux/msgctl.c
@@ -24,6 +24,7 @@
 #include <sysdep.h>
 #include <string.h>
 #include <sys/syscall.h>
+#include <shlib-compat.h>
 
 #include "kernel-features.h"
 
@@ -46,14 +47,19 @@ struct __old_msqid_ds
 
 /* Allows to control internal state and destruction of message queue
    objects.  */
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
 int __old_msgctl (int, int, struct __old_msqid_ds *);
+#endif
 int __new_msgctl (int, int, struct msqid_ds *);
 
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
 int
 __old_msgctl (int msqid, int cmd, struct __old_msqid_ds *buf)
 {
   return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, msqid, cmd, 0, buf);
 }
+compat_symbol (libc, __old_msgctl, msgctl, GLIBC_2_0);
+#endif
 
 int
 __new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
@@ -120,9 +126,4 @@ __new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
 #endif
 }
 
-#if defined PIC && DO_VERSIONING
-default_symbol_version (__new_msgctl, msgctl, GLIBC_2.2);
-symbol_version (__old_msgctl, msgctl, GLIBC_2.0);
-#else
-weak_alias (__new_msgctl, msgctl);
-#endif
+versioned_symbol (libc, __new_msgctl, msgctl, GLIBC_2_2);