diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/shmctl.c')
-rw-r--r-- | sysdeps/unix/sysv/linux/shmctl.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/sysdeps/unix/sysv/linux/shmctl.c b/sysdeps/unix/sysv/linux/shmctl.c index 4e76794eff..7514f2a689 100644 --- a/sysdeps/unix/sysv/linux/shmctl.c +++ b/sysdeps/unix/sysv/linux/shmctl.c @@ -25,9 +25,11 @@ #include <string.h> #include <sys/syscall.h> #include <bits/wordsize.h> +#include <shlib-compat.h> #include "kernel-features.h" +#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2) struct __old_shmid_ds { struct __old_ipc_perm shm_perm; /* operation permission struct */ @@ -54,13 +56,17 @@ struct __old_shminfo /* Provide operations to control over shared memory segments. */ int __old_shmctl (int, int, struct __old_shmid_ds *); +#endif int __new_shmctl (int, int, struct shmid_ds *); +#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2) int __old_shmctl (int shmid, int cmd, struct __old_shmid_ds *buf) { return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0, buf); } +compat_symbol (libc, __old_shmctl, shmctl, GLIBC_2_0); +#endif int __new_shmctl (int shmid, int cmd, struct shmid_ds *buf) @@ -141,9 +147,4 @@ __new_shmctl (int shmid, int cmd, struct shmid_ds *buf) #endif } -#if defined PIC && DO_VERSIONING -default_symbol_version (__new_shmctl, shmctl, GLIBC_2.2); -symbol_version (__old_shmctl, shmctl, GLIBC_2.0); -#else -weak_alias (__new_shmctl, shmctl); -#endif +versioned_symbol (libc, __new_shmctl, shmctl, GLIBC_2_2); |