From ef9b6f73f45a46d079018f63e2d9184eaa0db1d5 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Sun, 1 Oct 2017 14:33:26 -0700 Subject: [PATCH] Mark 3 *_internal functions with attribute_hidden [BZ #18822] Mark __ptsname_internal, __mktime_internal and __fopen_internal with attribute_hidden to allow direct access to them within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * include/stdlib.h (__ptsname_internal): Add attribute_hidden. * include/time.h (__mktime_internal): Likewise. * libio/iolibio.h (__fopen_internal): Likewise. --- ChangeLog | 7 +++++++ include/stdlib.h | 2 +- include/time.h | 2 +- libio/iolibio.h | 3 ++- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 593ac8395a..b011e83b93 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2017-10-01 H.J. Lu + + [BZ #18822] + * include/stdlib.h (__ptsname_internal): Add attribute_hidden. + * include/time.h (__mktime_internal): Likewise. + * libio/iolibio.h (__fopen_internal): Likewise. + 2017-10-01 John David Anglin * sysdeps/unix/sysv/linux/hppa/getcontext.S (__getcontext): Save return diff --git a/include/stdlib.h b/include/stdlib.h index c4a6e6f737..2274790a2e 100644 --- a/include/stdlib.h +++ b/include/stdlib.h @@ -78,7 +78,7 @@ extern char *__realpath (const char *__name, char *__resolved); extern int __ptsname_r (int __fd, char *__buf, size_t __buflen); # ifndef _ISOMAC extern int __ptsname_internal (int fd, char *buf, size_t buflen, - struct stat64 *stp); + struct stat64 *stp) attribute_hidden; # endif extern int __getpt (void); extern int __posix_openpt (int __oflag); diff --git a/include/time.h b/include/time.h index 324913214f..870b7eb93c 100644 --- a/include/time.h +++ b/include/time.h @@ -54,7 +54,7 @@ extern void __tz_compute (time_t timer, struct tm *tm, int use_localtime) extern time_t __mktime_internal (struct tm *__tp, struct tm *(*__func) (const time_t *, struct tm *), - time_t *__offset); + time_t *__offset) attribute_hidden; extern struct tm *__localtime_r (const time_t *__timer, struct tm *__tp) attribute_hidden; diff --git a/libio/iolibio.h b/libio/iolibio.h index f215fcef01..754d8b0650 100644 --- a/libio/iolibio.h +++ b/libio/iolibio.h @@ -23,7 +23,8 @@ extern _IO_FILE *_IO_fopen (const char*, const char*); extern _IO_FILE *_IO_old_fopen (const char*, const char*); extern _IO_FILE *_IO_new_fopen (const char*, const char*); extern _IO_FILE *_IO_fopen64 (const char*, const char*); -extern _IO_FILE *__fopen_internal (const char*, const char*, int); +extern _IO_FILE *__fopen_internal (const char*, const char*, int) + attribute_hidden; extern _IO_FILE *__fopen_maybe_mmap (_IO_FILE *) __THROW; extern int _IO_fprintf (_IO_FILE*, const char*, ...); extern int _IO_fputs (const char*, _IO_FILE*); -- 2.11.4.GIT