mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-28 00:21:52 +03:00
Linux: Remove <sys/sysctl.h> and the sysctl function
Linux 5.5 remove the system call in commit 61a47c1ad3a4dc6882f01ebdc88138ac62d0df03 ("Linux: Remove <sys/sysctl.h>"). Therefore, the compat function is just a stub that sets ENOSYS. Due to SHLIB_COMPAT, new ports will not add the sysctl function anymore automatically. x32 already lacks the sysctl function, so an empty sysctl.c file is used to suppress it. Otherwise, a new compat symbol would be added. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
/* Read or write system information. Linux version.
|
||||
/* sysctl function stub.
|
||||
Copyright (C) 1996-2020 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
@ -17,25 +17,20 @@
|
||||
<https://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <errno.h>
|
||||
#include <linux/sysctl.h>
|
||||
#include <shlib-compat.h>
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
|
||||
int
|
||||
__sysctl (int *name, int nlen, void *oldval, size_t *oldlenp,
|
||||
void *newval, size_t newlen)
|
||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_32)
|
||||
int attribute_compat_text_section
|
||||
___sysctl (int *name, int nlen, void *oldval, size_t *oldlenp,
|
||||
void *newval, size_t newlen)
|
||||
{
|
||||
struct __sysctl_args args =
|
||||
{
|
||||
.name = name,
|
||||
.nlen = nlen,
|
||||
.oldval = oldval,
|
||||
.oldlenp = oldlenp,
|
||||
.newval = newval,
|
||||
.newlen = newlen
|
||||
};
|
||||
|
||||
return INLINE_SYSCALL (_sysctl, 1, &args);
|
||||
__set_errno (ENOSYS);
|
||||
return -1;
|
||||
}
|
||||
weak_alias (__sysctl, sysctl)
|
||||
compat_symbol (libc, ___sysctl, sysctl, GLIBC_2_0);
|
||||
|
||||
# if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17)
|
||||
strong_alias (___sysctl, ___sysctl2)
|
||||
compat_symbol (libc, ___sysctl2, __sysctl, GLIBC_2_2);
|
||||
# endif
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user