From patchwork Fri Aug 18 13:02:08 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "H.J. Lu" X-Patchwork-Id: 22215 Received: (qmail 84510 invoked by alias); 18 Aug 2017 13:02:14 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 83908 invoked by uid 89); 18 Aug 2017 13:02:13 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.4 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, RCVD_IN_SORBS_SPAM, SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: mail-pg0-f67.google.com X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:subject:message-id:mime-version :content-disposition:user-agent; bh=ihOwMJ0MtjXZA2CDIoRybLhGb3IpjbskowEyqBaFiRg=; b=BYwKKr1nCZtEDDwbdB0RMqit1OAIdja+LNJPuJOYdEb0f5AC60H5/C4meBVBpez0Xs BN4i2b1SgYp/4Tp92ykFQOcgI7ncK4XKGal2osjZFkHrAhUqEuatxWmofUH2ihWUIar4 Uob6lEuvuD0NNXCoHcUGd09PnlODirIZmpJQe0lIkMPmP8JLH1J8JPVRQkUq+0t9MqvT E2NPfUcz8Dag9bGvUUao9BQFHBiRZsfLoLKAur7zNp4WsI9NHxMllcsE4FS0WspjMYxO 8DfimXfYKPBwo+zhGOkuC7H36LeFAQsCjJRveEDzPP9pHojvFlXfk6H4DAaB2YAKtBcX 0hcA== X-Gm-Message-State: AHYfb5iVKbbFB0nbtTeVNxeiK/EvVhfhMV9L0ZvO2jp6y7X6WfKbyByt Iwj7Hdko8uqUzR+F X-Received: by 10.84.198.129 with SMTP id p1mr9576720pld.120.1503061329480; Fri, 18 Aug 2017 06:02:09 -0700 (PDT) Date: Fri, 18 Aug 2017 06:02:08 -0700 From: "H.J. Lu" To: GNU C Library Subject: [PATCH 2/2] Mark internal unistd.h functions with attribute_hidden [BZ #18822] Message-ID: <20170818130208.GB4463@gmail.com> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.8.3 (2017-05-23) Mark internal unistd.h functions with attribute_hidden to allow direct access to them within libc.so and libc.a without using GOT nor PLT. OK for master? H.J. --- [BZ #18822] * include/unistd.h (__access): Add attribute_hidden. (__lseek64): Likewise. (__libc_pread64): Likewise. (__pipe2): Likewise. (__sleep): Likewise. (__chdir): Likewise. (__fchdir): Likewise. (__getcwd): Likewise. (__rmdir): Likewise. (__execvpe): Likewise. (__execve): Likewise. (__setsid): Likewise. (__getuid): Likewise. (__geteuid): Likewise. (__getgid): Likewise. (__getegid): Likewise. (__getgroups): Likewise. (__group_member): Likewise. (__ttyname_r): Likewise. (__isatty): Likewise. (__readlink): Likewise. (__unlink): Likewise. (__gethostname): Likewise. (__profil): Likewise. (__getdtablesize): Likewise. (__brk): Likewise. (__ftruncate): Likewise. (__ftruncate64): Likewise. --- include/unistd.h | 60 ++++++++++++++++++++++++++++++-------------------------- 1 file changed, 32 insertions(+), 28 deletions(-) diff --git a/include/unistd.h b/include/unistd.h index 7f1c2ccd4b..6fffbcd0a0 100644 --- a/include/unistd.h +++ b/include/unistd.h @@ -23,9 +23,10 @@ libc_hidden_proto (tcgetpgrp) libc_hidden_proto (readlinkat) /* Now define the internal interfaces. */ -extern int __access (const char *__name, int __type); +extern int __access (const char *__name, int __type) attribute_hidden; extern int __euidaccess (const char *__name, int __type); -extern __off64_t __lseek64 (int __fd, __off64_t __offset, int __whence); +extern __off64_t __lseek64 (int __fd, __off64_t __offset, int __whence) + attribute_hidden; extern __off_t __lseek (int __fd, __off_t __offset, int __whence); libc_hidden_proto (__lseek) extern __off_t __libc_lseek (int __fd, __off_t __offset, int __whence); @@ -39,7 +40,7 @@ extern ssize_t __pread64 (int __fd, void *__buf, size_t __nbytes, __off64_t __offset); libc_hidden_proto (__pread64); extern ssize_t __libc_pread64 (int __fd, void *__buf, size_t __nbytes, - __off64_t __offset); + __off64_t __offset) attribute_hidden; extern ssize_t __pwrite (int __fd, const void *__buf, size_t __n, __off_t __offset); libc_hidden_proto (__pwrite) @@ -58,8 +59,8 @@ libc_hidden_proto (__libc_write) libc_hidden_proto (write) extern int __pipe (int __pipedes[2]); libc_hidden_proto (__pipe) -extern int __pipe2 (int __pipedes[2], int __flags); -extern unsigned int __sleep (unsigned int __seconds); +extern int __pipe2 (int __pipedes[2], int __flags) attribute_hidden; +extern unsigned int __sleep (unsigned int __seconds) attribute_hidden; extern int __chown (const char *__file, __uid_t __owner, __gid_t __group); libc_hidden_proto (__chown) @@ -67,12 +68,12 @@ extern int __fchown (int __fd, __uid_t __owner, __gid_t __group); extern int __lchown (const char *__file, __uid_t __owner, __gid_t __group); -extern int __chdir (const char *__path); -extern int __fchdir (int __fd); -extern char *__getcwd (char *__buf, size_t __size); -extern int __rmdir (const char *__path); +extern int __chdir (const char *__path) attribute_hidden; +extern int __fchdir (int __fd) attribute_hidden; +extern char *__getcwd (char *__buf, size_t __size) attribute_hidden; +extern int __rmdir (const char *__path) attribute_hidden; extern int __execvpe (const char *file, char *const argv[], - char *const envp[]); + char *const envp[]) attribute_hidden; /* Get the canonical absolute name of the named directory, and put it in SIZE bytes of BUF. Returns NULL if the directory couldn't be determined or @@ -91,7 +92,7 @@ libc_hidden_proto (__dup2) extern int __dup3 (int __fd, int __fd2, int flags); libc_hidden_proto (__dup3) extern int __execve (const char *__path, char *const __argv[], - char *const __envp[]); + char *const __envp[]) attribute_hidden; extern long int __pathconf (const char *__path, int __name); extern long int __fpathconf (int __fd, int __name); extern long int __sysconf (int __name); @@ -99,14 +100,14 @@ libc_hidden_proto (__sysconf) extern __pid_t __getpid (void); libc_hidden_proto (__getpid) extern __pid_t __getppid (void); -extern __pid_t __setsid (void); -extern __uid_t __getuid (void); -extern __uid_t __geteuid (void); -extern __gid_t __getgid (void); -extern __gid_t __getegid (void); -extern int __getgroups (int __size, __gid_t __list[]); +extern __pid_t __setsid (void) attribute_hidden; +extern __uid_t __getuid (void) attribute_hidden; +extern __uid_t __geteuid (void) attribute_hidden; +extern __gid_t __getgid (void) attribute_hidden; +extern __gid_t __getegid (void) attribute_hidden; +extern int __getgroups (int __size, __gid_t __list[]) attribute_hidden; libc_hidden_proto (__getpgid) -extern int __group_member (__gid_t __gid); +extern int __group_member (__gid_t __gid) attribute_hidden; extern int __setuid (__uid_t __uid); extern int __setreuid (__uid_t __ruid, __uid_t __euid); extern int __setgid (__gid_t __gid); @@ -123,17 +124,20 @@ libc_hidden_proto (__setresuid) libc_hidden_proto (__setresgid) extern __pid_t __vfork (void); libc_hidden_proto (__vfork) -extern int __ttyname_r (int __fd, char *__buf, size_t __buflen); -extern int __isatty (int __fd); +extern int __ttyname_r (int __fd, char *__buf, size_t __buflen) + attribute_hidden; +extern int __isatty (int __fd) attribute_hidden; extern int __link (const char *__from, const char *__to); extern int __symlink (const char *__from, const char *__to); -extern ssize_t __readlink (const char *__path, char *__buf, size_t __len); -extern int __unlink (const char *__name); -extern int __gethostname (char *__name, size_t __len); +extern ssize_t __readlink (const char *__path, char *__buf, size_t __len) + attribute_hidden; +extern int __unlink (const char *__name) attribute_hidden; +extern int __gethostname (char *__name, size_t __len) attribute_hidden; extern int __profil (unsigned short int *__sample_buffer, size_t __size, - size_t __offset, unsigned int __scale); -extern int __getdtablesize (void); -extern int __brk (void *__addr); + size_t __offset, unsigned int __scale) + attribute_hidden; +extern int __getdtablesize (void) attribute_hidden; +extern int __brk (void *__addr) attribute_hidden; extern int __close (int __fd); libc_hidden_proto (__close) extern int __libc_close (int __fd); @@ -145,8 +149,8 @@ extern __pid_t __fork (void); libc_hidden_proto (__fork) extern int __getpagesize (void) __attribute__ ((__const__)); libc_hidden_proto (__getpagesize) -extern int __ftruncate (int __fd, __off_t __length); -extern int __ftruncate64 (int __fd, __off64_t __length); +extern int __ftruncate (int __fd, __off_t __length) attribute_hidden; +extern int __ftruncate64 (int __fd, __off64_t __length) attribute_hidden; extern int __truncate (const char *path, __off_t __length); extern void *__sbrk (intptr_t __delta); libc_hidden_proto (__sbrk)