From 65a086db91d4e06074b461b8e99efcebe1416a3f Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Fri, 18 Aug 2017 09:31:19 -0700 Subject: Mark internal argz functions with attribute_hidden [BZ #18822] Move internal argz function prototypes to include/argz.h and mark them with attribute_hidden to allow direct access within libc.so and libc.a without using GOT nor PLT. This also brings string/argz.h closer to the gnulib version. [BZ #18822] * include/argz.h (__argz_create_sep): New function prototype. (__argz_append): Likewise. (__argz_add): Likewise. (__argz_add_sep): Likewise. (__argz_delete): Likewise. (__argz_insert): Likewise. (__argz_replace): Likewise. * string/argz.h (__argz_create_sep): Removed. (__argz_append): Likewise. (__argz_add): Likewise. (__argz_add_sep): Likewise. (__argz_delete): Likewise. (__argz_insert): Likewise. (__argz_replace): Likewise. --- include/argz.h | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'include') diff --git a/include/argz.h b/include/argz.h index 0388c23277..770f02eefb 100644 --- a/include/argz.h +++ b/include/argz.h @@ -4,6 +4,38 @@ # ifndef _ISOMAC +extern error_t __argz_create_sep (const char *__restrict __string, + int __sep, char **__restrict __argz, + size_t *__restrict __len) + __THROW attribute_hidden; +extern error_t __argz_append (char **__restrict __argz, + size_t *__restrict __argz_len, + const char *__restrict __buf, size_t __buf_len) + __THROW attribute_hidden; +extern error_t __argz_add (char **__restrict __argz, + size_t *__restrict __argz_len, + const char *__restrict __str) + __THROW attribute_hidden; +extern error_t __argz_add_sep (char **__restrict __argz, + size_t *__restrict __argz_len, + const char *__restrict __string, int __delim) + __THROW attribute_hidden; +extern void __argz_delete (char **__restrict __argz, + size_t *__restrict __argz_len, + char *__restrict __entry) + __THROW attribute_hidden; +extern error_t __argz_insert (char **__restrict __argz, + size_t *__restrict __argz_len, + char *__restrict __before, + const char *__restrict __entry) + __THROW attribute_hidden; +extern error_t __argz_replace (char **__restrict __argz, + size_t *__restrict __argz_len, + const char *__restrict __str, + const char *__restrict __with, + unsigned int *__restrict __replace_count) + attribute_hidden; + libc_hidden_proto (argz_delete) libc_hidden_proto (__argz_count) libc_hidden_proto (__argz_stringify) -- cgit v1.2.3