about summary refs log tree commit diff
path: root/sysdeps/unix/sysv
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv')
-rw-r--r--sysdeps/unix/sysv/linux/arm/umount.c2
-rw-r--r--sysdeps/unix/sysv/linux/generic/umount.c2
-rw-r--r--sysdeps/unix/sysv/linux/glob-lstat-compat.c21
-rw-r--r--sysdeps/unix/sysv/linux/glob64-lstat-compat.c10
-rw-r--r--sysdeps/unix/sysv/linux/ia64/syscalls.list2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/umount.c2
-rw-r--r--sysdeps/unix/sysv/linux/umount2.S1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/compat-timer.h10
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/timer_create.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/timer_delete.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/timer_gettime.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/timer_settime.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/umount.c4
-rw-r--r--sysdeps/unix/sysv/mount-internal.h26
15 files changed, 69 insertions, 16 deletions
diff --git a/sysdeps/unix/sysv/linux/arm/umount.c b/sysdeps/unix/sysv/linux/arm/umount.c
index 87997e029f..fcf3a51fc1 100644
--- a/sysdeps/unix/sysv/linux/arm/umount.c
+++ b/sysdeps/unix/sysv/linux/arm/umount.c
@@ -19,7 +19,7 @@
 /* Since we don't have an oldumount system call, do what the kernel
    does down here.  */
 
-extern long int __umount2 (const char *name, int flags);
+#include <mount-internal.h>
 
 long int
 __umount (const char *name)
diff --git a/sysdeps/unix/sysv/linux/generic/umount.c b/sysdeps/unix/sysv/linux/generic/umount.c
index 1c8bea55e0..d64272c6bb 100644
--- a/sysdeps/unix/sysv/linux/generic/umount.c
+++ b/sysdeps/unix/sysv/linux/generic/umount.c
@@ -19,7 +19,7 @@
 /* Since the generic Linux syscall ABI doesn't have an oldumount system call,
    do what the kernel does down here.  */
 
-extern long int __umount2 (const char *name, int flags);
+#include <mount-internal.h>
 
 long int
 __umount (const char *name)
diff --git a/sysdeps/unix/sysv/linux/glob-lstat-compat.c b/sysdeps/unix/sysv/linux/glob-lstat-compat.c
index 64dab9af52..e5a534027f 100644
--- a/sysdeps/unix/sysv/linux/glob-lstat-compat.c
+++ b/sysdeps/unix/sysv/linux/glob-lstat-compat.c
@@ -21,9 +21,23 @@
 #include <kernel_stat.h>
 #include <shlib-compat.h>
 
+#ifndef GLOB_LSTAT_VERSION
+# define GLOB_LSTAT_VERSION GLIBC_2_0
+#endif
+
+#if SHLIB_COMPAT(libc, GLOB_LSTAT_VERSION, GLIBC_2_27)
+
+#if XSTAT_IS_XSTAT64
 #define glob64 __no_glob64_decl
+#define __glob64 __no___glob64_decl
+#define __glob64_lstat_compat __no_glob64_lstat_compat_decl
+#endif
+
 #include <glob.h>
+
 #undef glob64
+#undef __glob64
+#undef __glob64_lstat_compat
 
 #define __glob __glob_lstat_compat
 
@@ -33,12 +47,7 @@
 #define GLOB_NO_LSTAT
 
 #include <posix/glob.c>
-
-#ifndef GLOB_LSTAT_VERSION
-# define GLOB_LSTAT_VERSION GLIBC_2_0
-#endif
-
-#if SHLIB_COMPAT(libc, GLOB_LSTAT_VERSION, GLIBC_2_27)
+libc_hidden_def (__glob_lstat_compat)
 compat_symbol (libc, __glob_lstat_compat, glob, GLOB_LSTAT_VERSION);
 # if XSTAT_IS_XSTAT64
 strong_alias (__glob_lstat_compat, __glob64_lstat_compat)
diff --git a/sysdeps/unix/sysv/linux/glob64-lstat-compat.c b/sysdeps/unix/sysv/linux/glob64-lstat-compat.c
index 4475e0091c..66334e7009 100644
--- a/sysdeps/unix/sysv/linux/glob64-lstat-compat.c
+++ b/sysdeps/unix/sysv/linux/glob64-lstat-compat.c
@@ -21,6 +21,8 @@
 #include <kernel_stat.h>
 
 #if !XSTAT_IS_XSTAT64
+# if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_27)
+
 # include <glob.h>
 # include <dirent.h>
 # include <sys/stat.h>
@@ -45,12 +47,14 @@
 
 # include <posix/glob.c>
 
-# if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_27)
+libc_hidden_def (__glob64_lstat_compat)
+
 #  ifndef GLOB_NO_OLD_VERSION
 #   define GLOB_LSTAT_START_VER GLIBC_2_2
 #  else
 #   define GLOB_LSTAT_START_VER GLIBC_2_1
 #  endif
 compat_symbol (libc, __glob64_lstat_compat, glob64, GLOB_LSTAT_START_VER);
-# endif
-#endif /* XSTAT_IS_XSTAT64  */
+
+# endif /* SHLIB_COMPAT */
+#endif /* XSTAT_IS_XSTAT64 */
diff --git a/sysdeps/unix/sysv/linux/ia64/syscalls.list b/sysdeps/unix/sysv/linux/ia64/syscalls.list
index 56f4138c43..bd39441d3c 100644
--- a/sysdeps/unix/sysv/linux/ia64/syscalls.list
+++ b/sysdeps/unix/sysv/linux/ia64/syscalls.list
@@ -1,7 +1,5 @@
 # File name	Caller	Syscall name	# args	Strong name	Weak names
 
-umount2		-	umount		2	__umount2	umount2
-
 getpriority	-	getpriority	i:ii	__getpriority	getpriority
 
 # proper socket implementations:
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/umount.c b/sysdeps/unix/sysv/linux/mips/mips64/umount.c
index 87997e029f..fcf3a51fc1 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/umount.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/umount.c
@@ -19,7 +19,7 @@
 /* Since we don't have an oldumount system call, do what the kernel
    does down here.  */
 
-extern long int __umount2 (const char *name, int flags);
+#include <mount-internal.h>
 
 long int
 __umount (const char *name)
diff --git a/sysdeps/unix/sysv/linux/umount2.S b/sysdeps/unix/sysv/linux/umount2.S
index 92241bbf97..2f14095a17 100644
--- a/sysdeps/unix/sysv/linux/umount2.S
+++ b/sysdeps/unix/sysv/linux/umount2.S
@@ -9,5 +9,6 @@ PSEUDO (__umount2, umount2, 2)
 #endif
 	ret
 PSEUDO_END(__umount2)
+libc_hidden_def (__umount2)
 weak_alias (__umount2, umount2)
 #endif
diff --git a/sysdeps/unix/sysv/linux/x86_64/compat-timer.h b/sysdeps/unix/sysv/linux/x86_64/compat-timer.h
index ba4f0b39da..21dc48de24 100644
--- a/sysdeps/unix/sysv/linux/x86_64/compat-timer.h
+++ b/sysdeps/unix/sysv/linux/x86_64/compat-timer.h
@@ -16,6 +16,9 @@
    License along with the GNU C Library; see the file COPYING.LIB.  If
    not, see <http://www.gnu.org/licenses/>.  */
 
+#ifndef _COMPAT_TIMER_H
+#define _COMPAT_TIMER_H 1
+
 #include <signal.h>
 #include <time.h>
 #include <sys/types.h>
@@ -27,12 +30,17 @@ extern timer_t __compat_timer_list[OLD_TIMER_MAX] attribute_hidden;
 
 extern int __timer_create_new (clockid_t clock_id, struct sigevent *evp,
 			       timer_t *timerid);
+librt_hidden_proto (__timer_create_new)
 extern int __timer_delete_new (timer_t timerid);
+librt_hidden_proto (__timer_delete_new)
 extern int __timer_getoverrun_new (timer_t timerid);
+librt_hidden_proto (__timer_getoverrun_new)
 extern int __timer_gettime_new (timer_t timerid, struct itimerspec *value);
+librt_hidden_proto (__timer_gettime_new)
 extern int __timer_settime_new (timer_t timerid, int flags,
 				const struct itimerspec *value,
 				struct itimerspec *ovalue);
+librt_hidden_proto (__timer_settime_new)
 
 
 extern int __timer_create_old (clockid_t clock_id, struct sigevent *evp,
@@ -43,3 +51,5 @@ extern int __timer_gettime_old (int timerid, struct itimerspec *value);
 extern int __timer_settime_old (int timerid, int flags,
 				const struct itimerspec *value,
 				struct itimerspec *ovalue);
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_create.c b/sysdeps/unix/sysv/linux/x86_64/timer_create.c
index b96b2b49d3..2676b22fe7 100644
--- a/sysdeps/unix/sysv/linux/x86_64/timer_create.c
+++ b/sysdeps/unix/sysv/linux/x86_64/timer_create.c
@@ -25,6 +25,7 @@
 #include <sysdeps/unix/sysv/linux/timer_create.c>
 
 #undef timer_create
+librt_hidden_def (__timer_create_new)
 versioned_symbol (librt, __timer_create_new, timer_create, GLIBC_2_3_3);
 
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_delete.c b/sysdeps/unix/sysv/linux/x86_64/timer_delete.c
index f0fc3a4a78..1c291ff22f 100644
--- a/sysdeps/unix/sysv/linux/x86_64/timer_delete.c
+++ b/sysdeps/unix/sysv/linux/x86_64/timer_delete.c
@@ -24,6 +24,7 @@
 #include <sysdeps/unix/sysv/linux/timer_delete.c>
 
 #undef timer_delete
+librt_hidden_def (__timer_delete_new)
 versioned_symbol (librt, __timer_delete_new, timer_delete, GLIBC_2_3_3);
 
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c b/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c
index b027f56df3..46b8f6eb35 100644
--- a/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c
+++ b/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c
@@ -24,6 +24,7 @@
 #include <sysdeps/unix/sysv/linux/timer_getoverr.c>
 
 #undef timer_getoverrun
+librt_hidden_def (__timer_getoverrun_new)
 versioned_symbol (librt, __timer_getoverrun_new, timer_getoverrun,
 		  GLIBC_2_3_3);
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c b/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c
index 7730bc9447..7e8ec053e9 100644
--- a/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c
+++ b/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c
@@ -24,6 +24,7 @@
 #include <sysdeps/unix/sysv/linux/timer_gettime.c>
 
 #undef timer_gettime
+librt_hidden_def (__timer_gettime_new)
 versioned_symbol (librt, __timer_gettime_new, timer_gettime, GLIBC_2_3_3);
 
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_settime.c b/sysdeps/unix/sysv/linux/x86_64/timer_settime.c
index 26178a8020..489580e318 100644
--- a/sysdeps/unix/sysv/linux/x86_64/timer_settime.c
+++ b/sysdeps/unix/sysv/linux/x86_64/timer_settime.c
@@ -24,6 +24,7 @@
 #include <sysdeps/unix/sysv/linux/timer_settime.c>
 
 #undef timer_settime
+librt_hidden_def (__timer_settime_new)
 versioned_symbol (librt, __timer_settime_new, timer_settime, GLIBC_2_3_3);
 
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/umount.c b/sysdeps/unix/sysv/linux/x86_64/umount.c
index 9030774776..235fe1c105 100644
--- a/sysdeps/unix/sysv/linux/x86_64/umount.c
+++ b/sysdeps/unix/sysv/linux/x86_64/umount.c
@@ -19,9 +19,9 @@
 /* Since we don't have an oldumount system call, do what the kernel
    does down here.  */
 
-extern long int __umount2 (const char *name, int flags);
+#include <mount-internal.h>
 
-long int
+int
 __umount (const char *name)
 {
   return __umount2 (name, 0);
diff --git a/sysdeps/unix/sysv/mount-internal.h b/sysdeps/unix/sysv/mount-internal.h
new file mode 100644
index 0000000000..7f8e42a337
--- /dev/null
+++ b/sysdeps/unix/sysv/mount-internal.h
@@ -0,0 +1,26 @@
+/* Copyright (C) 2011-2018 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/>.  */
+
+#ifndef _MOUNT_INTERNAL_H
+#define _MOUNT_INTERNAL_H 1
+
+#include <sys/mount.h>
+
+extern typeof (umount2) __umount2;
+libc_hidden_proto (__umount2);
+
+#endif