]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Add sysctl.mk and bits/sysctl.h
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 22 May 2012 20:46:29 +0000 (13:46 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 22 May 2012 20:46:29 +0000 (13:46 -0700)
ChangeLog
sysdeps/unix/sysv/linux/Makefile
sysdeps/unix/sysv/linux/bits/sysctl.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/sys/sysctl.h
sysdeps/unix/sysv/linux/sysctl.mk [new file with mode: 0644]
sysdeps/unix/sysv/linux/x86_64/bits/sysctl.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/x86_64/x32/sysctl.mk [new file with mode: 0644]

index 8206ea4b267401d8892e91a476a8a4ed03313111..f8f2bfac81f3695d8edab2cbdbfcd452f525f936 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2012-05-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * sysdeps/unix/sysv/linux/Makefile: Include
+       $(firstword $(wildcard $(sysdirs:=/sysctl.mk))).
+       (sysdep_routines): Replace sysctl with $(sysctl).
+       * sysdeps/unix/sysv/linux/bits/sysctl.h: New file.
+       * sysdeps/unix/sysv/linux/sysctl.mk: Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/bits/sysctl.h: Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/x32/sysctl.mk: Likewise.
+       * sysdeps/unix/sysv/linux/sys/sysctl.h: Include <bits/sysctl.h>.
+
 2012-05-22  Andreas Jaeger  <aj@suse.de>
 
        * sysdeps/unix/sysv/linux/x86_64/sched_getcpu.S: Rearrange code so
index 120d54428910bfa979ebfd256d5bf6e7c9ee9d04..1011509018ce171da29529238b2fdee6c2c09de9 100644 (file)
@@ -17,7 +17,9 @@ sysdep_routines += internal_accept4 recvmmsg internal_recvmmsg sendmmsg \
 endif
 
 ifeq ($(subdir),misc)
-sysdep_routines += sysctl clone llseek umount umount2 readahead \
+include $(firstword $(wildcard $(sysdirs:=/sysctl.mk)))
+
+sysdep_routines += $(sysctl) clone llseek umount umount2 readahead \
                   setfsuid setfsgid makedev epoll_pwait signalfd \
                   eventfd eventfd_read eventfd_write prlimit
 
diff --git a/sysdeps/unix/sysv/linux/bits/sysctl.h b/sysdeps/unix/sysv/linux/bits/sysctl.h
new file mode 100644 (file)
index 0000000..81447b2
--- /dev/null
@@ -0,0 +1 @@
+/* Empty file.  */
index 2c2d688198337c9caf6ec4b33729dd8422df8d37..cfa71ad27b61d87eadf450d787a07ee67932a24d 100644 (file)
@@ -60,6 +60,8 @@
 # undef __undef__LINUX_COMPILER_H
 #endif
 
+#include <bits/sysctl.h>
+
 __BEGIN_DECLS
 
 /* Read or write system parameters.  */
diff --git a/sysdeps/unix/sysv/linux/sysctl.mk b/sysdeps/unix/sysv/linux/sysctl.mk
new file mode 100644 (file)
index 0000000..79d5998
--- /dev/null
@@ -0,0 +1,3 @@
+# sysctl system call has been deprecated.  It is provided for backward
+# compatility.  New target should override it (see x86_64/x32/sysctl.mk).
+sysctl = sysctl
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/sysctl.h b/sysdeps/unix/sysv/linux/x86_64/bits/sysctl.h
new file mode 100644 (file)
index 0000000..520ccb9
--- /dev/null
@@ -0,0 +1,20 @@
+/* Copyright (C) 2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#if defined __x86_64__ && defined __ILP32__
+# error "sysctl system call is unsupported in x32 kernel"
+#endif
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/sysctl.mk b/sysdeps/unix/sysv/linux/x86_64/x32/sysctl.mk
new file mode 100644 (file)
index 0000000..cdca4ef
--- /dev/null
@@ -0,0 +1,2 @@
+# X32 doesn't support sysctl.
+sysctl =