summaryrefslogtreecommitdiff
path: root/sysdeps/unix
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix')
-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