[24/58] Hide __chmod and __mkdir [BZ #18822]
Commit Message
Hide internal __chmod and __mkdir functions to allow direct access
within libc.so and libc.a without using GOT nor PLT.
[BZ #18822]
* include/sys/stat.h (__chmod): Add libc_hidden_proto.
(__mkdir): Likewise.
* io/chmod.c (__chmod): Add libc_hidden_def.
* io/mkdir.c (__mkdir): Likewise.
* sysdeps/mach/hurd/chmod.c (__chmod): Likewise.
* sysdeps/mach/hurd/mkdir.c (__mkdir): Likewise.
* sysdeps/unix/sysv/linux/generic/chmod.c (__chmod): Likewise.
* sysdeps/unix/sysv/linux/generic/mkdir.c (__mkdir): Likewise.
---
include/sys/stat.h | 2 ++
io/chmod.c | 1 +
io/mkdir.c | 1 +
sysdeps/mach/hurd/chmod.c | 1 +
sysdeps/mach/hurd/mkdir.c | 1 +
sysdeps/unix/sysv/linux/generic/chmod.c | 2 ++
sysdeps/unix/sysv/linux/generic/mkdir.c | 2 ++
7 files changed, 10 insertions(+)
Comments
On 09/01/2017 07:59 PM, H.J. Lu wrote:
> Hide internal __chmod and __mkdir functions to allow direct access
> within libc.so and libc.a without using GOT nor PLT.
>
> [BZ #18822]
> * include/sys/stat.h (__chmod): Add libc_hidden_proto.
> (__mkdir): Likewise.
> * io/chmod.c (__chmod): Add libc_hidden_def.
> * io/mkdir.c (__mkdir): Likewise.
> * sysdeps/mach/hurd/chmod.c (__chmod): Likewise.
> * sysdeps/mach/hurd/mkdir.c (__mkdir): Likewise.
> * sysdeps/unix/sysv/linux/generic/chmod.c (__chmod): Likewise.
> * sysdeps/unix/sysv/linux/generic/mkdir.c (__mkdir): Likewise.
Looks good to me.
Thanks,
Florian
@@ -7,9 +7,11 @@ extern int __stat (const char *__file, struct stat *__buf);
extern int __fstat (int __fd, struct stat *__buf);
extern int __lstat (const char *__file, struct stat *__buf);
extern int __chmod (const char *__file, __mode_t __mode);
+libc_hidden_proto (__chmod)
extern int __fchmod (int __fd, __mode_t __mode);
extern __mode_t __umask (__mode_t __mask);
extern int __mkdir (const char *__path, __mode_t __mode);
+libc_hidden_proto (__mkdir)
extern int __mknod (const char *__path,
__mode_t __mode, __dev_t __dev);
#if IS_IN (libc) || IS_IN (rtld)
@@ -35,4 +35,5 @@ __chmod (const char *file, mode_t mode)
}
stub_warning (chmod)
+libc_hidden_def (__chmod)
weak_alias (__chmod, chmod)
@@ -36,4 +36,5 @@ __mkdir (const char *path, mode_t mode)
}
stub_warning (mkdir)
+libc_hidden_def (__mkdir)
weak_alias (__mkdir, mkdir)
@@ -35,4 +35,5 @@ __chmod (const char *file, mode_t mode)
return 0;
}
+libc_hidden_def (__chmod)
weak_alias (__chmod, chmod)
@@ -40,4 +40,5 @@ __mkdir (const char *file_name, mode_t mode)
return 0;
}
+libc_hidden_def (__mkdir)
weak_alias (__mkdir, mkdir)
@@ -28,4 +28,6 @@ __chmod (const char *file, mode_t mode)
{
return INLINE_SYSCALL (fchmodat, 3, AT_FDCWD, file, mode);
}
+
+libc_hidden_def (__chmod)
weak_alias (__chmod, chmod)
@@ -30,4 +30,6 @@ __mkdir (const char *path, mode_t mode)
{
return INLINE_SYSCALL (mkdirat, 3, AT_FDCWD, path, mode);
}
+
+libc_hidden_def (__mkdir)
weak_alias (__mkdir, mkdir)