diff options
Diffstat (limited to 'sysdeps/unix/sysv')
-rw-r--r-- | sysdeps/unix/sysv/linux/arm/umount.c | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/generic/umount.c | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/glob-lstat-compat.c | 21 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/glob64-lstat-compat.c | 10 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/ia64/syscalls.list | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/mips/mips64/umount.c | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/umount2.S | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/compat-timer.h | 10 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/timer_create.c | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/timer_delete.c | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/timer_gettime.c | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/timer_settime.c | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/umount.c | 4 | ||||
-rw-r--r-- | sysdeps/unix/sysv/mount-internal.h | 26 |
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 |