[48/58] Hide internal __tcgetattr function [BZ #18822]

Message ID 20170901180029.9527-49-hjl.tools@gmail.com
State Committed
Commit 87078544f24cfbd355bf2f7e63a0d01ff7c96cca
Headers

Commit Message

H.J. Lu Sept. 1, 2017, 6 p.m. UTC
  Hide internal __tcgetattr function to allow direct access within libc.so
and libc.a without using GOT nor PLT.

	[BZ #18822]
	* include/termios.h (__tcgetattr): Add libc_hidden_proto.
	* sysdeps/unix/bsd/tcgetattr.c (__tcgetattr): Add
	libc_hidden_def.
	* sysdeps/unix/sysv/linux/tcgetattr.c (__tcgetattr): Likewise.
	* termios/tcgetattr.c (__tcgetattr): Likewise.
---
 include/termios.h                   | 1 +
 sysdeps/unix/bsd/tcgetattr.c        | 1 +
 sysdeps/unix/sysv/linux/tcgetattr.c | 1 +
 termios/tcgetattr.c                 | 1 +
 4 files changed, 4 insertions(+)
  

Comments

H.J. Lu Oct. 2, 2017, 12:47 a.m. UTC | #1
On 9/1/17, H.J. Lu <hjl.tools@gmail.com> wrote:
> Hide internal __tcgetattr function to allow direct access within libc.so
> and libc.a without using GOT nor PLT.
>
> 	[BZ #18822]
> 	* include/termios.h (__tcgetattr): Add libc_hidden_proto.
> 	* sysdeps/unix/bsd/tcgetattr.c (__tcgetattr): Add
> 	libc_hidden_def.
> 	* sysdeps/unix/sysv/linux/tcgetattr.c (__tcgetattr): Likewise.
> 	* termios/tcgetattr.c (__tcgetattr): Likewise.
>

Tested with build-many-glibcs.py.  I am checking it in.
  

Patch

diff --git a/include/termios.h b/include/termios.h
index 1a36e226b8..e2c35ebbae 100644
--- a/include/termios.h
+++ b/include/termios.h
@@ -9,6 +9,7 @@  extern int __tcsetattr (int __fd, int __optional_actions,
 
 extern int __libc_tcdrain (int __fd);
 
+libc_hidden_proto (__tcgetattr)
 libc_hidden_proto (tcsetattr)
 libc_hidden_proto (cfsetispeed)
 libc_hidden_proto (cfsetospeed)
diff --git a/sysdeps/unix/bsd/tcgetattr.c b/sysdeps/unix/bsd/tcgetattr.c
index 1779bb9342..654f1e6407 100644
--- a/sysdeps/unix/bsd/tcgetattr.c
+++ b/sysdeps/unix/bsd/tcgetattr.c
@@ -35,4 +35,5 @@  __tcgetattr (int fd, struct termios *termios_p)
   return __ioctl (fd, TIOCGETA, termios_p);
 }
 
+libc_hidden_def (__tcgetattr)
 weak_alias (__tcgetattr, tcgetattr)
diff --git a/sysdeps/unix/sysv/linux/tcgetattr.c b/sysdeps/unix/sysv/linux/tcgetattr.c
index b1d73d042a..99a59b6cd9 100644
--- a/sysdeps/unix/sysv/linux/tcgetattr.c
+++ b/sysdeps/unix/sysv/linux/tcgetattr.c
@@ -76,4 +76,5 @@  __tcgetattr (int fd, struct termios *termios_p)
   return retval;
 }
 
+libc_hidden_def (__tcgetattr)
 weak_alias (__tcgetattr, tcgetattr)
diff --git a/termios/tcgetattr.c b/termios/tcgetattr.c
index a5c076b1b0..12a56dd30f 100644
--- a/termios/tcgetattr.c
+++ b/termios/tcgetattr.c
@@ -39,4 +39,5 @@  __tcgetattr (int fd, struct termios *termios_p)
 }
 stub_warning (tcgetattr)
 
+libc_hidden_def (__tcgetattr)
 weak_alias (__tcgetattr, tcgetattr)