]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Hide internal __ioctl function [BZ #18822]
authorH.J. Lu <hjl.tools@gmail.com>
Sun, 1 Oct 2017 22:58:52 +0000 (15:58 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Sun, 1 Oct 2017 22:59:06 +0000 (15:59 -0700)
Hide internal __ioctl function to allow direct access within libc.so and
libc.a without using GOT nor PLT.

__GI___ioctl is defined when sysdeps/unix/syscalls.list is used to
generate ioctl.  Otherwise libc_hidden_def is needed explicitly.

[BZ #18822]
* include/sys/ioctl.h (__ioctl): Add libc_hidden_proto.
* misc/ioctl.c (__ioctl): Add libc_hidden_def.
* sysdeps/mach/hurd/ioctl.c (__ioctl): Likewise.
* sysdeps/unix/sysv/linux/aarch64/ioctl.S (__ioctl): Likewise.
* sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S (__ioctl):
Likewise.
* sysdeps/unix/sysv/linux/powerpc/ioctl.c (__ioctl): Likewise.
* sysdeps/unix/sysv/linux/tile/tilegx/ioctl.S (__ioctl): Likewise.

ChangeLog
include/sys/ioctl.h
misc/ioctl.c
sysdeps/mach/hurd/ioctl.c
sysdeps/unix/sysv/linux/aarch64/ioctl.S
sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S
sysdeps/unix/sysv/linux/powerpc/ioctl.c
sysdeps/unix/sysv/linux/tile/tilegx/ioctl.S

index 970bc5fdc78318b6ff1d4f0a94fd139e8f0b493a..c302e2617c319d5e16e40b532cf5056b85636093 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+       [BZ #18822]
+       * include/sys/ioctl.h (__ioctl): Add libc_hidden_proto.
+       * misc/ioctl.c (__ioctl): Add libc_hidden_def.
+       * sysdeps/mach/hurd/ioctl.c (__ioctl): Likewise.
+       * sysdeps/unix/sysv/linux/aarch64/ioctl.S (__ioctl): Likewise.
+       * sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S (__ioctl):
+       Likewise.
+       * sysdeps/unix/sysv/linux/powerpc/ioctl.c (__ioctl): Likewise.
+       * sysdeps/unix/sysv/linux/tile/tilegx/ioctl.S (__ioctl): Likewise.
+
 2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
 
        [BZ #18822]
index bfc6909dbce2c0ac224ef4556cc626425cc7f102..dd7c3c7c9cabaa12403c4b987f88eb327f1b9d06 100644 (file)
@@ -5,6 +5,7 @@
 
 /* Now define the internal interfaces.  */
 extern int __ioctl (int __fd, unsigned long int __request, ...);
+libc_hidden_proto (__ioctl)
 
 # endif /* !_ISOMAC */
 #endif
index 9b901025442e811e27c3811250eb29e62fbeb8f4..7e1c8cc4d70d41cf316db1a858e392a12c1c0ead 100644 (file)
@@ -28,4 +28,5 @@ __ioctl (int fd, unsigned long int request, ...)
 }
 stub_warning (ioctl)
 
+libc_hidden_def (__ioctl)
 weak_alias (__ioctl, ioctl)
index 7ce521c4fabe19ed65542304c82319358858c9c4..d6b4583a6f711fa4b3b10e52a3f5d44dd3943d32 100644 (file)
@@ -323,4 +323,5 @@ __ioctl (int fd, unsigned long int request, ...)
     }
 }
 
+libc_hidden_def (__ioctl)
 weak_alias (__ioctl, ioctl)
index 866d6ef12dde3bdfccac68531f1f42a15d29a0be..61b3804e1bab0073f61d8992128147eb158d9b35 100644 (file)
@@ -28,4 +28,5 @@ ENTRY(__ioctl)
        ret
 PSEUDO_END (__ioctl)
 
+libc_hidden_def (__ioctl)
 weak_alias (__ioctl, ioctl)
index ee5d11d240cd54f5edd9ba7f92ea74f082928fa8..54d186666de302768119aba2e99b0c3b9de53557 100644 (file)
@@ -38,4 +38,5 @@ L(error):
 
 PSEUDO_END (__ioctl)
 
+libc_hidden_def (__ioctl)
 weak_alias (__ioctl, ioctl)
index 1437d1dccc71cfcac48366d773c59f143bce8daf..9efccbd2c5b94bbabe9bd89ae31421df7acfbf7b 100644 (file)
@@ -61,4 +61,5 @@ __ioctl (int fd, unsigned long int request, ...)
 
   return result;
 }
+libc_hidden_def (__ioctl)
 weak_alias (__ioctl, ioctl)
index e2bf44c75d031c7dfc12b6430ae7d083bdeb3688..43f956399ea0c7080cdc0228dc110129c971f082 100644 (file)
@@ -38,4 +38,5 @@ ENTRY (__ioctl)
        BNEZ r1, 0f
        jrp lr
 PSEUDO_END (__ioctl)
+libc_hidden_def (__ioctl)
 weak_alias (__ioctl, ioctl)